У меня есть инвентарный файл с одним хостом:
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
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
файлы должны иметь один и тот же пароль.