Tôi đang gặp vấn đề về cách áp dụng tốt nhất các máy chủ / vai trò cho các hệ điều hành khác nhau trong Ansible.
Tôi hiện đang sử dụng Ansible để tạo Windows / Mac / Linux VM và mỗi VM có vai trò khác nhau cần được áp dụng cho chúng.
Tôi đã đọc các thực tiễn tốt nhất và đã cố gắng làm theo chúng, đặc biệt là sử dụng phương pháp nhóm, nhưng tôi vẫn không chắc chắn vì chúng chủ yếu đề cập đến máy chủ web và máy chủ dbservers.
trang web.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
môi trường / kiểm tra / nhóm
[win_build_nodes]
win_build_machine_1
win_build_machine_2
[mac_build_nodes]
mac_build_machine_1
môi trường / kiểm tra / máy chủ
win_build_machine_1 ansible_host=......
win_build_machine_2 ansible_host=......
mac_build_machine_1 ansible_host=......
môi trường / kiểm tra / meta
[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
Các environment/test/meta
tập tin tôi tin rằng cần phải được thay đổi với build_nodes:children
, nhưng tôi không biết phải làm gì. Trước đây tôi chỉ có các máy ảo có tất cả các vai trò được xây dựng với nó như sau:
Trang web cũ.yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
Nhưng sau đó nhận ra tôi không muốn mọi thứ được xây dựng trên cùng một máy. Lưu ý build-machine-test-1
và 2
cả hai đều có các bản dựng Windows / Mac / Linux riêng biệt khi chúng phát hiện những gì cần bao gồm dựa trên hệ điều hành.
Bất cứ ai cũng có thể đề xuất một cách tốt hơn để tách các VM dựa trên các hệ điều hành?
build-machine-test-1
vai trò có các bản dựng riêng dựa trên cơ sởos_family
. Câu hỏi của tôi là ở cấp độ cao hơn, nơi các máy xây dựng cần phải được tách ra trước khi các vai trò được áp dụng ...