Score:1

สตริงที่เข้ารหัสแบบอินไลน์ของ Ansible-vault เกิดข้อผิดพลาด

ธง cn

ฉันมีปัญหากับสตริงที่เข้ารหัสแบบอินไลน์ใน Ansible/Ansible-vault

ฉันกำลังเก็บรหัสผ่าน Ansible Vault ไว้ในไฟล์และมีไฟล์กำหนดค่าในเครื่องที่ประกาศว่า:

[ค่าเริ่มต้น]
vault_password_file = ./my_vault_pass

เนื่องจากฉันได้กำหนด vault_password_file ไว้แล้ว ฉันจึงสร้างตัวแปรที่เข้ารหัสด้วยคำสั่งต่อไปนี้:

ansible-vault encrypt_string --stdin-name 'ชื่อผู้ใช้'

เมื่อได้รับแจ้ง ฉันป้อนค่าที่ฉันต้องการเข้ารหัสและ CTRL-D สองครั้งโดยไม่ต้องกด Enter จากนั้นฉันใช้ผลลัพธ์ของคำสั่งนั้นและแทนที่คำนิยามตัวแปรด้วยคำสั่งนั้น

ไฟล์ task/main.yml ของฉันจบลงแบบนี้ [แก้ไขแล้ว]

---
- ชื่อ: โคลนแม่แบบ
  vmware_guest:
    ชื่อโฮสต์: 1.2.3.4
    ชื่อผู้ใช้: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          63353665383934386565306639633734366666303465306364323761323938383433643133313933
          3939356663626465303465646265653731626463386261610a306361343436613030336639303533
          64613337326332353933313931303537653833623863343435623730316266643636373831363937
          6231643937376665620a326465343239643237366465353965376532336365346631653466623038
          35636135303233623733306632333833663535646230393335303261633535353636
    รหัสผ่าน: 'my_password'
    validate_certs: เท็จ
    ชื่อ: testvm_2
    แม่แบบ: 'ชื่อแม่แบบ'
    ศูนย์ข้อมูล: DC1
    โฟลเดอร์: /Test
    สถานะ: poweredon
    wait_for_ip_address: ใช่

อย่างไรก็ตามด้วย ชื่อผู้ใช้: การเปลี่ยนแปลงเป็นเพียงการเปลี่ยนแปลง ตอนนี้ฉันได้รับข้อผิดพลาด:

เล่น [โฮสต์ในพื้นที่] *********************************************** ************************************************** *************

TASK [รวบรวมข้อเท็จจริง] ********************************************* ************************************************** ********
ตกลง: [localhost]

งาน [ทั่วไป : โคลนแม่แบบ] ****************************************** *************************************************
ร้ายแรง: [localhost]: ล้มเหลว! => {"msg": "ไม่สามารถส่งตัวเลือกไปยังโมดูลได้ พวกมันต้องเป็น JSON ที่ทำให้เป็นอนุกรมได้: วัตถุประเภท AnsibleVaultEncryptedUnicode ไม่ใช่ JSON ที่ทำให้เป็นอนุกรมได้"}

เล่น RECAP ************************************************ ************************************************** *****************
localhost: ตกลง=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยชีวิต=0 ละเว้น=0   
Score:0
ธง cn

ฉันดูเหมือนจะพบคำตอบสำหรับคำถามของฉันเอง:

ดูเหมือนจะเป็นไปไม่ได้ใน Ansible เพื่อเข้ารหัสตัวแปรโมดูล วิธีแก้ปัญหาคือให้เปลี่ยนทิศทางตัวแปรไปยังไฟล์ vars.yml โดยใช้ไวยากรณ์ Jinja ที่อธิบายไว้ใน เคล็ดลับและคำแนะนำ.

เช่น.

งาน.yml

    รหัสผ่าน: '{{ vault_password }}'

จากนั้นใน vars.yml (ฉันใช้ vars/main.yml ขณะที่ฉันใช้ ปฏิบัติที่ดีที่สุด สำหรับเค้าโครงไดเร็กทอรี

vault_password: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          30373438353463646433363433616631616434616237636432653530353330636236666332363661
          6565323338643139623737646431333332383432613962640a636537306139646539303762646166
          61363435643137363738656235613330663131613333656538323035666261336334383138663965
          6365356130346537300a363961623261653030363433353737386666306131336631343633396262
          6565
Zeitounator avatar
fr flag
`ดูเหมือนจะเป็นไปไม่ได้ใน Ansible เพื่อเข้ารหัสตัวแปรโมดูล`
MattB avatar
cn flag
@Zeitounator น่าสนใจ ฉันกำลังปิดปัญหาของตัวเองด้วยคำตอบหลังจากสนทนาในช่อง #ansible Freenode เนื่องจากวิธีแก้ปัญหาดูเหมือนจะได้ผล ฉันจึงไม่ได้ติดตามเรื่องนี้ต่อไป แต่ฉันจะจำไว้ ขอบคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา