ansible配置文件解读

ansible的配置文件讲解:
ansible.cfg这个配置文件可以存放在当前目录(/etc/ansible)、home目录、工作目录。

[defaults]

inventory = /etc/ansible/hosts #inventory配置目录
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


gathering = implicit
是否收集fact信息,在playbook中可以自定义设置:gather_facts=False/True
选项:
  smart:默认收集,如果已经收集将不再收集
  implicit:默认收集,使用gather_facts可以取消收集
  explicit:默认情况不收集

gather_subset = all
这会影响指令的收集
选项:
  all
  network
  hardware
  virtual
  facter
  ohai


gather_timeout = 10
收集一些与硬件相关的信息,允许根据系统情况来设置超时时间。

inject_facts_as_vars = True
这个设置是为了维护2.5之前的默认行为。
设置为True是为了向后兼容。

roles_path = /etc/ansible/roles
搜索角色的其它路径,冒号分隔。

host_key_checking = False
取消注释以禁用主机的ssh的密钥检查。

stdout_callback = skippy
更改默认回调的类型

callback_whitelist = timer, mail
回调插件白名单,限制默认插件自动调用。如果是自定义插件则不需要。

task_includes_static = False
handler_includes_static = False
默认情况下,tasks和handlers是静态。从2.0开始默认是动态。

error_on_missing_handler = True
如果处理程序丢失是错误还是警告。

sudo_flags = -H -S -n
传递给sudo的标志,这里如果省略默认值可能会报错。

timeout = 10
SSH的超时时间

remote_user = root
/usr/bin/Ansible属于哪个用户,如果没有给定,那么属于playbook

log_path = /var/log/ansible.log
ansible自身日志的存储路径,设置路径代表打开,这个日志与callback中的日志不一样

module_name = command
/usr/bin/ansible默认的模块名

executable = /bin/sh
将此shell用于在sudo下执行命令,极少情况下才需要修改为/bin/bash

hash_behaviour = replace
如果inventory变量重叠,优先级越高的会被使用。
或者hash值合并在一起,默认为replace

private_role_vars = yes
默认情况下,角色中的变量将在全局变量中可见。
为了防止这种情况,设置此变量,只有角色中的任务和处理程序才能看到那里的变量。

jinja2_extensions = jinja2.ext.do,jinja2.ext.i18n
Jinjia2所有可用的扩展名。

private_key_file = /path/to/file
使用私钥文件进行身份验证,私钥的存储位置。

vault_password_file = /path/to/vault_password_file
如果设置,则配置Vault密码文件的路径,以替代在命令行上指定--vault-password-file。

ansible_managed = Ansible managed
Jinja2模板中提供的字符串{{ansible_managed}}的格式表示用户编辑模板文件将被替换。

display_skipped_hosts = True
默认情况下,如果确定不应该在主机上运行任务,则ansible-playbook将显示Skipping [host]
如果你不想看到这条消息,将其设置为False。

display_args_to_stdout = False
默认情况下,如果playbook中的任务不包含name:field,则ansible-playbook将构造一个包含任务操作但不包含任务args的头。
这是一个安全功能,因为ansible无法知道* module *在打印标题时是否将参数视为no_log。
如果您的环境没有从ansible-playbook保护stdout的问题(或者您在所有具有秘密信息的任务中手动指定了playbook中的no_log),那么您可以安全地将其设置为True以获取更多信息。

error_on_undefined_vars = False
默认情况下(从1.3开始),Ansible在尝试取消引用未在模板或操作行中设置的Jinja2变量时会引发错误。
取消注释此行以将行为还原为1.3之前的版本。

system_warnings = True
默认情况下(从1.6开始),Ansible可能会根据运行ansible本身的系统配置显示警告。
这可能包括有关第三方软件包的警告或应尽可能解决的其他条件。要禁用这些警告,请将值设置为False:

deprecation_warnings = True
默认情况下(从1.4开始),Ansible可能会显示不再使用的语言功能的弃用警告,并且将在以后的版本中删除。
要禁用这些警告,请将值设置为False:

command_warnings = False
(从1.8开始),Ansible可以选择在使用默认的Ansible模块时简化shell和command的使用时发出警告。
通过调整以下内容可以使这些警告静音在命令行的末尾设置或添加warn = yes或warn = no参数字符串。
例如,这将建议使用git模块而不是外壳到git命令。

action_plugins = /usr/share/ansible/plugins/action
cache_plugins = /usr/share/ansible/plugins/cache
callback_plugins = /usr/share/ansible/plugins/callback
connection_plugins = /usr/share/ansible/plugins/connection
lookup_plugins = /usr/share/ansible/plugins/lookup
inventory_plugins = /usr/share/ansible/plugins/inventory
vars_plugins = /usr/share/ansible/plugins/vars
filter_plugins = /usr/share/ansible/plugins/filter
test_plugins = /usr/share/ansible/plugins/test
terminal_plugins = /usr/share/ansible/plugins/terminal
strategy_plugins = /usr/share/ansible/plugins/strategy
插件的存储位置,ansible将会自动执行下面的插件。

strategy = free
默认情况下,ansible将使用“linear”策略,但您可能想尝试另一种策略

bin_ansible_callbacks = False
#默认情况下没有为/bin/ansible加载回调,如果你想要启用它将其设置为True就行了。

nocows = 1
如果您不想要cowsay支持或导出ANSIBLE_NOCOWS = 1,则设置为1

cow_selection = default
cow_selection = random
设置默认情况下你想使用的cowsay模板。 设置为'随机'时,将为每个任务选择随机模板。
选择将被过滤反对下面的`cow_whitelist`选项。

nocolor = 1
当使用cowsay的'random'选项时,模板将被限制在此列表中。
它应格式化为逗号分隔列表,名称之间不能有空格。注意:此处的行连续仅用于格式化,因为python中的INI解析器不支持它们。

fact_caching = memory
fact缓存的存储类型。如果存储在memory那么只是暂时的,你可以将其存储在文件或者数据库中。

fact_caching_connection=/tmp
fact缓存的存储路径,如果设置为文件存储,这里应该设置为文件路径。
如果是数据库类型,应该是localhost:6379:0格式。

retry_files_enabled = False
retry_files_save_path
= ~/.ansible-retry
默认情况下,当playbook执行失败时,将在~/创建.retry文件。可以通过retry_files_enabled来禁用。
通过设置retry_files_save_path来更改文件的位置。

no_log = False
Ansible可以优化在循环时使用列表参数调用模块的操作。
而不是每个with_item调用一次模块,模块一次调用所有项目一次。
目前只适用于有限的情况。

no_target_syslog = False
防止记录任务,但仅在目标上,数据仍记录在主/控制器上

allow_world_readable_tmpfiles = False
#控制Ansible是否会引发错误或警告,如果任务别无选择,只能创建可读的临时文件来执行远程计算机上的模块。
对于安全性,默认情况下此选项为False。

var_compression_level = 9
控制发送到工作进程的变量的压缩级别。 默认值为0时,不使用压缩。 该值必须是0到9之间的整数。

module_compression = 'ZIP_DEFLATED'
控制将ansible模块发送到远程系统时使用的压缩方法。 压缩类型依赖于编译到控制器的python和客户端的python中的支持。 名称应与python Zipfile压缩类型匹配:
ZIP_STORED(无压缩。无处不在)
ZIP_DEFLATED(使用zlib,默认值)
可以通过ansible_module_compression库存变量为每个主机设置这些值。

max_diff_size = 1048576
这将控制文件的--diff的截止点(以字节为单位)
设置为0表示无限制(RAM可能会受损!)

merge_multiple_cli_flags = True
这将控制ansible如何在CLI上处理多个--tags和--skip-tags参数。 如果这是True,则将多个参数合并在一起。
如果为False,则使用最后指定的参数,并忽略其他参数。此选项将在2.8中删除。

show_custom_stats = True
最后显示自定义统计信息的控件,默认情况下已关闭

inventory_ignore_extensions = ~, .orig, .bak, .ini, .cfg, .retry, .pyc, .pyo
控制将目录用作具有可能多个源(静态和动态)的库存时要忽略的文件

network_group_modules=eos, nxos, ios, iosxr, junos, vyos
此系列模块使用针对网络设备优化的替代执行路径,只有在您了解其工作原理的情况下才更新此设置,否则会破坏模块执行

allow_unsafe_lookups = False
启用时,此选项允许查找(通过{{lookup('foo')}}之类的变量或当用作带有“with_foo”的循环时)返回未标记为“不安全”的数据。
这意味着数据可能包含将通过模板引擎运行的jinja2模板语言。
ENABLING这可能是一种安全风险

any_errors_fatal = False
为所有的操作设置默认错误。


[inventory]

enable_plugins = host_list, virtualbox, yaml, constructed
默认启动的插件。

ignore_extensions = .pyc, .pyo, .swp, .bak, ~, .rpm, .md, .txt, ~, .orig, .ini, .cfg, .retry
在将目录解析为库存源时忽略这些扩展

ignore_patterns=
在将目录解析为库存源时忽略与这些模式匹配的文件

unparsed_is_failed=False
如果'true'未解析的库存来源成为致命错误,则会发出警告。

[privilege_escalation]

权限提升设置
become=True
become_method=sudo
become_user=root
become_ask_pass=False

[paramiko_connection]

record_host_keys=False
取消注释此行以使paramiko连接插件不记录遇到的新主机密钥。 提高新主机添加的性能。 设置独立于上面的主机密钥检查设置。

pty=False
默认情况下,Ansible请求在sudo下执行的命令的伪终端。 取消注释此行以禁用此行为。

look_for_keys = False
在尝试向远程设备进行身份验证时,paramiko将默认初始查找SSH密钥。
对于在密钥发生故障后关闭连接的某些网络设备,这是一个问题。 取消注释此行以禁用Paramiko查找键功能

host_key_auto_add = True
当与Paramiko使用持久连接时,连接在后台进程中运行。
如果主机尚未具有有效的SSH密钥,则默认情况下Ansible将提示添加主机密钥。
这将导致在后台进程中运行的连接失败。 取消注释此行以使Paramiko自动添加主机密钥。


[ssh_connection]

ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
要使用的ssh参数离开ControlPersist会导致性能不佳,所以在较旧的平台上使用paramiko而不是删除它,-C控制压缩使用

control_path_dir = /tmp/.ansible/cp
control_path_dir = ~/.ansible/cp
ControlPath套接字的基目录。

control_path = %(directory)s/%%h-%%r
用于ControlPath套接字的路径。 默认为主机名,端口和用户名的散列字符串(配置中为空字符串)。

pipelining = False
启用流水线操作可减少在远程服务器上执行模块所需的SSH操作数。
这可以在启用时显着提高性能,但是当使用“sudo:”时,必须先在/ etc / sudoers中禁用'requiretty'
默认情况下,禁用此选项以保持兼容性,sudoers配置requiretty(许多发行版的默认设置)。

scp_if_ssh = smart
控制传输文件的机制(旧)
smart:尝试sftp然后尝试scp [默认]
True:仅使用scp
False:仅使用sftp

transfer_method = smart
控制传输文件的机制(新)
如果设置,这将覆盖scp_if_ssh选项:
sftp:使用sftp传输文件
scp:使用scp传输文件
piped:通过SSH使用'dd'来传输文件
smart:按顺序尝试sftp,scp和piped [默认]

sftp_batch_mode = False
如果为False,sftp将不使用批处理模式传输文件。
但是,这可能导致某些类型的文件传输失败无法捕获,并且只有在sftp版本的批处理模式出现问题时才应禁用

use_tty = True
未启用管道传输时,-tt参数将传递给ssh,因为默认情况下sudo需要tty。

retries = 3
在UNREACHABLE的情况下,重试与主机的SSH连接的次数。
对于每次重试尝试,都存在指数退避,因此在第一次尝试之后有1s等待,然后是2s,4s等等,最多30s(最大)。

[persistent_connection]

connect_timeout = 30
以秒为单位配置持久连接超时值。 此值是持久连接在销毁之前保持空闲的时间。
如果连接在超时值到期之前未收到请求,则连接将关闭。 默认值为30秒。

connect_retry_timeout = 15
配置持久连接重试超时。 此值配置ansible-connection将等待连接到本地域套接字的重试超时。
该值必须大于ssh timeout(超时)且小于持久连接空闲超时(connect_timeout)。默认值为15秒。

command_timeout = 10
命令超时值定义在超时之前等待命令或RPC调用的时间。 命令超时的值必须小于持久连接空闲超时(connect_timeout)的值
默认值为10秒。

[accelerate]

accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0

accelerate_daemon_timeout = 30
守护程序超时以分钟为单位。 这个时间是衡量的从最后一个活动到加速守护进程。

accelerate_multi_key = yes
如果设置为yes,则accele_multi_key将允许将多个私钥上传到它,尽管每个用户必须通过SSH访问系统才能添加新密钥。
默认值为“no”。


[selinux]

special_context_filesystems=nfs,vboxsf,fuse,ramfs,9p
处理安全上下文时需要特殊处理的文件系统复制现有上下文或使用用户默认值的默认行为需要更改为使用依赖于文件系统的上下文。

libvirt_lxc_noseclabel = yes
将此设置为yes以允许libvirt_lxc连接在没有SELinux的情况下工作。


[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


[diff]
always = no
在运行时始终打印diff(与始终使用-D / - diff运行相同)

context = 3
设置要在diff中显示的上下文行数

posted @ 2020-04-07 20:45  明王不动心  阅读(3907)  评论(0编辑  收藏  举报