Linha de comando Ansible recuperando a senha ssh do vault

1

Estou tentando configurar o Ansible para gerenciar caixas Linux de clientes diferentes e aqui está o que temos para trabalhar.

  1. Sem autenticação de chave do Pub - eu queria tanto quanto você, mas não vai acontecer em breve.
  2. Fazemos login como root e cada cliente tem uma senha de root diferente para todas as caixas de linux. Estamos pressionando para desabilitar o login root direto e fazer tudo via sudo , mas, novamente, levará algum tempo.

Consegui criar um arquivo de cofre ansible para cada cliente com ansible_ssh_user e ansible_ssh_pass e, a seguir, o livro de reprodução funciona bem.

---
- hosts:
    - SERV01
    - SERV02
  vars_files:
    - roles/common/vault/main.yml

  tasks:
    - name: enable and start ntpd
      service: name=ntpd enabled=yes state=running

Agora, gostaria de saber como posso usar os arquivos do Vault a partir da linha de comando, mas nenhum dos itens a seguir funcionou.

ansible customer1 -m shell -a "var_files:roles/common/vault/main.yml uptime" --ask-vault-pass

ansible customer1 -m shell -a "uptime" -e "vars_files:roles/common/vault/main.yml"  --ask-vault-pass

O que estou fazendo de errado?

Obrigado

    
por Ask and Learn 29.04.2015 / 08:12

2 respostas

5

Finalmente, descobri como fazer isso:

ansible customer1 -e @group_vars/vault/customer1.yml --ask-vault-pass -m shell -a uptime

Agora, posso colocar ansible_ssh_user , ansible_ssh_pass e ansible_sudo_pass em um arquivo do vault e tudo que preciso lembrar é a senha do vault.

Espero que isso torne o Ansible mais agradável para você também.

Obrigado

    
por 04.05.2015 / 02:57
0

Não tenho certeza se Ansible pode fazer isso. Se não puder, uma maneira de fazer isso é

ansible customer1 -e "'ansible-vault view roles/common/vault/main.yml | grep ansible_ssh_pass'" -m shell -a uptime
    
por 30.04.2015 / 10:58

Tags