Ansible inventory配置

Ansible

 

lansible命令示例:

以bruce用户执行ping存活检测 
  # ansible all -m ping -u bruce 
以bruce sudo至root执行ping存活检测 
  # ansible all -m ping -u bruce -b 
以bruce sudo至batman用户执行ping存活检测 

  # ansible all -m ping -u bruce -b --become-user batman

存活检测前,先做好免密登录

以确定用户存活检测时,目的主机必须存在该用户:

指定目的主机的用户复制管理机文件:

存活检测时询问指定目的机用户的密码:

lansible命令使用场景

p非固化需求

p临时一次性操作

p二次开发接口调用

 

lInventory是Ansible管理主机信息的配置文件,相当于系统HOSTS文件的功能,默认存放在/etc/ansible/hosts。

l定义主机和组

# Inventory可以直接为IP地址 

172.25.9.2

# 端口号不是默认22端口时,可明确的表示为:

server2:2222

server2 ansible_port=2222 ansible_host=172.25.0.2

l 定义主机和组
p # 中括号表示一个组,也可以表示一个范围
[webserver]
www[1: 1 0].example.com
db-[a:f].example.com
l 定义主机变量
p 在playbook中使用时对主机进行个性化定制
[webserver]
web1 http_port=8080 maxRequestsPerChild=1024
l 定义组变量
[webserver]
server2
server3
 
[webserver:vars]
ntp_server=time1.aliyun.com
 
webserver组中的所有主机ntp_server值为 time1.aliyun.com

l 定义组嵌套及组变量
[apache] 
server1
server2
         [nginx] 
p server3
p server4  
组与组之间可以相互调用,并且可以向组中的主机指定变量。不过,这些变量只能在Ansible-playbook中使用,而Ansible不支持
 
 

l在 inventory 主文件中保存所有的变量并不是最佳的方式.还可以保存在独立的文件中

这些独立文件的格式为 YAML

/etc/ansible/group_vars/raleigh

/etc/ansible/group_vars/webservers

/etc/ansible/host_vars/foosball

当变量变得太多时,分文件定义变量更方便进行管理和组织

/etc/ansible/group_vars/raleigh/db_settings

/etc/ansible/group_vars/raleigh/cluster_settings

 

 

l变量的检索位置

Inventory配置文件(默认/etc/ansible/hosts)

Playbook中vars定义的区域

Roles中vars目录下的文件

Roles同级目录group_vars和hosts_vars目录下的文件

大家设置变量时尽量沿用同一种方式,以方便维护人员管理。

 

l匹配所有主机,all或*号功能相同。

ansible all –m ping 

ansible "*" -m ping

ansible 172.25.0.* -m ping

l对多台主机或多个组同时执行,相互之间用冒号分隔即可

ansible "web1:web2" -m ping

l在webserver组但不在database组的主机,用感叹号表示

ansible "webservers:!database" -m ping

l在webserver组和database组中同时存在的主机,用&符号表示

ansible "webservers:&database" -m ping

l模糊匹配

*.example.com

www*.com:database

 

 

 

便于管理,配置在用户家目录建立文件:(优先级,所在目录>家目录>配置文件目录)

- i 优先访问当前目录的 hosts:

管理机管理目的主机时,以root权限管理:

 

猜你喜欢

转载自blog.csdn.net/qq_47714288/article/details/112002422