
Eu tenho um arquivo de inventário com um host:
10.1.32.123 ansible_ssh_user=vagabundo ansible_ssh_pass=vagabundo
Meu yaml
arquivo:
- hosts: all
sudo: yes
gather_facts: yes
serial: 20
roles:
Não é o yaml
arquivo que desejo proteger com senha, mas meu arquivo de inventário, pois contém credenciais de usuário. Embora não seja possível, pois quando executo o manual, o conteúdo do arquivo de inventário não é descriptografado. Isso acontece se eu tiver o yaml
arquivo criptografado.
ansible-playbook inventory site.yml --ask-vault-pass
- Existe uma maneira de adicionar as credenciais:
ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
aoyaml
arquivo e apenas manter o IP no arquivo de inventário.
DOCUMENTOS:
Responder1
Não acho que você possa criptografar o arquivo hosts. Uma abordagem muito melhor seria ter quaisquer informações confidenciais, como credenciais, armazenadas em um arquivo vars secundário criptografado com ansible-vault e, em seguida, incluir esse arquivo em seu manual:
- hosts: all
sudo: yes
gather_facts: yes
vars_files:
- /path/to/encrypted/vars.yml
Seu inventory
arquivo contém um host:
10.1.1.2
Você vars/vars.yml
armazenará suas credenciais:
ansible_ssh_user: vagrant
ansible_ssh_password: vagrant
Para usar mais de um host você pode adicionar grupos no arquivo de inventário. Os hosts que estão no grupo específico compartilham as mesmas credenciais:
[group1]
10.1.1.2
10.1.1.3
[group2]
10.1.1.4
10.1.1.5
Seu manual agora terá duas seções de hosts:
- hosts: group1
vars_files:
- vars/group1.yml
- hosts: group2
vars_files:
- vars/group2.yml
Os arquivos group1.yml
e group2.yml
devem compartilhar a mesma senha.