Ansible'daki farklı işletim sistemlerine en iyi ana bilgisayarların / rollerin nasıl uygulanacağı konusunda sorun yaşıyorum.
Şu anda Ansible'ı Windows / Mac / Linux VM'leri oluşturmak için kullanıyorum ve VM'lerin her birinin kendilerine uygulanması gereken farklı rolleri var.
En iyi uygulamaları okudum ve özellikle gruplama yöntemini kullanmak için bunları takip etmeye çalıştım, ancak çoğunlukla web sunucuları ve dbservers'den bahsettiklerinden emin değilim.
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
ortamları / test / grupları
[win_build_nodes]
win_build_machine_1
win_build_machine_2
[mac_build_nodes]
mac_build_machine_1
ortamları / test / ana
win_build_machine_1 ansible_host=......
win_build_machine_2 ansible_host=......
mac_build_machine_1 ansible_host=......
ortamları / test / 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
environment/test/meta
Ben ihtiyaçlarını inanıyoruz dosya ile değiştirilmesi build_nodes:children
, ama emin ne değilim. Daha önce sadece VM'lerin aşağıdaki rolleri oluşturmuştu:
Eski site.yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
Ama sonra her şeyin aynı makinede inşa edilmesini istemediğimi fark ettim. Not build-machine-test-1
ve 2
her ikisinin de işletim sistemine bağlı olarak neleri ekleyeceklerini tespit ettikleri için ayrı Windows / Mac / Linux sürümleri vardır.
VM'leri işletim sistemlerine göre ayırmanın daha iyi bir yolu önerilebilir mi?
build-machine-test-1
Rollerin her birinin kendi ayrı yapılarına dayalı olduğu için bunu daha düşük bir seviyede yaptımos_family
. Sorum, roller uygulanmadan önce yapı makinelerinin kendilerinin ayrılması gereken daha yüksek bir seviye için ...