ansible config में ओवरराइडिंग विकल्प


3

में मेरे पिछले सवाल , मुझे पता चला कि मैं एक स्थानीय में विकल्प रख सकते हैं 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 है, कोई ओवरराइडिंग कॉन्फ़िगरेशन फ़ाइल चर नहीं है?


त्रुटि मुझे स्पष्ट लगती है। आप एन्क्रिप्शन के लिए उपयोग की जाने वाली एक ही मान्य-आईडी असाइन कर सकते हैं। आपने तिजोरी-आईडी कहाँ और कैसे सौंपी है?
रामहुंड

त्रुटि स्पष्ट रूप से इंगित करती है कि यह जानबूझकर था। आप एक नई सुविधा / परिवर्तन का अनुरोध कर रहे हैं, आपको इसे GitHub पर करना चाहिए, न कि SuperUser पर।
टेकरफ

@techraf तो क्या यह एक मानक ansible चीज है, कि एक बार जब कोई सेटिंग ansible.cfg में परिभाषित हो जाती है, तो उसे कमांड-लाइन विकल्प द्वारा ओवरराइड नहीं किया जा सकता है?
हाइमी

उस त्रुटि को फेंक दिया जाता है क्योंकि /tmp/fooएक निष्पादन योग्य बैश स्क्रिप्ट नहीं है जो चाहिएecho ${VAULT_PASS}
डैनियल आंद्रेई मिनकै

@ MincăDanielAndrei आप गलत हैं। docs.ansible.com/ansible/2.5/user_guide/… स्पष्ट रूप से कहता है कि "टेक्स्ट फ़ाइल में वॉल्ट पासवर्ड निर्दिष्ट करने के लिए, --vault-password-file विकल्प का उपयोग करें", जैसा कि ansible-vault --help से सहायता पाठ करता है ।
हाइमी

जवाबों:


0

मेरे पास कल भी इसी तरह का एक मुद्दा था जिसमें एक ही त्रुटि थी और आपका कॉन्फ़िगरेशन।

जाहिरा तौर पर उस त्रुटि को फेंक दिया गया था क्योंकि मेरी ansible.cfgCWD से एक कविता हो रही थी 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 में टाइप करने से बचना है , यह आपके ऊपर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.