《Ansible权威指南 》一2.2 Ansible配置文件解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: Inventory用于定义Ansible的主机列表配置,Ansible的自身配置文件只有一个,即ansible.cfg,Ansible安装好后它默认存放于/etc/ansible/目录下。

本节书摘来自华章出版社《Ansible权威指南 》一书中的第2章,第2.2节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 Ansible配置文件解析

Inventory用于定义Ansible的主机列表配置,Ansible的自身配置文件只有一个,即ansible.cfg,Ansible安装好后它默认存放于/etc/ansible/目录下。ansible.cfg配置文件可以存在于多个地方,Ansible读取配置文件的顺序依次是当前命令执行目录→用户家目录下的.ansible.cfg→/etc/ansible.cfg,先找到哪个就使用哪个的配置。其ansible.cfg配置的所有内容均可在命令行通过参数的形式传递或定义在Playbooks中。
配置文件ansible.cfg约有350行语句,大多数为注释行默认配置项。该文件遵循INI格式,分为如下几类配置。
(1)[defaults]
该类配置下定义常规的连接类配置,如inventory、library、remote_tmp、local_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                # 默认超时时间
# timeout = 10                # 如没有指定用户,默认使用的远程连接用户
# 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缓存的主机信息存放方式
# retry_files_enabled = False
# 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)[paramiko_connection]
定义paramiko_connection配置,该部分功能不常用,了解即可。
[paramiko_connection]    # 该配置不常用到
# record_host_keys=False    # 不记录新主机的key以提升效率
# pty=False        # 禁用sudo功能
(4)[ssh_connection]
Ansible默认使用SSH协议连接对端主机,该部署是主要是SSH连接的一些配置,但配置项较少,多数默认即可。
[ssh_connection]
# pipelining = False    # 管道加速功能,需配合requiretty使用方可生效
(5)[accelerate]
Ansible连接加速相关配置。因为有部分使用者不满意Ansible的执行速度,所以Ansible在连接和执行速度方面也在不断地进行优化,该配置项在提升Ansibile连接速度时会涉及,多数保持默认即可。
[accelerate]
# accelerate_port = 5099            # 加速连接端口
# accelerate_timeout = 30            # 命令执行超时时间,单位秒
# accelerate_connect_timeout = 5.0    # 连接超时时间,单位秒
# accelerate_daemon_timeout = 30        # 上一个活动连接的时间,单位分钟
# accelerate_multi_key = yes
(6)[selinux]
关于selinux的相关配置几乎不会涉及,保持默认配置即可。
[selinux]
# libvirt_lxc_noseclabel = yes
# libvirt_lxc_noseclabel = yes
(7)[colors]
Ansible对于输出结果的颜色也进行了详尽的定义且可配置,该选项对日常功能应用影响不大,几乎不用修改,保持默认即可。
[colors]
# highlight = white
# verbose = blue
# warn = bright purple
# error = red
# debug = dark gray
# deprecate = purple
# skip = cyan
# unreachable = red
# ok = green
# changed = yellow
# diff_add = green
# diff_remove = red
# diff_lines = cyan

上面尽可能全地介绍了运维工作中可能需要修改的配置选项,除了在关闭首次连接提示(host_key_checking = False)或提速调整([accelerate]区域块配置调整)时可能会稍做调整,其中绝大多数选项默认即可,Ansible安装好后无需任何改动即可使用。

相关文章
|
18天前
|
JSON PHP 数据格式
PHP解析配置文件的常用方法
INI文件是最常见的配置文件格式之一。
|
2月前
|
存储 安全 网络协议
Elasticsearch 配置文件解析
【10月更文挑战第3天】Elasticsearch 配置文件解析
86 3
|
6月前
|
缓存 负载均衡 应用服务中间件
深入解析Nginx配置文件
Nginx是一个高性能HTTP服务器和反向代理,其配置文件`nginx.conf`包含全局、事件、HTTP、Server和Location块。全局块设置如用户和工作进程数,事件块设定连接数,HTTP块涉及MIME类型、日志和包含其他配置。Server块定义虚拟主机,Location块处理URI匹配。Nginx常用于反向代理和负载均衡,如`proxy_pass`指令转发请求至后端服务器组。理解这些配置有助于服务器优化和测试。
|
3月前
|
Rust Python
Python 解析 toml 配置文件
Python 解析 toml 配置文件
49 1
|
3月前
|
Python
Python 解析 yaml 配置文件
Python 解析 yaml 配置文件
49 0
|
3月前
|
Python
Python 解析 ini 配置文件
Python 解析 ini 配置文件
37 0
|
4月前
|
安全 Unix Linux
samba 配置文件解析
【8月更文挑战第8天】Samba是一款开源软件套件,支持不同操作系统间的文件与打印机共享。它通过实现SMB/CIFS协议,确保了Linux/UNIX系统与Windows系统的互操作性。Samba具备文件共享、打印机管理、安全性设置及域控制器等功能,适用于搭建文件服务器、打印服务器及身份验证服务,并促进跨平台的数据访问与协作。其配置灵活,可根据需要调整共享目录的权限、可见性及用户认证方式。
52 3
|
4月前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
112 0
|
5月前
|
消息中间件 存储 负载均衡
zookeeper 特点、使用场景及安装,配置文件解析
zookeeper 特点、使用场景及安装,配置文件解析
78 2
|
4月前
|
网络协议 Ubuntu Linux
在Linux中,设置DNS需要修改哪个配置文件?
在Linux中,设置DNS需要修改哪个配置文件?

推荐镜像

更多
下一篇
无影云桌面