Ansible

使用 Consul 動態庫存作為 Ansible 的庫存,想設置特定的 ssh 使用者,是怎麼做的?

  • March 8, 2020

我的設置:

網路中的每個物理伺服器都安裝了 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

引用自:https://serverfault.com/questions/1006085