Назад | Перейти на главную страницу

Используя динамический инвентарь Consul в качестве инвентаря Ansible и вы хотите установить определенного пользователя ssh, как это сделать?

Моя установка:

На каждом физическом сервере в сети установлен консул-клиент, и я управляю этими серверами, используя 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 файл.