Налаштуйте SSH-дані для середовища


10

Я намагаюся розібратися, як налаштувати облікові дані SSH окремо для середовища виробництва та інсценування з Ansible. Я розумію, що ви можете налаштувати IP-адреси сервера та імена серверів окремо, використовуючи різні файли інвентаря, передавши команду -iабо --inventory-fileаргумент ansible-playbook. Однак я не бачу такої можливості для ansible.cfg. Наразі облікові дані існують /etc/ansible/ansible.cfgяк:

[defaults]
private_key_file=/home/caleb/.ssh/staging_key.pem
remote_user=ubuntu
sudo_user=root
gathering=explicit

Як я можу налаштувати кілька облікових даних SSH, один для виробництва та один для постановки?


що змінюється між вашим середовищем? Просто файл ключа або також віддалений_користувач / sudo_user?
tedder42

@ tedder42 Приватний ключ SSH та віддалений_користувач.
користувач369450

Чому ви не прикриєте це у своєму .ssh / config?
удандан

@udondan Чи існує спосіб вказати один раз для декількох хостів один раз .ssh/config?
користувач369450

Так, ви можете це зробити. Можна створити кілька груп із чіткими іменами хостів або шаблонами. Дозвольте опублікувати приклад у відповіді.
удандан

Відповіді:


16

Здається, моя перша відповідь була не зовсім правильною. Хоча, звичайно, це можна вирішити так, .ssh/configяк описано нижче, але, мабуть, це можливо і за допомогою параметрів інвентаризації поведінкових характеристик Ansibles .

Ви повинні (згідно з документами) мати можливість визначати файл ключів та користувача у вашому інвентарі, будь-який хост або група.

Визначення для групи:

[some_hosts]
host1.foo
host2.foo

[some_hosts:vars]
ansible_ssh_user=ubuntu
ansible_ssh_private_key_file=/home/caleb/.ssh/staging_key.pem

Визначення на хоста:

[some_hosts]
host1.foo     ansible_ssh_user=ubuntu          ansible_ssh_private_key_file=/home/caleb/.ssh/staging_key.pem
host2.foo     ansible_ssh_user=another_user    ansible_ssh_private_key_file=/home/caleb/.ssh/production_key.pem

Але ви можете визначити кілька груп хостів, які вже є у вашій країні, .ssh/configі кожна група може мати свої окремі налаштування щодо ключа та користувача.

Ось короткий приклад

#Example with a wildcard
Host *.foo.com
  user ubuntu
  IdentityFile /home/caleb/.ssh/staging_key.pem

#Example with multiple hostnames
Host hostname.one hostname.two hostname.three
  user other_user
  IdentityFile /home/caleb/.ssh/production_key.pem

Ви також можете визначити за замовчуванням і змінити його пізніше з більш детальними налаштуваннями.

Host *
  user defaut_username

Host somehost
  user special_username
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.