Ansible
lansible命令示例:
# 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在 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权限管理: