Ansible自动化(八) 用navigator检索ansible配置
1 | 作者:李晓辉 |
检索ansible配置方法
ansible-navigator config
命令以交互模式展示当前 Ansible 配置,方便你查看 ansible-navigator run
命令使用的配置。它还能帮你搞清楚当前配置的设置从哪里来的,了解这个非常有用,特别是当你发现某些设置的值不符合预期时,可以帮助你找出原因。
通常,ansible.cfg
配置文件的来源包括:
- 环境变量。
- 通过
ANSIBLE_CONFIG
环境变量指定的配置文件。 - 硬编码的默认值。
默认情况下,ansible-navigator
会使用自动化执行环境中的配置来运行任务。如果项目没有提供 ansible.cfg
配置文件,ansible-navigator
会使用自动化执行环境内的 /etc/ansible/ansible.cfg
文件。
如果你在使用自动化执行环境时,该命令不会使用本地系统中的 /etc/ansible/ansible.cfg
或 ~/.ansible.cfg
文件。如果你希望命令使用本地配置文件,可以通过添加 --execution-environment false
(或 --ee false
)选项来禁止使用自动化执行环境中的配置。
交互式检查
ansible-navigator config
命令以交互模式显⽰当前配置、默认配置、配置来源
在输出中,使用:f xxx
或者:filter xxx
来筛选字符串
在输出中,使用:数字
打开特定的内容详细信息
以下是通过:f become
之后按下7
查询的become_user相关的值
current_config_file:当前使用的配置文件路径,如果没有找到相关配置文件,该值会显示为
None
。current_value:当前正在使用的配置值,这里指
become_user
的值是root
。default:表示该配置项是否采用默认值,
true
表示目前正在使用默认设置。default_value:显示配置项的默认值,这里默认值为
root
。description:对配置项的功能进行详细描述,指出在使用权限提升时登录用户将切换为指定的用户,若未指定,通常默认切换为
root
。env:列出了可以通过环境变量来设置该配置项的方式,这里环境变量是
ANSIBLE_BECOME_USER
。ini:说明在 INI 格式的配置文件中,可以通过特定的部分(
privilege_escalation
)和键名(become_user
)来定义该配置项。name:这是配置项的名称,具体标识为 “Default become user”。
option:对应 Ansible 内部代码中的选项变量名称,这里是
DEFAULT_BECOME_USER
。source:表示配置值的来源,这里来源于默认设置。
via:进一步指明配置值是通过默认途径加载的。
yaml:指定在 YAML 格式配置文件中设置该配置项的方法,可以通过键
become.user
实现。
标准输出模式检查
ansible-navigator config -m stdout
的子命令有三个,分别是:
- list:列出所有的 Ansible 配置参数。这个命令会生成一个静态的参数列表,但它不会显示每个参数的当前值。
- dump:列出所有的 Ansible 配置参数和它们当前的值。这样你就能看到每个配置项的实际设置。
- view:显示 Ansible 当前使用的
ansible.cfg
配置文件内容。这个命令特别有用,帮助你确认 Ansible 是否在使用你预期的配置文件。
在以下输出中,适用于常规的vim搜索,例如/keyword
1 | [root@workstation ~]# ansible-navigator config -m stdout list --eei hub.lab.example.com/ee-supported-rhel8 --pp missing |
使用自定义值
上面是我们没有提供配置文件的默认输出,我们来提供一个ansible.cfg配置,并将其配置为非默认值,再来输出看看
我们创建了ansible.cfg
,并且给become_user设置为lixiaohui
1 | cat > ansible.cfg <<-EOF |
交互式来检查一下看看
进来之后:f become
,可以看到become_user参数已经变黄,Default Source Current
提示我们是非默认值,且来源于我们自己的配置文件
到此,我们已经学会了如何用ansible-navigator
命令去检索ansible
参数了。