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

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

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

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

Мой yamlфайл:

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

  roles:

yamlЯ хочу защитить паролем не файл, а файл инвентаря, поскольку он содержит учетные данные пользователя. Это, однако, невозможно, поскольку при запуске сценария содержимое файла инвентаря не расшифровывается. Расшифровывается, если yamlфайл зашифрован.

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

ДОКУМЕНТЫ:

СЕЙФ

решение1

Я не думаю, что вы можете зашифровать файл 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должны иметь один и тот же пароль.

Связанный контент