Я новичок в Ansible. Я могу проверить его и его работу с моим тестовым требованием. Для установления соединения между менеджером node и клиентом node я использую уже созданную пару ключей ssh. Как я могу использовать другой node с другой парой ключей SSH? Для справки я рассматриваю 3 ec2-экземпляр с разными парами ключей.
Доступно с несколькими парами ключей SSH
Ответ 1
Хорошая новость - в основном случае использования, это довольно легко. Просто используйте параметр ansible_ssh_private_key_file
в Ansible inventory.
Вот несколько примеров, взятых из моего личного файла:
$ cat hosts.ini
[server1]
54.1.2.3 ansible_ssh_private_key_file=~/.ssh/server1.pem
[testservers]
ec2-54-2-3-4.compute-1.amazonaws.com ansible_ssh_private_key_file=~/.ssh/aws-testserver.pem ansible_ssh_user=ubuntu
ec2-54-2-3-5.compute-1.amazonaws.com ansible_ssh_private_key_file=~/.ssh/aws-testserver.pem ansible_ssh_user=ubuntu
[piwall]
10.0.0.88 ansible_ssh_private_key_file=~/.ssh/raspberrypi.pem ansible_ssh_user=pi
Ответ 2
tedder42 правильный, однако есть лучший способ сделать это.
Смотрите ansible_ssh_private_key_file
здесь.
У меня в файлах хоста следующие
# SSH Keys configuration
[all_servers:vars]
ansible_ssh_private_key_file = <YOUR PRIVATE KEY LOCATION>
# Server configuration
[all_servers:children]
elastic_servers
nginx_servers
[elastic_servers]
44.22.11.22
44.55.66.77
22.11.22.33
[nginx_servers]
22.24.123.123
233.111.222.11
Если у вас есть конфигурация нескольких ключей, вы можете сделать что-то вроде следующего
[nginx:vars]
ansible_ssh_private_key_file = <YOUR PRIVATE KEY LOCATION>
[app:vars]
ansible_ssh_private_key_file = <YOUR 2nd PRIVATE KEY LOCATION>
[nginx:children]
nginx_servers
[app:children]
app_servers
[nginx_servers]
1.2.3.4
[app_servers]
5.5.5.5
6.6.6.6
Таким образом, более чистый, чем ворошилка42. Это полезно, если у вас несколько ключей для нескольких серверов.
В противном случае вы можете включить свой ключ в файл ansible.cfg.