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