(เกี่ยวข้องกับCallbacks หรือ hooks และชุดงานที่สามารถใช้ซ้ำได้ในบทบาท Ansible ):
มีวิธีใดที่ดีกว่าในการผนวกรายการหรือเพิ่มคีย์ในพจนานุกรมใน Ansible than (ab) โดยใช้เทมเพลต jina2
ฉันรู้ว่าคุณสามารถทำสิ่งที่ชอบ:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
แต่จริง ๆ แล้วไม่มีเมตาดาต้าหรือตัวช่วยในการทำเช่นนี้?
รู้สึกเปราะบางดูเหมือนว่าจะไม่มีเอกสารและอาศัยสมมติฐานมากมายเกี่ยวกับการทำงานของตัวแปรใน Ansible
กรณีการใช้ของฉันมีหลายบทบาท (ส่วนขยายเซิร์ฟเวอร์ฐานข้อมูล) ที่แต่ละคนต้องจัดหาการกำหนดค่าบางอย่างให้กับบทบาทพื้นฐาน (เซิร์ฟเวอร์ฐานข้อมูล) มันไม่ง่ายเหมือนการต่อบรรทัดเข้ากับไฟล์กำหนดค่าเซิร์ฟเวอร์ db การเปลี่ยนแปลงแต่ละครั้งจะมีผลกับบรรทัดเดียวกันเช่นส่วนขยายbdr
และpg_stat_statements
ทั้งสองจะต้องปรากฏในบรรทัดเป้าหมาย:
shared_preload_libaries = 'bdr, pg_stat_statements'
วิธี Ansible ในการทำเช่นนี้เพียงแค่ประมวลผลไฟล์กำหนดค่าหลาย ๆ ครั้ง (หนึ่งครั้งต่อส่วนขยาย) ด้วย regexp ที่แยกค่าปัจจุบันแยกวิเคราะห์แล้วเขียนใหม่หรือไม่ ถ้าเป็นเช่นนั้นคุณจะทำให้ idempotent นั้นข้ามหลาย ๆ การวิ่งได้อย่างไร?
จะเกิดอะไรขึ้นถ้าการกำหนดค่านั้นยากกว่านี้ในการแยกวิเคราะห์และมันไม่ง่ายเท่ากับการผนวกค่าที่คั่นด้วยเครื่องหมายจุลภาคอื่น คิดว่าไฟล์กำหนดค่า XML