Score:0

ไฟล์งานพร้อมคำสั่งที่ใช้ร่วมกัน

ธง co

ฉันจะตั้งค่าได้อย่างไร คำสั่งที่ใช้ร่วมกันระหว่างงานทั้งหมด ในไฟล์ ในไฟล์แฟรกเมนต์ Ansible playbook ที่ มีงานเท่านั้น?

# ansible/inventory/roles/os_packages/tasks/main.yaml

- ชื่อ: "APT: อัปเดตแพ็คเกจที่มีอยู่จากที่เก็บ Debian"
  Gather_facts: เท็จ
  กลายเป็น: จริง
  กลายเป็น_user: ราก
  ถนัด:
    update_cache: จริง
- ชื่อ: "APT: ติดตั้งแพ็คเกจที่จำเป็น"
  Gather_facts: เท็จ
  กลายเป็น: จริง
  กลายเป็น_user: ราก
  ถนัด:
    ชื่อ:
      - ฟู
      - บาร์

คำสั่งซ้ำเหล่านั้น â รวบรวม_ข้อเท็จจริง, กลายเป็นฯลฯ â ควรระบุหนึ่งครั้งในไฟล์นั้น แต่ที่ไหนได้ (ปัจจุบัน?) ไม่มีไฟล์แสดงบทบาทหรือการเล่น?

# ansible/inventory/roles/os_packages/tasks/main.yaml

# สิ่งนี้ใช้ไม่ได้เพราะ Ansible คาดหวังเฉพาะงานเท่านั้น
Gather_facts: เท็จ
กลายเป็น: จริง
กลายเป็น_user: ราก

- ชื่อ: "APT: อัปเดตแพ็คเกจที่มีอยู่จากที่เก็บ Debian"
  ถนัด:
    update_cache: จริง
- ชื่อ: "APT: ติดตั้งแพ็คเกจที่จำเป็น"
  ถนัด:
    ชื่อ:
      - ฟู
      - บาร์

ไฟล์ต้องประกอบด้วยลำดับของงานเท่านั้น ระดับ "บทบาท" หรือระดับ "เล่น" ดูเหมือนจะไม่มีตำแหน่งที่เหมาะสมใน โครงสร้างไดเร็กทอรีที่แนะนำนี้.

ถ้า playbook ทั้งหมดอยู่ในไฟล์เดียว การเล่นแต่ละครั้งจะมีชื่อแยกต่างหาก และฉันจะกำหนดคำสั่งในการเล่น แต่ไฟล์งานเหล่านี้กำลังถูกรวบรวมและคอมไพล์ และไม่มีที่สำหรับฉันที่จะเขียนคำสั่งเหล่านั้น

ตรงไหนควรกำกับว่า ใช้กับงานทั้งหมดในบทบาท ได้รับการกำหนด?

Score:0
ธง br

โครงสร้างไดเรกทอรีทั่วไปของฉัน:

âââ ปรับใช้-something.yml
âââ README.md
âââ สินค้าคงเหลือ
ผลิตภัณฑ์
â â â âââ group_vars
ทั้งหมด
â  â â â   âââ vars.yml
â  â â â   âââ vault.yml
â â âââ host_vars
â â ââ â ââ â âââ host1.yml
â â ââ â ââ â âââ host2.yml
â â ââ â ââ â âââ localhost
â â ââ â ââ â âââ vars.yml
â â ââ â ââ â âââ ห้องนิรภัย
â â â â âââ สินค้าคงคลัง.yml
...
âââ บทบาท
    âââ บทบาท1
    â âââ ...
    ...

ในกรณีนี้ ฉันใส่คำสั่งดังกล่าวในการเล่นระดับบนสุด ปรับใช้-something.yml:

- โฮสต์: ทั้งหมด
  remote_user: ใช้งานได้
  กลายเป็น: ใช่
  makes_method: sudo
  any_errors_fatal: จริง
  อนุกรม: จริง
  คำสั่งซื้อ: reverse_inventory
  บทบาท:
  - บทบาทที่ 1
  - หน้าที่ 2
co flag
âฉันใส่คำสั่งดังกล่าวในระดับบนสุดâ â ถ้าฉันเข้าใจตัวอย่างของคุณ ไฟล์นั้นแสดงถึง *playbook* ทั้งเล่ม ฉันกำลังพยายามใช้คำสั่งเหล่านี้กับการเล่นหรือบทบาทแต่ละอย่าง เมื่อการเล่นหรือบทบาทแสดงโดยโครงสร้างไดเร็กทอรี
Score:0
ธง th

รวบรวม_ข้อเท็จจริง ไม่มีความหมาย (หรือเป็นไปได้) ที่จะกำหนดสำหรับสิ่งอื่นใดนอกจากการเล่น เนื่องจากมีผลเฉพาะการตัดสินใจในระดับการเล่นว่าจะรวบรวมข้อเท็จจริงหรือไม่

กลายเป็น และ กลายเป็น_ผู้ใช้ เป็นคำหลักระดับบล็อกหรืองานที่ถูกต้อง ดังนั้นคุณจึงสามารถใช้ บล็อก เพื่อนำไปใช้กับรายการงาน (ภายในบทบาทหรืออย่างอื่น):

- กลายเป็น: จริง
  กลายเป็น_user: ราก
  บล็อก:
    - ชื่อ: "APT: อัปเดตแพ็คเกจที่มีอยู่จากที่เก็บ Debian"
      ถนัด:
        update_cache: จริง
    - ชื่อ: "APT: ติดตั้งแพ็คเกจที่จำเป็น"
      ถนัด:
        ชื่อ:
          - ฟู
          - บาร์

สามารถใช้คำหลักหลายคำเมื่อเรียกใช้บทบาท:

- โฮสต์: ทั้งหมด
  บทบาท:
    - ชื่อ: ฟู
      กลายเป็น: จริง
  งาน:
    - import_role:
        ชื่อ:บาร์
      กลายเป็น: จริง

    - include_role:
        ชื่อ: บาส
        นำมาใช้:
          กลายเป็น: จริง
Score:-1
ธง br

ถาม: "คำสั่งที่ใช้กับงานทั้งหมดในบทบาทควรถูกกำหนดไว้ที่ใด"

A: คำตอบสั้น ๆ คือ: นอกบทบาท

ตำแหน่งที่คุณควรใส่คำหลักนั้นขึ้นอยู่กับว่าคุณใช้บทบาทอย่างไร มีตัวเลือกมากขึ้น

  • บทบาท:
  • นำเข้า_บทบาท:
  • include_role:

หมดขอบเขตที่จะอธิบายทั้งหมด รายละเอียด ที่นี่. โดยทั่วไป ให้ใส่คำหลักดังกล่าวในระดับ (การเยื้อง) ของบทบาท ในกรณีของ include_role นอกจากนี้คุณยังสามารถ นำมาใช้ คำหลัก โปรดทราบว่าคำหลักบางคำไม่สามารถใช้ได้ทุกที่ ดู คำหลัก Playbook ที่นำไปใช้กับบทบาท ตัวอย่างเช่น คำหลัก รวบรวม_ข้อเท็จจริง สามารถใช้ได้กับ playbook เท่านั้น ตัวเลือกหนึ่งในวิธีแก้ปัญหาของคุณอาจเป็นโครงสร้างของการเล่นด้านล่าง

- โฮสต์: ทั้งหมด
  Gather_facts: เท็จ
  บทบาท:
    - บทบาท: os_packages
      กลายเป็น: จริง
      กลายเป็น_user: ราก

ถาม: "จะทำอย่างไร (ใช้คำหลักดังกล่าวในระดับของบทบาท) เมื่อไม่มีไฟล์กำหนดค่า (เฉพาะไดเรกทอรีบทบาท) ที่แสดงถึงบทบาท"

ตอบ: หากมีเพียงไดเร็กทอรีบทบาทที่แสดงบทบาท คุณสามารถใช้คีย์เวิร์ดกับบล็อกและงานภายในบทบาทเท่านั้น คุณไม่สามารถใช้คีย์เวิร์ดกับบทบาทภายในบทบาทนี้ได้ ไม่มีสิ่งที่เรียกว่าไฟล์กำหนดค่าสำหรับบทบาท

ในคำตอบก่อนหน้านี้ ตามระดับ ฉันหมายถึงระดับการเยื้อง ตัวอย่างเช่น ในโค้ดด้านบน รวบรวม_ข้อเท็จจริง นำไปใช้กับการเล่นในขณะที่ทั้งสอง กลายเป็น และ กลายเป็น_ผู้ใช้ นำไปใช้กับบทบาท

co flag
âใช้คำหลักดังกล่าวในระดับของบทบาทâ â ใช่ นั่นคือสิ่งที่คำถามถาม: จะทำอย่างไรเมื่อไม่มีไฟล์กำหนดค่า (เฉพาะไดเรกทอรีบทบาท) ที่เป็นตัวแทนของบทบาท
br flag
คุณอาจกำลังมองหาบางสิ่งที่ไม่มีอยู่จริง

โพสต์คำตอบ

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