SSH क्रेडेंशियल प्रति वातावरण कॉन्फ़िगर करें


10

मैं यह पता लगाने की कोशिश कर रहा हूं कि उत्पादन के लिए अलग से एसएसएच क्रेडेंशियल्स को कैसे कॉन्फ़िगर किया जाए और एंज़िबल के साथ पर्यावरण का मंचन किया जाए। मैं समझता हूं कि आप आदेश के लिए -iया --inventory-fileतर्क पास करके अलग-अलग इन्वेंट्री फ़ाइलों का उपयोग करके सर्वर आईपी पते और होस्टनाम को अलग से कॉन्फ़िगर कर सकते हैं ansible-playbook। हालाँकि, मुझे ऐसा कोई विकल्प नहीं दिखता है ansible.cfg। वर्तमान में, क्रेडेंशियल निम्नानुसार हैं /etc/ansible/ansible.cfg:

[defaults]
private_key_file=/home/caleb/.ssh/staging_key.pem
remote_user=ubuntu
sudo_user=root
gathering=explicit

मैं कई SSH क्रेडेंशियल्स को कैसे कॉन्फ़िगर कर सकता हूं, एक उत्पादन के लिए और एक स्टेजिंग के लिए?


आपके वातावरण के बीच क्या परिवर्तन होता है? बस कुंजी फ़ाइल, या Remote_user / sudo_user भी?
tedder42

@ tedder42 SSH निजी कुंजी और Remote_user।
user369450

आप इसे अपने .ssh / config में क्यों नहीं शामिल करते हैं?
.उंडान

@udondan कई मेजबानों के लिए एक बार एक कुंजी निर्दिष्ट करने का एक तरीका है .ssh/config?
user369450

हां, आप यह कर सकते हैं। आप स्पष्ट होस्टनाम या पैटर्न के साथ कई समूह बना सकते हैं। एक उत्तर में एक उदाहरण देता हूं।
.उंडान

जवाबों:


16

लगता है जैसे मेरा पहला उत्तर पूरी तरह से सही नहीं था। हालांकि .ssh/config, नीचे वर्णित अपनी पसंद के अनुसार इसे हल करना संभव है , यह Ansibles व्यवहार इन्वेंटरी पैरामीटर के साथ भी संभव है ।

आपको (डॉक्स के अनुसार) अपनी सूची में कीफाइल और उपयोगकर्ता को होस्ट या प्रति समूह के अनुसार परिभाषित करने में सक्षम होना चाहिए।

प्रति समूह परिभाषा:

[some_hosts]
host1.foo
host2.foo

[some_hosts:vars]
ansible_ssh_user=ubuntu
ansible_ssh_private_key_file=/home/caleb/.ssh/staging_key.pem

प्रति मेजबान परिभाषा:

[some_hosts]
host1.foo     ansible_ssh_user=ubuntu          ansible_ssh_private_key_file=/home/caleb/.ssh/staging_key.pem
host2.foo     ansible_ssh_user=another_user    ansible_ssh_private_key_file=/home/caleb/.ssh/production_key.pem

लेकिन आप अपने पहले से ही कई होस्ट समूहों को परिभाषित कर सकते हैं .ssh/configऔर प्रत्येक समूह के पास कुंजी और उपयोगकर्ता के बारे में अलग-अलग सेटिंग्स हो सकती हैं।

यहाँ एक त्वरित उदाहरण है

#Example with a wildcard
Host *.foo.com
  user ubuntu
  IdentityFile /home/caleb/.ssh/staging_key.pem

#Example with multiple hostnames
Host hostname.one hostname.two hostname.three
  user other_user
  IdentityFile /home/caleb/.ssh/production_key.pem

साथ ही आप एक डिफ़ॉल्ट को परिभाषित कर सकते हैं और इसे बाद में अधिक विस्तृत सेटिंग्स के साथ ओवरराइड कर सकते हैं।

Host *
  user defaut_username

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