1、安装方式

  1. rpm包安装: EPEL
  2. yum install ansible
  3. 编译安装:
  4. yum -y install python-jinja2 PyYAML python-paramiko python-babel
  5. python-crypto
  6. tar xf ansible-1.5.4.tar.gz
  7. cd ansible-1.5.4
  8. python setup.py build
  9. python setup.py install
  10. mkdir /etc/ansible
  11. cp -r examples/* /etc/ansible
  12. Git方式:
  13. git clone git://github.com/ansible/ansible.git --recursive
  14. cd ./ansible
  15. source ./hacking/env-setup
  16. pip安装: pip是安装Python包的管理器,类似yum
  17. yum install python-pip python-devel
  18. yum install gcc glibc-devel zibl-devel rpm-bulid openssl-devel
  19. pip install --upgrade pip
  20. pip install ansible --upgrade
  21. 确认安装:
  22. ansible --version

2、相关文件

  1. 配置文件
  2. /etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性(一般无需修改)
  3. /etc/ansible/hosts 主机清单(将被管理的主机放到此文件)
  4. /etc/ansible/roles/ 存放角色的目录
  5. 程序
  6. /usr/bin/ansible 主程序,临时命令执行工具
  7. /usr/bin/ansible-doc 查看配置文档,模块功能查看工具
  8. /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
  9. /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
  10. /usr/bin/ansible-pull 远程执行命令的工具
  11. /usr/bin/ansible-vault 文件加密工具
  12. /usr/bin/ansible-console 基于Console界面与用户交互的执行工具

3、主机清单inventory

  1. Inventory 主机清单
  2. 1> ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory file中将其分组命名
  3. 2> 默认的inventory file为/etc/ansible/hosts
  4. 3> inventory file可以有多个,且也可以通过Dynamic Inventory来动态生成
  5. /etc/ansible/hosts文件格式
  6. inventory文件遵循INI文件风格,中括号中的字符为组名。
  7. 可以将同一个主机同时归并到多个不同的组中;
  8. 此外,当如若目标主机使用了非默认的SSH端口,还可以在主机名称之后使用冒号加端口号来标明
  9. ntp.magedu.com 不分组,直接加
  10. [webservers] webservers
  11. www1.magedu.com:2222 可以指定端口
  12. www2.magedu.com
  13. [dbservers]
  14. db1.magedu.com
  15. db2.magedu.com
  16. db3.magedu.com
  17. 如果主机名称遵循相似的命名模式,还可以使用列表的方式标识各主机
  18. 示例:
  19. [websrvs]
  20. www[1:100].example.com ip: 1-100
  21. [dbsrvs]
  22. db-[a:f].example.com dba-dbff

4、ansible 配置文件

  1. Ansible 配置文件/etc/ansible/ansible.cfg (一般保持默认)
  2. vim /etc/ansible/ansible.cfg
  3. [defaults]
  4. #inventory = /etc/ansible/hosts # 主机列表配置文件
  5. #library = /usr/share/my_modules/ # 库文件存放目录
  6. #remote_tmp = $HOME/.ansible/tmp # 临时py命令文件存放在远程主机目录
  7. #local_tmp = $HOME/.ansible/tmp # 本机的临时命令执行目录
  8. #forks = 5 # 默认并发数,同时可以执行5次
  9. #sudo_user = root # 默认sudo 用户
  10. #ask_sudo_pass = True # 每次执行ansible命令是否询问ssh密码
  11. #ask_pass = True # 每次执行ansible命令是否询问ssh口令
  12. #remote_port = 22 # 远程主机的端口号(默认22)
  13. 建议优化项:
  14. host_key_checking = False # 检查对应服务器的host_key,建议取消注释
  15. log_path=/var/log/ansible.log # 日志文件,建议取消注释
  16. module_name = shell # 默认模块