03Ansible主机清单

Posted elegantsmile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03Ansible主机清单相关的知识,希望对你有一定的参考价值。

主机清单

Inventory:清单,主机清单

官方链接:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#

增加主机组

[root@ansible-server ~]# vim /etc/ansible/hosts
[test]
172.22.69.216
[web]
172.22.69.97

这样定义完,进行测试会失败

[root@ansible-server ~]# ansible web -m ping -o

增加用户名和密码

[root@ansible-server ~]# vim /etc/ansible/hosts
[test]
172.22.69.216 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘123456‘
[web]
172.22.69.97 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘123456‘

这样定义完,就可以免用户名和密码进行测试

增加端口

此处假如把172.22.69.216的sshd端口改为2222

[root@ansible-node ~]# vim /etc/ssh/sshd_config
Port 2222

ansible服务器连接客户机默认端口是22

所以需要在 /etc/ansible/hosts 修改端口信息

[root@ansible-server ~]# vim /etc/ansible/hosts
[test]
172.22.69.216 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘123456‘ ansible_ssh_port=‘2222‘
[web]
172.22.69.97 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘123456‘

使用变量

ansible内部变量可以帮助我们简化主机清单的设置

[root@ansible-server ~]# vim /etc/ansible/hosts
[test]
172.22.69.216
[web]
172.22.69.97
[test:vars]
ansible_ssh_user=‘root‘ 
ansible_ssh_pass=‘123456‘ 
ansible_ssh_port=‘2222‘
[web]
ansible_ssh_user=‘root‘ 
ansible_ssh_pass=‘123456‘

常用变量

技术图片

使用子分组

将不同的分组进行组合

[root@ansible-server ~]# vim /etc/ansible/hosts
[test]
172.22.69.216 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘123456‘ ansible_ssh_port=‘2222‘
[web]
172.22.69.97 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘123456‘
[linux:children]
test
web

自定义主机列表

创建主机列表文件

[root@ansible-server ~]# vim /tmp/hostlist
[centos]
172.22.69.217
172.22.69.218
[centos:vars]
ansible_ssh_user=‘root‘
ansible_ssh_pass=‘666666‘

测试

[root@ansible-server ~]# ansible -i /tmp/hostlist centos -m ping 

-i 选项指定主机列表文件,以及文件中的主机组

以上是关于03Ansible主机清单的主要内容,如果未能解决你的问题,请参考以下文章

使用模式填充 Ansible 清单文件中的主机属性

Ansible2:主机清单

Ansible 安全 之加密主机清单

Ansible---Inventory(主机清单)与YAML文件

ansible的主机清单,yml语法,playbook详解+操作

Ansible2:主机清单