2017-11-15 14 views
5

मैं एकाधिक होस्टों के माध्यम से गुजरने वाले लक्षित होस्ट पर एक उत्तरदायी प्लेबुक चलाने के लिए चाहता हूं। परिदृश्य चित्र में दिखाया गया एक जैसा दिखता है:उत्तरदायी मल्टी हॉप डिजाइन

enter image description here

मैं आंशिक रूप से हल मुद्दा Ansible परियोजना निर्देशिका में ssh_config फ़ाइल बनाने:

Host IP_HostN 
     HostName IP_HOST_N 
     ProxyJump [email protected]_HOST_2:22,[email protected]_HOST_2:22 
     User UsernameN 

और में ansible.cfg में परिभाषित करने उत्तरदायी परियोजना निर्देशिका:

[ssh_connection] 
ssh_args= -F "ssh_config" 

समस्या यह है कि मुझे प्रत्येक क्षणिक मेजबान और लक्ष्य होस्ट ssh उपयोगकर्ता नाम और पासवर्ड और स्वचालित रूप से इस कार्य को स्वचालित करने का तरीका नहीं पता है। इसके अलावा, पाइथन प्रत्येक क्षणिक नोड पर स्थापित नहीं किया जा सकता है।

+3

[एसएसएच एजेंट का उपयोग करने के लिए एक अच्छे कारण की तरह लगता है अग्रेषण] (http://unixwiz.net/techtips/ssh-agent-forwarding.html) सार्वजनिक कुंजी लेख के साथ। –

+1

आप 'ssh_config' में पासवर्ड जोड़ सकते हैं ताकि आपको चाबियाँ जैसे कि –

उत्तर

1

मुझे एक उचित अच्छा कामकाज मिला। नीचे परिदृश्य के अनुसार:

enter image description here

हम क्षणिक मेजबान कि सीधे लक्ष्य मेजबान तक पहुँच सकते हैं जब तक एक ssh सुरंग पैदा करते हैं।

ssh -J [email protected]_host1:port_1 -p port_2 [email protected]_host2 -L LOCAL_PORT:TARGET_HOST_IP:TARGET_HOST_PORT 

तो हम सीधे स्थानीय बंधन का उपयोग कर लक्ष्य होस्ट में प्रवेश कर सकते हैं::

ssh [email protected] -p LOCAL_PORT 

इस तरह, हम ansible चला सकते हैं हम भी एल ध्वज के साथ बाध्यकारी एक स्थानीय बंदरगाह बनाने स्थानीय मेजबान पर उत्तरदायी चर कॉन्फ़िगर करने वाले स्थानीय होस्ट पर प्लेबुक:

ansible_host: localhost 
ansible_user: user_target_host 
ansible_port: LOCAL_PORT 
ansible_password: password_target_host 
संबंधित मुद्दे