sobrescrevendo opções na configuração ansible

2

Em minha pergunta anterior , eu descobri que posso colocar opções em um arquivo ansible.cfg local. Mas posso substituí-los?

Eu tenho um arquivo ansible.cfg que contém

[defaults]
vault_password_file = /home/hymie/ansible/foo

E eu posso usar este arquivo automaticamente:

$ echo "hi there" |  ansible-vault encrypt_string
Reading plaintext input from stdin. (ctrl-d to end input)
!vault |
          $ANSIBLE_VAULT;1.1;AES256
          64386133613865366565336365333166623538613239636464303931646330323061376239363639
          3136376163613132613130306630626365643133366664310a353030303434346336396233616363
          62323464313737663135303636646264373737393930326132386231363561653865646436313439
          3231353132643364340a316431626332626633646135613064353133633038356434323537326633
          3035
Encryption successful

Mas agora, não consigo usar / selecionar uma senha diferente:

$ echo "hi there" |  ansible-vault encrypt_string --ask-vault-pass
New Vault password:
Confirm New Vault password:
ERROR! Only one --vault-id can be used for encryption. This includes passwords from configuration and cli.

$ echo "hi there" |  ansible-vault encrypt_string --vault-password-file=/tmp/foo
ERROR! Only one --vault-id can be used for encryption. This includes passwords from configuration and cli.

$ echo "hi there" |  ansible-vault encrypt_string --vault-id=@prompt
New vault password (default):
Confirm vew vault password (default):
ERROR! Only one --vault-id can be used for encryption. This includes passwords from configuration and cli.

Isso parece o comportamento errado.

Por que minha opção de linha de comando (para solicitar uma senha ou para selecionar um arquivo de senha diferente) não é substituída pela opção do arquivo de configuração para usar um arquivo de senha predefinido específico? Estou fazendo algo errado? Ou é ansible assim, sem substituir variáveis de arquivo de configuração?

    
por hymie 19.01.2018 / 15:16

1 resposta

0

Eu tive um problema semelhante ontem com o mesmo erro e sua configuração.

Aparentemente, esse erro foi lançado porque meu ansible.cfg do CWD estava poitando para um vault_password_file e também estava passando o --vault-password-file no CLI como argumento, então fazer referência ao arquivo de senha do Vault duas vezes gera esse erro: ERROR! Only one --vault-id can be used for encryption. This includes passwords from configuration and cli.

Qual é exatamente o que o erro diz, o fato de que você está passando esse param duas vezes, mas de uma maneira diferente.

Assim, uma maneira de corrigir isso é remover a referência vault_password_file= de ansible.cfg e apenas passá-la pelo cli --vault-password-file ou apenas deixá-la no ansible.cfg , evitando digitar --vault-password-file em o cli de novo, é com você.

    
por 20.09.2018 / 12:53