Ansible
使用 Consul 動態庫存作為 Ansible 的庫存,想設置特定的 ssh 使用者,是怎麼做的?
我的設置:
網路中的每個物理伺服器都安裝了 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
。