Ansible의 다른 운영 체제에 호스트 / 역할을 가장 잘 적용하는 방법을 해결하는 데 문제가 있습니다.
현재 Ansible을 사용하여 Windows / Mac / Linux VM을 생성하고 있으며 각 VM마다 다른 역할이 적용되어야합니다.
모범 사례를 읽었으며 특히 그룹화 방법을 사용하기 위해 모범 사례를 따르려고했지만 여전히 웹 서버와 dbserver에 대해 언급하고 있기 때문에 확실하지 않습니다.
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
환경 / 테스트 / 호스트
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
있지만, 나는 확실히 무슨 아니에요. 이전에는 VM에 다음과 같이 모든 역할이 내장되어있었습니다.
이전 사이트 .yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
그러나 모든 것을 동일한 머신에 구축하고 싶지 않다는 것을 깨달았습니다. 주, build-machine-test-1
그리고 2
둘은 운영 체제에 따라 포함하는 것을 감지로 별도의 윈도우 / 맥 / 리눅스 빌드합니다.
누구나 운영 체제를 기반으로 VM을 분리하는 더 좋은 방법을 제안 할 수 있습니까?
build-machine-test-1
역할 마다 별도의 빌드를 기반 으로하므로 이미 하위 수준 에서이 작업을 수행 했습니다os_family
. 내 질문은 역할을 적용하기 전에 빌드 머신 자체를 분리해야하는 상위 레벨에 대한 것입니다.