วิธีผ่าน language แฟ้มบันทึกอยู่ใน ansible

0

คำถาม

ฉันยังใหม่อยู่ใน Ansible แค่เดินหลงทางได้ยังไงฉันเล่นเป็น language บันทึกกับ ansible. ฉันต้องเป็น language แฟ้มติดตามข้อมูลอยู่ใน:

{
    "map": {
        "entry": [
            {
                "string": [
                    "6a032ae5-3eed-4d20-a9ef-ccbd88118c47"
                ]
            },
            {
                "string": [
                    "27617813-e268-4c94-b539-3550a3a8501a"
                ]
            },
            {
                "string": [
                    "b39b10fb-0538-42d7-96fc-553eee9c7ded"
                ]
            }
        ]
    }
}

และฉันก็ต้องทำตามรหัสใน ansible ที่จะวิ่งผ่าน language แฟ้ม:

- name: Initialise variables
  set_fact:
    NEW_CODE_TEMPLATES_IDS: "{{ lookup('file', 'code_template_map/codeTemplate.json') | json_query('map.entry[*].item') }}"
    
    
- name: code template id
  debug:
    var: NEW_CODE_TEMPLATES_IDS

ฉันคาดหวังที่แสดงผลจะเป็นเหมือนต่อไปนี้:

6a032ae5-3eed-4d20-a9ef-ccbd88118c47
27617813-e268-4c94-b539-3550a3a8501a
b39b10fb-0538-42d7-96fc-553eee9c7ded

แต่สำหรับเหตุผลบางอย่างนี่ไม่ได้ดูเหมือนทำงานสำหรับฉัน ไม่มีใครรู้ว่าทำไม?

ansible
2021-11-24 05:09:25
1

คำตอบที่ดีที่สุด

1

คุณไม่ใช่การแปลงข้อความกลับมาโดยค้นหาจาก LANGUAGE เข้าข้อมูลของโครงสร้าง(json_query() ไม่สามารถถูกใช้กับ LANGUAGE ผลตอบแทนคาดหวังให้มันต่างๆที่วิเคราะห์ข้อมูลของสิ่งก่อนสร้าง),และ json_query('map.entry[*].item') ไม่ตรงกับข้อมูลของคุณได้บอกกับผมแล้ว

ฉันจะหลีกเลี่ยง json_query() และใช้มาตรฐาน Jinja คุณสมบัติต่างๆสำหรับข้อมูลการบงกา:

"{{ (lookup('file', 'code_template_map/codeTemplate.json') | from_json).map.entry | map(attribute='string') | flatten }}"

ถ้าคุณยืนยันการใช้ json_query()มันคงเป็น:

"{{ (lookup('file', 'code_template_map/codeTemplate.json') | from_json) | json_query('map.entry[*].string[]') }}"
2021-11-24 06:21:42

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................