使用ansible批量执行下发命令并执行
ansible all -m shell -a "ls /root"
说明:all代表所有在inventory文件中所有的主机列表,-m 后面是ansible的模块名称,-a后面是参数。
ansible all -m command -a "ls /root"
Ansible是一种agentless(基于ssh),可实现批量配置、命令执行和控制,基于Python开发的自动化运维工具。
## e.g. #first step: install python related yum -y install python-pip python-devel #next: install ansible via pip command pip install ansible
/usr/bin/ansible: 命令行工具
命令通用格式:ansible <host-pattern> [options] [-m module_name] [-a args]
/usr/bin/ansible-doc: 帮助文档
/usr/bin/ansible-playbook: 剧本执行工具
/etc/ansible/ansible.cfg:主配置文件
/etc/ansible/hosts: 管理主机清单
/etc/ansible/roles: 角色文件
# /etc/ansible/hosts [test-hosts] 192.168.50.100 192.168.50.101 [db-hosts] 192.168.50.102 192.168.50.103 192.168.50.104 ## 可以选择性的让部分主机执行命令 ansible test-hosts -m command -a "ls"
ansible命令执行——> 读取ansible.cfg配置文件——>通过规则过滤inventory中定义的主机列表——>加载task对应的模块文件——>通过ansible core将模块或命令打包成Python脚本文件——>对应执行用户的家目录:''.ansible/tmp/xxx/xxx.py"文件——>给文件加执行权限——>执行py文件并返回结果——>删除文件退出