Ansible安装有3种方式,PIP安装、yum安装、编译安装
- 最简单的yum方式:
yum install ansible -y
验证安装是否成功:
[root@VM_89_124_centos test]# ansible --version
ansible 2.3.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
python version = 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
ansible目录结构:
通过如下命令我们可以获取ansible所有文件存放目录:
# rpm -ql ansible
该命令输出内容较多,大致分为如下几类:
- 配置文件目录:/etc/ansible(ansible.cfg、hosts、roles(自定义或下载的role))
- 执行文件目录:/usr/bin
- Lib库依赖目录:/usr/lib/python2.7/site-packages/ansible
- Help文档目录: /usr/share/doc/ansible-2.3.1.0
- Man文档目录:/usr/share/man/man1
其中,如下目录运维需要常配置,需要我们熟练掌握。
- 配置文件目录/etc/ansible/,主要功能为:Inventory主机信息配置、ansible工具功能配置等。所有ansible的配置均存放在该目录下,运维日常的所有配置类操作也均基于此目录进行。
- 执行文件目录/usr/bin/,主要功能为:ansible系列命令默认存放目录。ansible所有可执行文件均存放在该目录下。
在/usr/lib/python2.7/site-packages/下,该目录是系统当前默认的python路径,因为ansible是基于python编写的,所以ansible的所有lib库文件可模块文件也均存放于该目录下。
ansible配置文件解析:
Inventory用于定义ansible的主机列表配置,ansible的自身配置只有一个,即ansible.cnf,ansible安装好后它默认存放于/etc/ansible目录下。ansible.cfg配置文件可以存在于多个地方,ansible读取配置文件的顺序依次是当前命令执行目录——>用户家目录下的ansible.cfg——>/etc/ansible/ansible.cfg,先找到哪个就使用哪个的配置。其中ansible.cfg配置的所有内容均可在命令行通过参数的形式传递或定义在playbooks中。
配置文件ansible.cfg约有350行语句,大多数为注释行默认配置项。该文件遵循INI格式,分为如下几类配置。
1. [defaults]
该类配置下定义常规的连接类配置类型,如inventory、library、remote_tmp、locla_tmp、forks、poll_interval、sudo_user、ask_sudo_pass、ask_pass、transport、remote_port等。
[defaults]
# inventory = /etc/ansible/hosts #定义Inventory
# library = /usr/share/my_modules #自定义lib库存放目录
# remote_tmp = $HOME/.ansible/tmp #临时文件远程主机存放目录
# local_tmp = $HOME/.ansible/tmp #临时文件本地存放目录
# forks = 5 #默认开启的并发数
# poll_interval = 15 #默认轮询时间间隔
# sudo_user = root #默认sudo用户
# ask_sudo_pass = True #是否需要sudo密码
# ask_pass = True #是否需要密码
# roles_path = /etc/ansible/roles #默认下载的roles存放的目录
#host_key_checking = False #首次连接是否需要检查Key认证,建议设为False
#timeout = 10 #默认超时时间
#remote_user = root #如没有指定用户,默认使用的远程连接用户
#log_path = /var/log/ansible.log #执行日志存放目录
#module_name = command #默认执行的模块
#action_plugins = /usr/share/ansible/plugins/action #action插件的存放目录
#callback_plugins = /usr/share/ansible/plugins/callback #callback插件的存放目录
#connection_plugins = /usr/share/ansible/plugins/connection #connection插件的存放目录
#lookup_plugins = /usr/share/ansible/plugins/lookup #lookup插件的存放目录
#vars_plugins = /usr/share/ansible/plugins/vars #vars插件的存放目录
#filter_plugins = /usr/share/ansible/plugins/filter #filter插件的存放目录
#test_plugins = /usr/share/ansible/plugins/test #test插件的存放目录
#strategy_plugins = /usr/share/ansible/plugins/strategy #strategy插件的存放目录
#fact_caching = memory #getfact缓存的主机信息存放目录,也可以设置存储在redis中,用于持久化存储
#retry_files_enabled = False #当playbook失败的情况下,一个重试文件将会创建,默认为开启此功能
#retry_files_save_path = ~/.ansible-retry #错误重启文件的存放目录
...
上述是日常可能用到的配置,这些多数保持默认即可。
2.[privilege_escalation]
处于安全角度考虑,部分公司不希望直接以root的高级管理员权限直接部署应用,往往会开放普通用户权限并给予sudo权限,该部分配置主要针对sudo用户提权的配置。
[privilege_escalation]
#become = True #是否sudo
#become_method = sudo #sudo方式
#become_user = root #sudo后变为root用户
#become_ask_pass = False #sudo后是否验证密码
3.[accelerate]
Ansible连接加速相关配置。该配置项旨在提升ansible连接速度时会涉及,多数保持默认即可。
[accelerate]
#accelerate_port = 5099 #加速连接端口
#accelerate_timeout = 30 #命令执行超时时间,单位秒
#accelerate_connect_timeout = 5.0 #连接超时时间,单位秒
#accelerate_daemon_timeout = 30 #上一个活动连接的时间,单位分钟
#accelerate_multi_key = yes
上面尽可能全地介绍了运维工作中可能需要修改的配置选项,除了在关闭首次连接提示(host_key_checking = Flase)或是提速调整([accelerate]区域块配置调整)时可能会稍作调整,其中绝大部分选项默认即可,Ansible安装好后无需任何改动即可使用。