Ansible组件-Inventory
管理不同业务的不同机器,这些机器的信息都存放在Ansible的Inventory组件里面,默认是一个静态的INI格式文件/etc/ansible/hosts
主机(hosts)部分可以使用域名、主机名、IP地址表示
1.定义主机和主机组,举例如下
168.100.100.112 ansible_ssh_pass = '123456'
//定义一个主机168.100.100.100 ,使用Inventory内置定义了的SSH登录密码
[docker] //定义了一个组叫docker
168.100.100.100[1:3] //定义docker组下面4台主机从168.100.100.100-168.100.100.103
[docker:vars]
ansible_ssh_pass='123456' //定义docker组使用Inventory内置定义了的SSH登录密码
[ansible:children]
docker //定义一个组叫ansible,这个组包含docker组
例:
vim /host
ansible -i /host docker -a 'date' //不需要输入密码
inventory内置参数如下:
2.多个Inventory列表
新建一个文件夹,里面将存放多个Inventory文件
inventory 文件夹包含hosts、docker
vim /inventory/hosts
vim /inventory/docker
ansible -i /inventory all -a 'date'
3.动态inventory
动态inventory是偶有变量可以从外部获取,也就是说我们可以从CMDB以及zabbix系统拉去所有主机信息,然后使用ansible进行管理,引用inventory只需要把ansible.cfg文件中的inventory定义值改成一个执行脚本即可
例:
vim inventory.py
python inventory.py
加可执行权限
chmod +x inventory.py
ansible -i inventory.py web2 -a 'uptime' -k