ฉันมีปัญหาในการหาวิธีใช้โฮสต์ / บทบาทกับระบบปฏิบัติการต่าง ๆ ใน Ansible ให้ดีที่สุด
ปัจจุบันฉันใช้ Ansible เพื่อสร้าง Windows / Mac / Linux VM และ VM แต่ละเครื่องมีบทบาทที่แตกต่างกันซึ่งจำเป็นต้องนำไปใช้กับพวกเขา
ฉันได้อ่านแนวปฏิบัติที่ดีที่สุดและพยายามติดตามพวกเขาโดยเฉพาะอย่างยิ่งเพื่อใช้วิธีการจัดกลุ่ม แต่ฉันก็ยังไม่แน่ใจเพราะพวกเขาส่วนใหญ่พูดถึงเว็บเซิร์ฟเวอร์และผู้ให้บริการ
site.yml
- name: Apply common configuration to all nodes
hosts: all
roles:
- common
- name: Configure and deploy test node 1
hosts: build-test-node
roles:
- build-machine-test-1
- name: Configure and deploy test node 2
hosts: build-test-node-2
roles:
- build-machine-test-2
สภาพแวดล้อม / ทดสอบ / กลุ่ม
[win_build_nodes]
win_build_machine_1
win_build_machine_2
[mac_build_nodes]
mac_build_machine_1
สภาพแวดล้อม / ทดสอบ / hosts
win_build_machine_1 ansible_host=......
win_build_machine_2 ansible_host=......
mac_build_machine_1 ansible_host=......
สภาพแวดล้อม / ทดสอบ / เมตา
[mac_build_nodes]
[win_build_nodes]
[win:children]
win_build_nodes
[mac:children]
mac_build_nodes
[linux:children]
[build_nodes:children]
win_build_nodes
mac_build_nodes
environment/test/meta
ไฟล์ผมเชื่อว่าต้องมีการเปลี่ยนแปลงด้วยbuild_nodes:children
แต่ผมไม่แน่ใจว่าจะ ก่อนหน้านี้ฉันเพิ่งได้รับ VMs มีบทบาททั้งหมดที่สร้างขึ้นโดยมีดังต่อไปนี้:
เก่า site.yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
แต่รู้แล้วว่าฉันไม่ต้องการให้ทุกสิ่งถูกสร้างขึ้นในเครื่องเดียวกัน หมายเหตุbuild-machine-test-1
และ2
ทั้งคู่มีการสร้าง Windows / Mac / Linux แยกต่างหากเนื่องจากตรวจพบสิ่งที่จะรวมอยู่บนพื้นฐานของระบบปฏิบัติการ
ใครสามารถแนะนำวิธีที่ดีกว่าในการแยก VMs ตามระบบปฏิบัติการ?
build-machine-test-1
บทบาทมีงานสร้างที่แยกจากos_family
กัน คำถามของฉันสำหรับระดับที่สูงขึ้นซึ่งตัวเครื่องสร้างต้องถูกแยกออกก่อนที่จะมีการใช้บทบาท ...