我的设置:
网络中的每个物理服务器都安装了 consul-client,我使用 我编辑的consul_dynamic_inventory脚本管理这些服务器,以允许我使用基于 os 主要版本和其他内容的特定分组选项。
例子:
(base) ➜ ansible git:(master) ✗ ansible centos6 -m ping -e ansible_ssh_user=root
Sunday 08 March 2020 16:55:10 +0200 (0:00:00.101) 0:00:00.102 **********
agent-c6-06.node.company.consul | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
agent-c6-01.node.company.consul | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
agent-c6-05.node.company.consul | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
上面的示例是可能的,因为我将/etc/ansible/ansible.cfg
“inventory”指令配置为指向该 consul_dynamic_inventory 脚本,因此我不必显式地将“-i inventory_file”添加到命令中。
我的问题:
我想将“ansible_ssh_user=root”添加到默认值,这样我就不必在运行 ansible 时提供该开关。
通常,为了将它添加到所有主机,我会在清单文件中添加:
[all:vars]
ansible_ssh_user=root
但是由于我的库存实际上是一个脚本,我不确定在哪里添加它,因为将它添加到脚本中显然会破坏它的运行。
我尝试在ansible.cfg
文件的以下部分添加它:
[defaults]
[inventory]
[ssh_connection]
但无济于事。
我的问题:
添加它的正确位置在哪里?
好的,找到了。
我试图在
ansible.cfg
文件的几个地方将它添加为“ansible_ssh_user”,但事实证明它应该添加为:文件[defaults]
部分下的“remote_user”ansible.cfg
。