อะไรคือรูปแบบของ Ansible ที่เทียบเท่ากับ `--vault-password-file`?


12

ตามความช่วยเหลือของ ansible-playbook เราสามารถใช้--user=REMOTE_USERเพื่อกำหนดผู้ใช้ ssh แต่สามารถกำหนดได้ansible_ssh_user: REMOTE_USERใน host- หรือ group_vars

คำถาม

สิ่งที่จำเป็นต้องมีตัวแปรที่จะกำหนดไว้ในกลุ่มการอย่างใดอย่างหนึ่งหรือ host_vars ไดเรกทอรีเพื่อป้องกันการที่--vault-password-fileจะต้องมีการกำหนดไว้ในขณะที่ทำงานansible-playbook?

ความพยายามในการ

  • เมื่อansible_vault_password_file: ~/.vault_pass.txtมีการกำหนดไว้ในการกำหนดค่าการถอดรหัสล้มเหลว:

    ERROR! Decryption failed on /path/to/vault
    
  • ไม่พบตัวแปร vault ที่เชื่อมโยงในเอกสารนี้


Btw ตอนนี้เป็นเอกสาร (จากรุ่น 1.7) ที่นี่: docs.ansible.com/ansible/…
Tensibai

คำตอบ:


13

นี่คือคำจำกัดความ:

DEFAULT_VAULT_PASSWORD_FILE = get_config(p, DEFAULTS, 'vault_password_file', \
'ANSIBLE_VAULT_PASSWORD_FILE', None, value_type='path')

หมายความว่าคุณใส่ ansible.cfg หรือ playbook:

vault_password_file: ~/.vault_pass.txt

หรือในเปลือกของคุณกำหนดตัวแปรนี้:

export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

ฉันได้ทิ้งข้อความของ url ไว้ที่นั่นโดยเจตนาเพื่อแสดงให้ผู้คนเห็นว่าการดูรหัสสามารถช่วยได้อย่างไรเมื่อเอกสารขาดหายไปและสามารถพบรหัสได้ง่าย แต่ฉันเดาว่าไฮเปอร์ลิงก์ควรจะเพียงพอ
Jiri Klouda

หากมีสิ่งอื่นใดล้มเหลวให้อ่านเอกสาร ... และหากไม่มีเอกสารอ่านแหล่งข้อมูล ... หากคุณมีสิทธิ์เข้าถึง ... และถ้าเป็นเช่นนั้นตรวจสอบให้แน่ใจว่าคุณกำลังมองหาเวอร์ชั่นที่ถูกต้อง .. สิ่งเดียวที่เหลืออยู่ก็คือสามารถเข้าใจได้ทั้งหมด PS: ลิงก์อาจหยุดทำงานในบางวัน ...
Pierre.Vriens

@JiriKlouda group_vars/all/varsมันดูเหมือนจะไม่ทำงานแม้ว่ามันจะได้รับการกำหนดไว้ใน export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtต้องถูกเรียกใช้
030

นี่เป็นตัวแปรกำหนดค่า ต้องอยู่ใน ansible.cfg หรือเทียบเท่าหรือใน playbook
Jiri Klouda

นอกจากนี้ฉันได้ตรวจสอบรุ่น 2.2 ที่คุณใช้เป็นพิเศษและมี: github.com/ansible/ansible/blob/stable-2.2/lib/ansible/
......

2

คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมที่ANSIBLE_VAULT_PASSWORD_FILEจัดเก็บพา ธ ไฟล์รหัสผ่าน vault วิธีนี้คุณจะไม่ใช้--vault-password-fileสวิตช์เสมอเมื่อเรียกใช้ playbook

นี้จะอธิบายในเอกสาร Vault เบิ้ลของที่มีอยู่ที่นี่

ให้เพิ่มexport ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtที่คุณ~/.bash_profileแหล่งที่มาจากมันและคุณพร้อมที่จะไป

หากคุณต้องการรหัสผ่านห้องนิรภัยที่แตกต่างกันสำหรับกลุ่มโฮสต์ที่ต่างกันคุณควรทำสิ่งต่อไปนี้:

ภายในไดเรกทอรีย่อยนี้สร้างสองไฟล์ชื่อ vars และ vault ภายในไฟล์ vars ให้กำหนดตัวแปรทั้งหมดที่จำเป็นรวมถึงตัวแปรที่มีความอ่อนไหว จากนั้นคัดลอกตัวแปรที่ละเอียดอ่อนทั้งหมดไปยังไฟล์ vault และนำหน้าตัวแปรเหล่านี้ด้วย vault_ คุณควรปรับตัวแปรในไฟล์ vars ให้ชี้ไปที่ตัวแปร vault_ ที่ตรงกันและตรวจสอบให้แน่ใจว่าไฟล์ vault นั้นถูกเข้ารหัส vault

นี่คือตัวอย่างสำหรับแนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการข้อมูลที่ละเอียดอ่อนในแต่ละกลุ่ม ข้อมูลเพิ่มเติมมีอยู่ในเอกสารของ Ansible ที่นี่ (ข้อความข้างต้นถูกคัดลอกมาจากที่นั่น)


1
วิธีนี้จะไม่อนุญาตให้ใช้รหัสผ่านที่แตกต่างกันต่อโฮสต์
Tensibai

คุณหมายถึงรหัสผ่านการเชื่อมต่อ? เพราะถ้าคุณทำมันมีอะไรเหมือนกันกับ Ansible Vault
13 ธันวาคม 2559

ฉันอ้างถึงรหัสผ่านห้องนิรภัยยินดีที่จะมีรหัสผ่านห้องนิรภัยที่แตกต่างกันสำหรับกลุ่มต่างๆที่เหมาะสม (และเป็นรากของคำถามเท่าที่ฉันเข้าใจ)
Tensibai

ฉันไม่เข้าใจอย่างนั้น ฉันได้แก้ไขคำตอบเพื่อรวมสถานการณ์นั้นแล้ว
13dimitar

ดูเหมือนจะดีกว่า Btw downvote ไม่ใช่ของฉัน
Tensibai
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.