Назад | Перейти на главную страницу

Командная строка Ansible, извлекающая пароль ssh из хранилища

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

  1. Нет аутентификации с помощью ключа Pub - я хотел этого так же, как и вы, но это произойдет не скоро.
  2. Мы входим в систему как root, и у каждого клиента свой пароль root для всех ящиков Linux. Мы настаиваем на отключении прямого входа в систему root и делаем все через sudo но опять же, это займет некоторое время.

Мне удалось создать доступный файл хранилища для каждого клиента с ansible_ssh_user и ansible_ssh_pass в нем и в следующем плей-бук работает нормально.

---
- hosts:
    - SERV01
    - SERV02
  vars_files:
    - roles/common/vault/main.yml

  tasks:
    - name: enable and start ntpd
      service: name=ntpd enabled=yes state=running

Теперь я хотел бы знать, как использовать файлы хранилища из командной строки, но ни одно из следующих действий не помогло.

ansible customer1 -m shell -a "var_files:roles/common/vault/main.yml uptime" --ask-vault-pass

ansible customer1 -m shell -a "uptime" -e "vars_files:roles/common/vault/main.yml"  --ask-vault-pass

Что я делаю не так ?

Спасибо

Наконец я понял, как это сделать:

ansible customer1 -e @group_vars/vault/customer1.yml --ask-vault-pass -m shell -a uptime

Теперь я могу поставить ansible_ssh_user, ansible_ssh_pass и ansible_sudo_pass в файле хранилища, и все, что мне нужно запомнить, - это пароль хранилища.

Я надеюсь, что это сделает Ansible более приятным для вас.

Спасибо

Я не уверен, сможет ли Ansible это сделать. Если нет, то можно сделать это

ansible customer1 -e "`ansible-vault view roles/common/vault/main.yml | grep ansible_ssh_pass`" -m shell -a uptime