Score:0

AWX/Ansible Tower ไม่เห็น playbooks ในไดเร็กทอรีย่อยของบทบาทงาน?

ธง pl

ฉันกำลังเพิ่ม Playbooks Ansible ของฉันลงใน AWX/Ansible Tower โดยใช้ Azure DevOps เป็น repo git ส่วนหลัง แต่ฉันพบหลังจากแปลงเป็นโครงสร้างตามบทบาทมากขึ้น ซึ่ง playbooks บางอันดูเหมือนจะมองไม่เห็นในการเลือก Playbook ตัวเลือกในเทมเพลตงาน AWX สิ่งนี้ดูเหมือนจะขึ้นอยู่กับตำแหน่งที่ตั้งภายในโครงสร้างไดเร็กทอรี

ปัญหาหลักคือฉันไม่สามารถระบุและดำเนินการ playbooks ใดๆ ได้โดยตรงจากไดเร็กทอรีย่อยของงาน - ความตั้งใจของฉันคือใช้ task/main.yml เป็นรายการของ import_tasks ที่อ้างอิง playbooks อื่นๆ ในไดเร็กทอรีนั้น

ฉันใช้ บทบาท init ansible-galaxy เพื่อสร้างเทมเพลตมาตรฐาน เพิ่มลงใน repo แต่ฉันค้นพบว่าหลังจากอัปโหลดและซิงค์ เฉพาะไฟล์เทมเพลตที่อยู่ใน test/test.yml เท่านั้นที่มองเห็นได้ในตอนแรก (รวมถึงไฟล์เทมเพลต main.yml ใดๆ ที่สร้างขึ้นโดยอัตโนมัติ) และใดๆ ไฟล์ที่อยู่ในไดเร็กทอรีย่อยของงานไม่มีให้เลือกเมื่อฉันเริ่มเพิ่มไฟล์ playbook ของตัวเอง ไฟล์เหล่านี้ก็ไม่สามารถใช้งานได้ใน AWX

หากฉันพยายามพิมพ์เส้นทางและชื่อไฟล์ด้วยตนเอง ฉันได้รับข้อผิดพลาดที่ระบุว่า "ไม่พบ Playbook สำหรับโครงการ" เมื่อฉันพยายามบันทึกโครงการ

ขั้นตอนที่ดำเนินการ:

  1. โครงการได้รับการซิงค์กับ repo นับครั้งไม่ถ้วน

  2. ฉันรู้ว่าการตรวจสอบไวยากรณ์บางอย่างดำเนินการโดย AWX ในไฟล์ YML แต่ฉันได้ทดสอบโดยใช้เทมเพลตพื้นฐานต่อไปนี้ และถ้าฉันสร้างไฟล์ทดสอบ YMl ในไดเรกทอรีราก หรือการทดสอบ/ ค่าเริ่มต้น/ หรือตัวจัดการ/ AWX สามารถ เห็นดังนั้นสิ่งนี้ควรออกกฎเนื้อหาไฟล์ หากฉันวางไว้ในงานหรือไดเรกทอรีย่อยอื่นที่มีชื่อแบบสุ่ม (เช่น roles, blahblahtest) AWX จะไม่ถูกเลือก

- ชื่อ: Alma Linux VM Post Deployment Tasks
  โฮสต์: ทั้งหมด
  กลายเป็น: ใช่
  1. ฉันได้ตรวจสอบสิทธิ์ของไฟล์ที่ระดับบรรทัดคำสั่งแล้ว และไม่มีความผิดปกติใดๆ

ดูเหมือนว่ามีข้อ จำกัด ในการเข้าถึงไดเร็กทอรีบางอย่าง

ต่อไปนี้คือบทสรุปทั้งหมดของโครงสร้างไดเร็กทอรีที่แสดงไฟล์ที่ AWX มองเห็นได้สำหรับการเลือก ไฟล์ทั้งหมดที่ทำเครื่องหมายเป็น VISIBLE หรือ INVISIBLE มีเนื้อหาเหมือนกัน และไฟล์อื่นๆ นอกเหนือจากเทมเพลต Jinja จะมีไวยากรณ์ YML/Ansible ที่ถูกต้อง แต่ AWX ก็ไม่เห็นเช่นกัน

root@dcbutlawx03:/awx/projects/_126__common_alma_linux# ต้นไม้
.
âââ ค่าเริ่มต้น
â  âââ main.yml (มองเห็นได้)
âââ ตัวจัดการ
â  âââ main.yml (มองเห็นได้)
âââ main.yml (มองเห็นได้)
âââ เมตา
â âââ main.yml
âââ README.md
âââ งาน
â  âââ dca-อัลมา-ad.yml
â âââ ติดตั้ง-graylog-agent.yml
â âââ install-zabbix-agent.yml
â âââ main.yml (มองไม่เห็น - เนื้อหาเดียวกัน!)
â âââ playbook.yml 
â âââ post-vmdeploy-tasks.yml
â âââ testtest.yml (มองไม่เห็น - เนื้อหาเดียวกัน!)
â âââ test.yml (มองไม่เห็น - เนื้อหาเดียวกัน!)
เทมเพลต âââ
â  âââ อัลมา-แอด
â âââ krb5.conf.j2
â âââ smb.conf.j2
â âââ sshd_config.j2
â âââ sssd.conf.j2
â âââ zts_sudoers.j2
âââ การทดสอบ
â  âââ สินค้าคงคลัง
â âââ playbook.yml (มองเห็นได้)
â âââ test.yml (มองเห็นได้)
âââ วาร์
    âââ dca-alma-โฆษณา
    â âââ dca-vars.yml
    âââ main.yml
    âââ tf-อัลมา-แอด
        âââ tf-vars.yml

เซิร์ฟเวอร์ AWX เป็นของที่ทำงานของฉัน แต่ดูเหมือนว่าไม่น่าเป็นไปได้ที่พวกเขาจะสุ่มกำหนดข้อจำกัดที่แปลกประหลาดเช่นนี้ หากสามารถทำได้ คนที่สร้างเซิร์ฟเวอร์และเขียน playbooks ที่มีอยู่ส่วนใหญ่ไม่ได้อยู่กับบริษัทอีกต่อไป ดังนั้นจึงมีช่องว่างด้านความรู้ในด้านนี้ในหมู่พนักงานปัจจุบัน

ในทางเทคนิคแล้ว ฉันสามารถใช้ main.yml หรือไฟล์ที่คล้ายกันจากไดเร็กทอรีรูทได้ แต่ฉันเชื่อว่าสิ่งนี้ขัดต่อแนวทางปฏิบัติ และฉันจะมองหาการสร้าง repo หลักตามผลิตภัณฑ์ที่มีหลายบทบาทที่ใช้ตัวแปรกลุ่มทั่วไปร่วมกันในไม่ช้า ดังนั้นสิ่งนี้จะ เป็นเพียงการแก้ไขในระยะสั้นเท่านั้น

ฉันได้ค้นหาไฟล์บันทึกบนเซิร์ฟเวอร์เพื่อพยายามอ้างอิงข้ามข้อผิดพลาดด้านบน แต่ไม่มีไดเร็กทอรีใดต่อไปนี้อยู่ ซึ่งดูเหมือนจะเป็นตำแหน่งที่มักพบ

/var/log/หอคอย/
/var/log/หัวหน้างาน/

ใครบ้างมีความคิดว่าปัญหาคืออะไร หรือฉันจะไปที่ไหนต่อไปในแง่ของขั้นตอนการแก้ปัญหา

ขอบคุณล่วงหน้า.

โพสต์คำตอบ

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