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内置参数如下:

Ansible组件-Inventory_第1张图片


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

Ansible组件-Inventory_第2张图片

python inventory.py

Ansible组件-Inventory_第3张图片

加可执行权限

chmod +x inventory.py 

ansible -i inventory.py web2 -a 'uptime' -k

你可能感兴趣的:(Ansible)