主机清单是Ansible的一个重要内容。在主机清单内,定义了Ansible需要控制的主机有哪些,以及其用户名、密码等信息,这些信息可以使得Ansible通过SSH链接到指定主机上。
Ansible的主机清单默认写在/etc/ansible/hosts文件中,我们在调用Ansible命令的时候,需要使用-i参数来指定主机清单文件。
Ansible的主机清单定义有两种方式,通过用户名和密码的方式或者是通过SSH密钥的方式。
在默认情况下,/etc/ansible/hosts文件为空的,我们需要手动的在文件内添加主机清单,在配置主机清单文件时,我们需要指定主机组,使用中括号可以设置一个主机组,中括号下的主机就属于该主机组。我们在执行Ansible命令的时候,必须指定主机组名。
cat /etc/ansible/hosts
该文件为默认路径,一下示例我采用的是自己配置的其他路径,可根据自己的实际情况进行配置。


图中警告信息可忽略。我们的Ansible主机清单配置成功,Ansible正常的访问了10.10.192.21这台设备。
除了上述方式之外,我们还可以基于SSH密钥来定义主机清单。
通过在Ansible设备上生成SSH密钥,然后把密钥发送给客户端,Ansible就可以使用密钥而不是使用密码来链接客户端并进行控制了。
Ansible设备上生成密钥命令如下:
生成密钥
ssh-keygen可一路回车采用默认配置即可。
发送密钥:密钥生成后,我们还需要把密钥发送给客户端,注意,Ansible服务器给Ansible客户端发送了密钥,可以使得Ansible服务器使用密钥访问客户端。

这样,我们在定义主机清单的时候,就可以在/etc/ansible/hosts文件中,写入如下内容:
我们再次尝试使用Ansible控制客户端,结果同上面一样。