Я настроил ключи SSH в Linux или Unix в соответствии с потребностями моего проекта и провайдерами облачного хостинга.
Я также новичок в Ansible IT автоматизации и DevOps инструментов.
У моего узла управления есть ключи для Linode, AWS / EC2 и Google cloud.
Как мне установить и сказать Ansible использовать разные ssh-ключи?
Как настроить учетные данные SSH для каждого поставщика услуг облачного хостинга?
Ansible – это бесплатное ИТ-программное обеспечение с открытым исходным кодом, которое автоматизирует предоставление программного обеспечения, управление конфигурацией и развертывание приложений.
Можно использовать Ansible для создания облачных хостов в EC2, патч-серверов, добавления пользователей, настройки маршрутизаторов / брандмауэров и многого другого.
Ansible использует SSH, который позволяет пользователям и ansbile войти на удаленные серверы и выполнить задачи управления.
На этой странице показано, как уже настроить ключи SSH для входа на удаленный сервер с помощью инструмента автоматизации Ansible IT.
Ansible определяет ключ ssh для каждого хоста, используя ansible_ssh_private_key_file
Вам нужно использовать ansible_ssh_private_key_file.
Синтаксис довольно прост:
host ansible_ssh_private_key_file=/path/to/your/.ssh/file.pub 192.168.2.200 ansible_ssh_private_key_file=/path/to/your/.ssh/id_rsa.pub 104.20.187.5 ansible_ssh_private_key_file=/path/to/your/.ssh/aws.pem |
пример ansible_ssh_private_key_file
Давайте откроем файл с именем hosts в ~ /projects/ansible/hosts с помощью текстового редактора, такого как vim:
$ vim ~/projects/ansible/hosts
Пример файла:
[my_servers] 1.2.3.4 ansible_ssh_private_key_file=/home/vivek/.ssh/id_ed25519.pub 202.54.1.5 ansible_ssh_private_key_file=~/.ssh/Lightsail-us-west-2.pem www1 ansible_ssh_private_key_file=~/.ssh/Linode-us.rsa.pub vpn-box1 ansible_ssh_private_key_file=~/.ssh/Linode-us.rsa.pub |
Другой пример:
## Ansible with multiple SSH key pair as per server hosting ## [linode] www1-li ansible_ssh_private_key_file=/path/to/file www2-li ansible_ssh_private_key_file=/path/to/file [aws] www1-aws ansible_ssh_private_key_file=/path/to/file www2-aws ansible_ssh_private_key_file=/path/to/file [google_cloud] www1-gcp ansible_ssh_private_key_file=/path/to/file www2-gcp ansible_ssh_private_key_file=/path/to/file |
Это можно сгруппировать следующим образом:
[linode] www1-li www2-li [aws] www1-aws www2-aws [google_cloud] www1-gcp www2-gcp [linode:vars] ansible_ssh_user=vivek ansible_ssh_private_key_file=/home/vivek/.ssh/linode.id_ed25519.pub [aws:vars] ansible_ssh_user=ec-2 ansible_ssh_private_key_file=/home/vivek/.ssh/aws-ec2-usa-east.pem [google_cloud:vars] ansible_ssh_user=someuser@gmail.com ansible_ssh_private_key_file=/home/vivek/.ssh/google_compute_engine.pem [freebsd] aws_freebsd_1 aws_freebsd_2 aws_freebsd_3 [freebsd:vars] ansible_python_interpreter=/usr/local/bin/python ansible_ssh_user=vivek ansible_ssh_private_key_file=/home/vivek/.ssh/freebsd-aws-lightsail.pem |
Как проверит работу
Вы можете попросить Ansible не вносить никаких изменений; вместо этого попытайтесь предсказать некоторые различия в этих файлах:
$ ansible-playbook -i hosts my-book.yml –check
$ ansible freebsd -i hosts –list-hosts
$ ansible aws -i hosts –list-hosts
$ ansible google_cloud -i hosts –list-hosts
Список всех возможных настроек конфигурации SSH-соединения
- ansible_port = 2020: номер порта ssh, если не 22
- ansible_user = vivek: имя пользователя ssh по умолчанию для использования.
- ansible_ssh_private_key_file =/path/to/ssh.pem: файл закрытого ключа, используемый ssh. Полезно, если используется несколько ключей, и вы не хотите использовать агент SSH.
- ansible_python_interpreter = /usr/local/bin/python: целевой путь Python для хоста