Моя установка:
На каждом физическом сервере в сети установлен консул-клиент, и я управляю этими серверами, используя consul_dynamic_inventory скрипт, который я отредактировал, чтобы позволить мне использовать определенные параметры группировки, например, на основе основной версии ОС и других вещей.
Пример:
(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_ssh_user" в нескольких местах в ansible.cfg
файл, но оказывается, что он должен быть добавлен как: "remote_user" под [defaults]
часть ansible.cfg
файл.