मैं दूरस्थ सर्वर से SSH कुंजियों को हटाने के लिए एक ansible स्क्रिप्ट लिखा है कई SSH कुंजियां जोड़ें:ansible का उपयोग कर
---
- name: "Add keys to the authorized_keys of the user ubuntu"
user: ubuntu
hosts: www
tasks:
- name: "Remove key #1"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_file:
- id_rsa_number_one.pub
- name: "Remove key #2"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_file:
- id_rsa_number_two.pub
...
रूप में एक अलग कार्य निरर्थक है, तो मैं with_fileglob
उपयोग करने की कोशिश की है कि प्रत्येक फ़ाइल जोड़ना:
- name: "Remove all keys at once"
authorized_key: user=ubuntu key="{{ item }}" state=absent
with_fileglob:
- /Users/adamatan/ansible/id_rsa*.pub
लेकिन यह इस तरह लाइनों के साथ विफल रहता है:
विफल रहा है: [www.example.com] => (आइटम =/उपयोगकर्ता/adamatan/ansible/id_rsa_one.pub) => {"विफल": सत्य, "आइटम": "/Users/adamatan/ansible/id_rsa_one.pub"} msg: अमान्य कुंजी निर्दिष्ट:/उपयोगकर्ताओं/adamatan/ansible/id_rsa_one.pub
एक ही कुंजी फ़ाइल सफलतापूर्वक एक अद्वितीय कार्य का उपयोग कर निकाल दिया जाता है, लेकिन विफल रहता है जब यह एक fileglob
का एक हिस्सा है।
मैं उत्तरदायी का उपयोग करके एसएसएच कुंजी को जोड़ या हटा सकता हूं?
तो यह संशोधन प्रविष्टियों को थोक अद्यतन/हटाने के लिए बहुत अच्छा काम करता है। यहां मेरा मुद्दा है - मेरे पास ऐसे सर्वर से सर्वर पर कुंजी है जो अब यहां नहीं हैं। सक्रिय कुंजी की मेरी मास्टर सूची के साथ मैं अधिकृत_कीज फ़ाइल को कैसे शुद्ध और ओवरराइट कर सकता हूं? जब मैं इस स्क्रिप्ट को चलाता हूं तो यह मेरी सक्रिय कुंजी को हटा देता है (अगर अनुपस्थित है) या जोड़ता है (यदि मौजूद है) लेकिन यह उन कुंजी को कभी नहीं हटाता है जिनके लिए मेरी * .pub फ़ाइलों में नहीं है। – Valien
@ एकाधिक विशेष कुंजी के लिए वैलियन, इस [पुल अनुरोध] में उदाहरण देखें (https://github.com/ansible/ansible-modules-core/pull/4167/files)। – sudoman
आप कुछ होस्ट समूहों में सभी उपयोगकर्ताओं के लिए '~/.ssh /' भी बना सकते हैं और स्थिर 'अधिकृत_की' फ़ाइलों को कॉपी कर सकते हैं। उस स्थिति में आप फ़ाइल सामग्री पर पूर्ण नियंत्रण होगा। – sudoman