переопределяющие параметры в конфигурационном файле

419
hymie

В моем предыдущем вопросе я обнаружил, что могу поместить параметры в локальный ansible.cfgфайл. Но могу ли я их переопределить?

У меня есть ansible.cfgфайл, который содержит

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

И я могу использовать этот файл автоматически:

$ 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 

Но сейчас я не могу использовать / выбрать другой пароль:

$ 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. 

Это похоже на неправильное поведение.

Почему мой параметр командной строки (либо для запроса пароля, либо для выбора другого файла пароля) не переопределяет параметр файла конфигурации для использования определенного предварительно определенного файла пароля? Я делаю что-то неправильно? Или ANSIBLE просто так, без переопределения переменных файла конфигурации?

3
Ошибка кажется мне понятной. Вы можете назначить только один действительный идентификатор, который будет использоваться для шифрования. Где еще вы назначили идентификатор хранилища? Ramhound 6 лет назад 0
Ошибка ясно указывает на то, что это было сделано намеренно. Вы запрашиваете новую функцию / изменение, вы должны сделать это на GitHub, а не SuperUser. techraf 6 лет назад 0
@techraf Значит, это стандартная вещь, которая может быть задана, что после определения параметра в ansible.cfg его нельзя переопределить параметром командной строки? hymie 6 лет назад 0
Эта ошибка возникает потому, что `/ tmp / foo` не является исполняемым скриптом bash, который должен` echo $ ` Mincă Daniel Andrei 6 лет назад 0
@ MincăDanielAndrei Вы ошибаетесь. https://docs.ansible.com/ansible/2.5/user_guide/vault.html#providing-vault-passwords четко говорит: «Чтобы указать пароль хранилища в текстовом файле, используйте параметр --vault-password-file», как и текст справки из ansible-vault --help. hymie 6 лет назад 0

1 ответ на вопрос

0
Mincă Daniel Andrei

У меня была похожая проблема вчера с той же ошибкой и вашей конфигурацией.

Очевидно, эта ошибка ansible.cfgвозникла из-за того, что my from CWD находился в состоянии a, vault_password_fileи я также передавал --vault-password-fileв CLI аргумент, поэтому ссылка на файл пароля хранилища дважды выдает эту ошибку:ERROR! Only one --vault-id can be used for encryption. This includes passwords from configuration and cli.

Именно это и говорит ошибка: тот факт, что вы передаете этот параметр дважды, но другим способом.

Таким образом, способ исправить это - либо удалить vault_password_file=ссылку ansible.cfgи только пропустить ее через cli --vault-password-file, либо просто оставить ее, ansible.cfgтаким образом, избегая --vault-password-fileповторного ввода в cli, решать вам.

Похожие вопросы