1、安装方式
rpm包安装: EPEL源 yum install ansible编译安装: yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto tar xf ansible-1.5.4.tar.gz cd ansible-1.5.4 python setup.py build python setup.py install mkdir /etc/ansible cp -r examples/* /etc/ansibleGit方式: git clone git://github.com/ansible/ansible.git --recursive cd ./ansible source ./hacking/env-setuppip安装: pip是安装Python包的管理器,类似yum yum install python-pip python-devel yum install gcc glibc-devel zibl-devel rpm-bulid openssl-devel pip install --upgrade pip pip install ansible --upgrade确认安装: ansible --version
2、相关文件
配置文件 /etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性(一般无需修改) /etc/ansible/hosts 主机清单(将被管理的主机放到此文件) /etc/ansible/roles/ 存放角色的目录程序 /usr/bin/ansible 主程序,临时命令执行工具 /usr/bin/ansible-doc 查看配置文档,模块功能查看工具 /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台 /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具 /usr/bin/ansible-pull 远程执行命令的工具 /usr/bin/ansible-vault 文件加密工具 /usr/bin/ansible-console 基于Console界面与用户交互的执行工具
3、主机清单inventory
Inventory 主机清单1> ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory file中将其分组命名 2> 默认的inventory file为/etc/ansible/hosts3> inventory file可以有多个,且也可以通过Dynamic Inventory来动态生成/etc/ansible/hosts文件格式inventory文件遵循INI文件风格,中括号中的字符为组名。可以将同一个主机同时归并到多个不同的组中;此外,当如若目标主机使用了非默认的SSH端口,还可以在主机名称之后使用冒号加端口号来标明 ntp.magedu.com 不分组,直接加 [webservers] webservers组 www1.magedu.com:2222 可以指定端口 www2.magedu.com [dbservers] db1.magedu.com db2.magedu.com db3.magedu.com如果主机名称遵循相似的命名模式,还可以使用列表的方式标识各主机示例: [websrvs] www[1:100].example.com ip: 1-100 [dbsrvs] db-[a:f].example.com dba-dbff
4、ansible 配置文件
Ansible 配置文件/etc/ansible/ansible.cfg (一般保持默认)vim /etc/ansible/ansible.cfg[defaults]#inventory = /etc/ansible/hosts # 主机列表配置文件#library = /usr/share/my_modules/ # 库文件存放目录#remote_tmp = $HOME/.ansible/tmp # 临时py命令文件存放在远程主机目录#local_tmp = $HOME/.ansible/tmp # 本机的临时命令执行目录 #forks = 5 # 默认并发数,同时可以执行5次#sudo_user = root # 默认sudo 用户#ask_sudo_pass = True # 每次执行ansible命令是否询问ssh密码#ask_pass = True # 每次执行ansible命令是否询问ssh口令#remote_port = 22 # 远程主机的端口号(默认22)建议优化项: host_key_checking = False # 检查对应服务器的host_key,建议取消注释log_path=/var/log/ansible.log # 日志文件,建议取消注释module_name = shell # 默认模块