Ansible 的资产分为静态资产和动态资产
一、静态资产
Ansible 默认资产文件路径: /etc/ansible/hosts
1. 自定义资产
[root@hadoop102 ~]# vim /etc/ansible/inventory.ini
192.168.10.103192.168.10.104192.168.10.[105:110]hadoop103hadoop[104:110][hadoop_servers]192.168.10.102192.168.10.103192.168.10.104[redis_servers]192.168.10.102192.168.10.105192.168.10.106[allbigdate_servers][allbigdate_servers:children]hadoop_serversredis_servers
参数说明:
1. Ansible 的资产文件中,可以以IP 地址的形式或者主机名的形式存在
2. Ansible 的资产若连续,可以使用[stat:end] 的形式去表达
3. 可以将服务器按照业务场景定义成组,比如dbdb_servers 和web_servers
4. 组和组之间可存在继承关系,如hadoop_servers 和redis_servers 同时继承allbigdate_servers 组
2. 自定义资产的使用
通过 -i 参数指定自定义资产的文件位置即可
(可以是全路径,也可以是相对路径)
命令:ansible all -i inventory.ini …
3. 验证自定义资产
1)列出所有资产
[root@hadoop102 ~]# ansible all -i /etc/ansible/inventory.ini —list-hosts
2)列出指定资产
[root@hadoop102 ~]# ansible redis_servers -i /etc/ansible/inventory.ini —list-hosts
[root@hadoop102 ~]# ansible allbigdate_servers -i /etc/ansible/inventory.ini —list-hosts
二、资产选择器
Ansible 的资产选择器 PATTERN的作用:
只对资产中的一部分服务器进行操作,而不是资产中所有服务器
1. 基本语法
ansible PATTERN -i inventory -m module -a argument
选择一台或者几台服务器:
[root@hadoop102 ~]# ansible 192.168.10.103 -i /etc/ansible/inventory.ini —list-hosts
[root@hadoop102 ~]# ansible 192.168.10.104,192.168.10.105 -i /etc/ansible/inventory.ini —list-hosts
[root@hadoop102 ~]# ansible hadoop104 -i /etc/ansible/inventory.ini —list-hosts
选择一组服务器:
[root@hadoop102 ~]# ansible hadoop_servers -i /etc/ansible/inventory.ini —list-hosts
使用 匹配:
[root@hadoop102 ~]# ansible 192.168.10.11 -i /etc/ansible/inventory.ini —list-hosts
使用逻辑匹配:
取hadoop_servers组与redis_servers组内的所有主机(并集):
[root@hadoop102 ~]# ansible ‘hadoop_servers:redis_servers’ -i /etc/ansible/inventory.ini —list-hosts
取hadoop_servers组与redis_servers组内的共有主机(交集):
[root@hadoop102 ~]# ansible ‘hadoop_servers:&redis_servers’ -i /etc/ansible/inventory.ini —list-hosts
取在hadoop_servers组内,但不在redis_servers组内的主机(排除):
[root@hadoop102 ~]# ansible ‘hadoop_servers:!redis_servers’ -i /etc/ansible/inventory.ini —list-hosts
