Упрощение удаленного управления сервером: пароль Ansible SSH в инвентаре

Ansible — популярный инструмент автоматизации с открытым исходным кодом, который упрощает управление и настройку удаленных серверов. Он использует SSH (Secure Shell) для установления безопасных соединений и выполнения задач на удаленных хостах. По умолчанию Ansible использует аутентификацию на основе ключей SSH для безопасного доступа. Однако существуют сценарии, в которых вместо этого может потребоваться использовать аутентификацию по паролю SSH, например, при управлении устаревшими системами или определенными конфигурациями сети. В этой статье мы рассмотрим несколько способов настройки Ansible для использования аутентификации по паролю SSH в файле инвентаризации.

Метод 1: указание пароля в файле инвентаризации
Один простой подход — включить пароль SSH непосредственно в файл инвентаризации. Вот пример:

[my_servers]
server1 ansible_host=192.168.1.10 ansible_user=myuser ansible_password=mypassword

В этом случае в переменной ansible_passwordустановлен желаемый пароль SSH.

Метод 2: использование Ansible Vault
Ansible Vault — это инструмент, который помогает шифровать и защищать конфиденциальные данные в проектах Ansible. Вы можете использовать Ansible Vault для безопасного хранения пароля SSH. Вот пример:

  1. Создайте зашифрованный файл с именем vault.yml:
ansible-vault create vault.yml
  1. Добавьте пароль SSH в файл vault.yml:
ansible_password: mypassword
  1. Зашифруйте файл vault.yml:
ansible-vault encrypt vault.yml
  1. Обновите файл инвентаризации:
[my_servers]
server1 ansible_host=192.168.1.10 ansible_user=myuser ansible_password="{{ vault_ansible_password }}"

Метод 3: использование переменных среды
Другой подход — использовать переменные среды для передачи пароля SSH в Ansible. Вот пример:

  1. Установите переменную среды ANSIBLE_PASSWORD:
export ANSIBLE_PASSWORD=mypassword
  1. Обновить файл инвентаризации:
[my_servers]
server1 ansible_host=192.168.1.10 ansible_user=myuser ansible_password="{{ lookup('env', 'ANSIBLE_PASSWORD') }}"

Метод 4: Запрос командной строки
Если вы предпочитаете вводить пароль SSH в интерактивном режиме, вы можете использовать опцию --ask-passпри запуске команд Ansible. При этом вам будет предложено ввести пароль во время выполнения:

ansible-playbook --ask-pass playbook.yml

В этой статье мы рассмотрели несколько способов настройки Ansible для использования аутентификации по паролю SSH в файле инвентаризации. Будь то прямое указание пароля, использование Ansible Vault, использование переменных среды или выбор интерактивных подсказок — у вас есть несколько вариантов, соответствующих вашим конкретным требованиям. Не забывайте безопасно обращаться с конфиденциальной информацией и выбирайте метод, который лучше всего подходит для вашего рабочего процесса.