ansible-vault criptografar credenciais

6

Eu tenho um arquivo de inventário com um host:

10.1.32.123 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

Meu arquivo yaml :

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

  roles:

Não é o arquivo yaml que desejo proteger com senha, mas meu arquivo de inventário, pois contém as credenciais do usuário. Embora não seja possível, quando executo o manual, o conteúdo do arquivo de inventário não é descriptografado. Isso acontece se eu tiver o arquivo yaml criptografado.

ansible-playbook inventory site.yml --ask-vault-pass
  1. Existe uma maneira de adicionar as credenciais: ansible_ssh_user=vagrant ansible_ssh_pass=vagrant ao arquivo yaml e apenas manter o IP no arquivo de inventário.

DOCS:

VAULT

    
por nicoX 03.03.2015 / 13:42

1 resposta

5

Eu não acho que você pode criptografar o arquivo hosts. Uma abordagem muito melhor seria ter informações confidenciais, como credenciais armazenadas em um arquivo vars secundário criptografado com o ansible-vault, e incluir apenas esse arquivo no seu manual:

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

Seu arquivo inventory contém um host:

10.1.1.2

Seu vars/vars.yml armazenará suas credenciais:

ansible_ssh_user: vagrant
ansible_ssh_password: vagrant

Para usar mais de um host, você pode adicionar grupos ao arquivo de inventário. Os hosts que estão no grupo específico estão compartilhando 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.

    
por 17.03.2015 / 20:51

Tags