Bootstrap

Ansible主机清单 inventory

Ansible主机清单 inventory
1.自定义主机清单

[root@server dm]# vim /etc/ansible/hosts

node1
node2
node1.example.com
node2.example.com
[web]    //主机组名
node1
node2
(node[1:2]也可以)
[xian:children]    //嵌套主机组,只包含主机组 格式[名字:children]
web

ansible 主机/主机组 -m command(模块) a '参数hostname'

[root@server dm]# ansible node1 -m command -a 'hostname'
node1 | CHANGED | rc=0 >>
node1.example.com
[root@server dm]# vim /etc/ansible/hosts 
[root@server dm]# ansible web -a 'hostname'
node1 | CHANGED | rc=0 >>
node1.example.com
node2 | CHANGED | rc=0 >>
node2.example.com

自己给自己发脚本
[root@server dm]# ssh-copy-id -i server
[root@server zx]# ansible server -a 'hostname'
server | CHANGED | rc=0 >>
server

查看主机清单
[root@server dm]# ansible all --list-hosts
[root@server dm]# ansible-inventory --graph
@all:
  |--@ungrouped:
  |  |--node1.example.com
  |  |--node2.example.com
  |  |--server
  |--@web:
  |  |--node1
  |  |--node2
 
 
 自定义路径清单文件:
 ansible all -i 自定义路径 --list-hosts
 
 通配符匹配:(:,&,!)
 [root@servera ~]# ansible 'web:!mail' --list-hosts
案例
1)安装和配置ansible以及ansible控制节点[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JHRXEc6W-1672643317821)(file:///C:\Users\ACER\AppData\Roaming\Tencent\QQTempSys%W@GJ$ACOF(TYDYECOKVDYB.png)]server.example.com如下:

2)创建一个名为/home/student/ansible/inventory的静态库存文件如下所示:

2.1)node1 是dev主机组的成员

2.2)node2是test主机组的成员

2.3)node1和node2是prod主机组的成员

2.4)node1是balancers主机组的一员

2.5)prod组是webservers主机组的成员

[root@server /]# mkdir /home/student/ansible/ -p

[root@server ansible]# vim inventory
[dev]
node1
[test]
node2
[prod]
node1
node2
[balancers]
node1
[webservers:children]
prod

[root@server ansible]# ansible-inventory -i /home/student/ansible/inventory --graph
@all:
  |--@balancers:
  |  |--node1
  |--@dev:
  |  |--node1
  |--@test:
  |  |--node2
  |--@ungrouped:
  |--@webservers:
  |  |--@prod:
  |  |  |--node1
  |  |  |--node2

;