दो विकल्प - पहला, जैसा कि आपने अपने स्वयं के उत्तर में कहा था, पर्यावरण चर ANSIBLE_HOST_KEY_CHECKING
को गलत पर सेट कर रहा है ।
इसे सेट करने का दूसरा तरीका यह है कि इसे ansible.cfg फ़ाइल में रखा जाए, और यह वास्तव में एक उपयोगी विकल्प है क्योंकि आप या तो विश्व स्तर पर (सिस्टम या उपयोगकर्ता स्तर पर, /etc/ansible/ansible.cfg
या ~/.ansible.cfg
) या उसी निर्देशिका में एक कॉन्फिग फ़ाइल में सेट कर सकते हैं। आपके द्वारा चलाए जा रहे प्लेबुक के रूप में।
ऐसा करने के लिए, ansible.cfg
उन स्थानों में से एक में एक फ़ाइल बनाएं और इसे शामिल करें:
[defaults]
host_key_checking = False
आप बहुत सारे अन्य आसान डिफॉल्ट भी सेट कर सकते हैं, जैसे कि किसी नाटक की शुरुआत में तथ्यों को इकट्ठा करना या न करना, चाहे कई स्थानों पर घोषित हैश को मर्ज करना हो या एक को दूसरे के साथ बदलना हो, इत्यादि। Ansible डॉक्स में यहां विकल्पों की एक पूरी बड़ी सूची है ।
संपादित करें: सुरक्षा पर एक नोट।
SSH होस्ट कुंजी सत्यापन लगातार मेजबानों के लिए एक सार्थक सुरक्षा परत है - यदि आप कई बार एक ही मशीन से जुड़ रहे हैं, तो यह स्थानीय रूप से होस्ट कुंजी को स्वीकार करने के लिए मूल्यवान है।
लंबे समय तक रहने वाले EC2 उदाहरणों के लिए, यह उदाहरण के प्रारंभिक निर्माण पर केवल एक बार चलने वाले कार्य के साथ मेजबान कुंजी को स्वीकार करने के लिए समझ में आएगा :
- name: Write the new ec2 instance host key to known hosts
connection: local
shell: "ssh-keyscan -H {{ inventory_hostname }} >> ~/.ssh/known_hosts"
ऐसे उदाहरणों पर होस्ट कुंजियों की जाँच करने के लिए कोई सुरक्षा मूल्य नहीं है जो आप गतिशील रूप से खड़े रहते हैं और प्लेबुक निष्पादन के बाद सही हटा देते हैं, लेकिन लगातार मशीनों के लिए होस्ट कुंजी की जाँच करने में सुरक्षा मूल्य है। इसलिए आपको तार्किक वातावरण के अनुसार अलग-अलग होस्ट कीज की जाँच करनी चाहिए।
- डिफ़ॉल्ट रूप से (सक्षम
~/.ansible.cfg
) जाँच सक्षम छोड़ दें
- होस्ट कुंजी playbooks के लिए काम निर्देशिका में जाँच आप (अल्पकालिक उदाहरणों के खिलाफ चलाए अक्षम
./ansible.cfg
आवारा VM, अल्पकालिक EC2 उदाहरण के लिए स्वचालन के खिलाफ इकाई परीक्षण के लिए प्लेबुक के साथ)