เมื่อข้อไม่สามารถประเมินการมีแท็ก เพื่อเป็นการหลีกเลี่ยงปัญหาฉันใช้ตัวแปรและแท็กเข้าด้วยกันเพื่อทำงานที่เฉพาะเจาะจงกับแท็ก / ตัวแปรนั้น
เช่นลองนึกภาพ playbook และคลังโฆษณา
สินค้าคงคลัง #
[dev]
192.168.1.1
# site.yml
- โฮสต์: dev
บทบาท:
- {บทบาท: ทั่วไป}
และโดยทั่วไป / task / main.yml
# role / common / task / main.yaml
- ชื่อ: ติดตั้งลิงก์
apt: name = links state = present
- รวมถึง: uninstall.yml
เมื่อ: uninstall_links ถูกกำหนดไว้
Tags:
- ถอนการติดตั้ง
# role / common / task / uninstall.yml
- ชื่อ: ถอนการติดตั้งลิงก์
apt: name = links state = ไม่มีอยู่
ด้วยวิธีการนี้คุณจะใช้แท็กเพื่อเลือกเฉพาะงานใน uninstall.yml แต่คุณต้องตั้งค่าตัวแปร 'uninstall_links' เป็นบางอย่างเพื่อเปิดใช้งาน ดังนั้นหากคุณเรียกใช้ playbook โดยไม่มีพารามิเตอร์ใด ๆ มันจะเป็นค่าเริ่มต้นให้เรียกใช้งานการติดตั้ง หากต้องการถอนการติดตั้งคุณสามารถตั้งค่าแท็ก 'ถอนการติดตั้ง' เป็น playbook ของคุณ (หรือ cmdline) และต้องตั้งค่าตัวแปร หากคุณไม่ได้ตั้งค่าแท็กแท็กนั้นจะทำงานทุกอย่าง (ติดตั้งและถอนการติดตั้ง) ตามลำดับซึ่งเป็นสิ่งที่ดีในการทดสอบกระบวนการทั้งหมด
วิธีเรียกใช้ทุกอย่าง (จะติดตั้งและถอนการติดตั้ง):
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true"
วิธีรันเฉพาะแท็ก 'ถอนการติดตั้ง' ในกลุ่ม dev
$ ansible-playbook -i inventory site.yml -l dev -s -k -e "uninstall_links=true" -t uninstall
ดังนั้นตัวแปรและแท็กอาจอยู่ใน site.yml / ไฟล์คลังข้อมูลซึ่งช่วยให้คุณสามารถกำหนด SCM และบันทึกความตั้งใจของคุณได้