Укажите разные имена пользователей для каждого удаленного хоста - PullRequest
0 голосов
/ 11 октября 2019

Я выполняю развертывание на 3 разных удаленных хостах, и у всех у них разные пользователи и пароли. Я пытаюсь добавить их в свои файлы, чтобы они не отображались во время выполнения.

Я попытался добавить их в папку group_vars.

 my_group:
 host1:
 ansible_ssh_user: user1
 ansible_ssh_pass: pass1

 host2:
 ansible_ssh_user: user2
 ansible_ssh_pass: pass2

 host3:
 ansible_ssh_user: user3
 ansible_ssh_pass: pass3

Возвращает предупреждение о наличии дублированного ключа dict и использует только значение для первого объявления.

Я нашел решение передать его в playbook:

hosts: host1:host2
user: abcd 
tasks: ...

hosts: host3
user:efgh
tasks:...

Я считаю это решение неподходящим в моем случае, так как задачи, которые мне нужно выполнить, одинаковы для всех удаленных хостов. Также есть много задач, и будет неудобно копировать, вставлять их несколько раз в одну книгу. Это также не позволяет мне добавить пропуск.

Как указать имя пользователя и пароль для каждого удаленного хоста?

1 Ответ

0 голосов
/ 11 октября 2019

Вы также можете выбрать тип подключения и пользователя для каждого хоста:

[targets]

localhost              ansible_connection=local
other1.example.com     ansible_connection=ssh        ansible_user=mpdehaan
other2.example.com     ansible_connection=ssh        ansible_user=mdehaan

из: Работа с инвентарем .

Я уже сделалчто-то похожее, но проще для других вариантов:

[all]
vagrant  ansible_host=127.0.0.1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...