Ansible,基于Python开发,无C-S,走的是SSH。
执行过程如下:
一、安装
# yum install ansible
# ansible --version
ansible 2.6.17
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]
# cat /etc/ansible/ansible.cfg,可以看到各个配置项默认路径
[defaults]
# some basic default values...
#inventory = /etc/ansible/hosts
#library = /usr/share/my_modules/
#module_utils = /usr/share/my_module_utils/
#remote_tmp = ~/.ansible/tmp
#local_tmp = ~/.ansible/tmp
#plugin_filters_cfg = /etc/ansible/plugin_filters.yml
#forks = 5
#poll_interval = 15
#sudo_user = root
#ask_sudo_pass = True
#ask_pass = True
#transport = smart
#remote_port = 22
#module_lang = C
#module_set_locale = False
二、inventory的配置
在 /etc/ansible/hosts 填入host信息(或通过 -i 指定)
2.1、支持直接填写IP或域名,特殊SSH端口通过ansible_ssh_port指定
[dbservers]
192.168.47.30
192.168.47.31
192.168.47.32 ansible_ssh_port=6022
db1.example.com
2.2、支持嵌套和批量匹配
规律数字:db[1:8].example.com
规律字母:db[a:g].example.com
三、任务执行模式
分为:ad-hoc(使用单个模块执行单条命令)、playbook(使用多个模块实现复杂功能)
3.1、ad-hoc
3.2、playbook
四、模块
ansible本身不具有批量执行的功能,它是将丰富多样的模块和用户定义的task任务打包成一个python程序发送到远程服务器执行。
4.1、command
# ansible dbservers -m command -a 'cat /etc/system-release'