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

ansible-vault шифрование учетных данных

У меня есть инвентарный файл с одним хостом:

10.1.32.123 ansible_ssh_user = бродяга ansible_ssh_pass = бродяга

Мой yaml файл:

- hosts: all
  sudo: yes
  gather_facts: yes
  serial: 20

  roles:

Это не yaml файл, который я хочу защитить паролем, но мой инвентарный файл, поскольку он содержит учетные данные пользователя. Хотя это невозможно, поскольку, когда я запускаю playbook, содержимое файла инвентаризации не расшифровывается. Будет, если у меня есть yaml файл зашифрован.

ansible-playbook inventory site.yml --ask-vault-pass
  1. Есть ли способ добавить учетные данные: ansible_ssh_user=vagrant ansible_ssh_pass=vagrant к yaml файл и просто сохраните IP в файле инвентаризации.

ДОКУМЕНТЫ:

СВОД

Я не думаю, что вы можете зашифровать файл hosts. Гораздо лучшим подходом было бы иметь любую конфиденциальную информацию, такую ​​как учетные данные, во вторичном файле vars, зашифрованном с помощью ansible-vault, а затем просто включить этот файл в свою книгу:

- hosts: all
  sudo: yes
  gather_facts: yes
  vars_files:
    - /path/to/encrypted/vars.yml

Ваш inventory файл содержит хост:

10.1.1.2

Ваш vars/vars.yml сохранит ваши учетные данные:

ansible_ssh_user: vagrant
ansible_ssh_password: vagrant

Чтобы использовать более одного хоста, вы можете добавить группы в файл инвентаризации. Хосты, входящие в определенную группу, используют одни и те же учетные данные:

[group1]
10.1.1.2
10.1.1.3

[group2]
10.1.1.4
10.1.1.5

В вашей книге теперь будет два раздела хоста:

- hosts: group1
  vars_files:
    - vars/group1.yml

- hosts: group2
  vars_files:
    - vars/group2.yml

В group1.yml и group2.yml файлы должны иметь один и тот же пароль.