Ansible 通过 SSH 连接远程设备。在连接远程设备之前,您需要在控制节点或开发机上安装 Ansible。然后,ansible.com 上的文档提供了多种扩展的选项可以用来提高安全性以及更好的管理 SSH 认证。
在使用 Ansible 连接到远程设备之前,您需要创建一个存储这些远程主机信息的清单文件(inventory)。清单文件可以指定用于连接这些设备的用户名和 SSH 私钥。
以下是一个清单文件的示例:
[web]
192.168.1.5 ansible_user=ubuntu ansible_ssh_private_key_file=/home/ubuntu/.ssh/id_rsa
在此示例中,Ansible 将使用 ansible_user 对应的用户名以及 SSH 私钥文件 /home/ubuntu/.ssh/id_rsa 连接到 IP 地址为 192.168.1.5 的主机。
一旦您有了一个清单文件,您就可以通过 Ansible 命令向远程设备发送命令了。例如,以下命令将在名为 web 的组中的远程设备上安装 Nginx:
$ ansible web -m apt -a "name=nginx state=present"
在此命令中,-m 标志指定 Ansible 将使用的模块,-a 标志指定特定模块接受的参数。在本例中,apt 是一个 Ansible 内置模块,并在 Ubuntu 上使用 APT 安装 Nginx。
总之,使用 Ansible 连接远程设备需要设置清单文件以及创建 SSH 连接。Ansible 在清单文件中指定的 SSH 私钥路径,以及在 SSH 连接期间使用的 SSH 用户名。通过 Ansible 命令行,您可以在远程设备上执行命令和任务。