खोज…


टिप्पणियों

संवेदनशील डेटा एन्क्रिप्शन को संभालने के लिए Ansible वॉल्ट ( HashiCorp वॉल्ट के साथ गलत नहीं है!) प्रदान करता है। वॉल्ट मुख्य रूप से किसी भी संरचित डेटा जैसे चर, कार्य, हैंडलर को एन्क्रिप्ट करने का लक्ष्य रखता है।

संवेदनशील संरचित डेटा को एन्क्रिप्ट करना

सबसे पहले, एक प्रमुख फ़ाइल बनाएं, जैसे, vault_pass_file , जिसमें आदर्श रूप से यादृच्छिक वर्णों का एक लंबा अनुक्रम होता है। एक यादृच्छिक पासवर्ड फ़ाइल बनाने के लिए लिनक्स सिस्टम में आप pwgen का उपयोग कर सकते हैं:

pwgen 256 1 > vault_pass_file

फिर, संवेदनशील डेटा एन्क्रिप्ट करने के लिए इस फ़ाइल का उपयोग करें, जैसे, groups_vars/group.yml :

ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault encrypt group_vars/group.yml

अब से, एक प्लेबुक चलाने के लिए आपको vault_pass_file आवश्यकता है:

ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-playbook -i inventories/nodes my-playbook.yml 

ध्यान दें, आप ANSIBLE_VAULT_PASSWORD_FILE पर्यावरण चर सेट करने के बजाय ध्वज --vault-password-file vault_pass_file उपयोग कर सकते हैं।

डिस्क पर मौजूद रहस्य को संपादित या डिक्रिप्ट करने के लिए आप क्रमशः ansible-vault decrypt ansible-vault edit और ansible-vault decrypt उपयोग कर सकते हैं।

गैर-संरचित वॉल्ट-एन्क्रिप्टेड डेटा को डिक्रिप्ट करने के लिए लुकअप पाइप का उपयोग करना

वॉल्ट के साथ आप गैर-संरचित डेटा को भी एन्क्रिप्ट कर सकते हैं, जैसे कि निजी कुंजी फाइलें और फिर भी lookup मॉड्यूल के साथ अपने प्ले में उन्हें डिक्रिप्ट कर सकते हैं।

---

- name: Copy private key to destination
  copy:
    dest=/home/user/.ssh/id_rsa
    mode=0600
    content=lookup('pipe', 'ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault view keys/private_key.enc')

तिजोरी-एन्क्रिप्टेड टेम्पलेट्स को डिक्रिप्ट करने के लिए local_action का उपयोग करना

आप एक नाटक चला सकते हैं जो local_action मॉड्यूल का उपयोग करके वॉल्ट-एन्क्रिप्टेड टेम्पलेट्स पर निर्भर करता है।

---

- name: Decrypt template
  local_action: "shell {{ view_encrypted_file_cmd }} {{ role_path }}/templates/template.enc > {{ role_path }}/templates/template"
  changed_when: False

- name: Deploy template
  template:
    src=templates/template
    dest=/home/user/file

- name: Remove decrypted template
  local_action: "file path={{ role_path }}/templates/template state=absent"
  changed_when: False

कृपया नोट changed_when: False । यह महत्वपूर्ण है कि जब आप अपनी सुयोग्य भूमिकाओं के साथ बेवकूफी परीक्षण चलाते हैं - अन्यथा हर बार जब आप प्लेबुक चलाते हैं तो एक परिवर्तन का संकेत दिया जाता है। group_vars/all.yml आप reuse के लिए एक वैश्विक डिक्रिप्ट कमांड सेट कर सकते हैं, उदाहरण के लिए, view_encrypted_file_cmd रूप में।

group_vars / all.yml

---

view_encrypted_file_cmd: "ansible-vault --vault-password-file {{ lookup('env', 'ANSIBLE_VAULT_PASSWORD_FILE') }} view"

अब, जब कोई नाटक चल रहा हो तो आपको अपनी वॉल्ट पासवर्ड फ़ाइल (आदर्श रूप से पूर्ण पथ के साथ) को इंगित करने के लिए ANSIBLE_VAULT_PASSWORD_FILE पर्यावरण चर सेट करने की आवश्यकता है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow