SORU
12 AĞUSTOS 2013, PAZARTESİ


Tek bir makine için güvenli bir şekilde sınırlama Ansible playbooks?

Bir grup bilgisayar ile bazı basit kullanıcı yönetimi görevleri için Ansible kullanıyorum. Şu anda, benim playbooks dosya sadece tüm makinalar listelenen tek bir grup hosts: all ve benim ana set var:

# file: hosts
[office]
imac-1.local
imac-2.local
imac-3.local

Kendimi, sık sık tek bir makine hedef olan buldum. ansible-playbook komutu böyle oynar sınırı:

ansible-playbook --limit imac-2.local user.yml

Ama bu biraz kırılgan, özellikle potansiyel olarak yıkıcı bir senaryo görünüyor. limit bayrağı bırakarak, senaryo her yerde çalıştırılması anlamına geliyor. Bu araçlar, sadece zaman zaman kullanılan bu yana, yanlışlıkla bundan bir ay nuke değiliz yani çalma sağlam adımlar atmaya değer görünüyor.

Tek bir makine için senaryo çalışır sınırlamak için en iyi yöntem var mı? İdeal playbooks eğer bazı önemli ayrıntı kaldı eğer zararsız olmalıdır.

CEVAP
12 AĞUSTOS 2013, PAZARTESİ


Bir ana bilgisayar adı doğrudan senaryo içine girme olasılığı ortaya çıktı hosts: imac-2.local ile senaryo çalışan iyi çalışır. Ama biraz hantal.

Daha iyi bir çözüm senaryo dan bir değişken kullanarak, belirli bir ana bilgisayar adresi geçerken --extra-vars ile tanımlama olabilir:

# file: user.yml  (playbook)
---
- hosts: '{{ target }}'
  user: ...

Senaryo çalışan:

ansible-playbook user.yml --extra-vars "target=imac-2.local"

{{ target }} tanımlı değil ise, bu senaryo, hiçbir şey yapmaz. Ana dosyadan bir grup da eğer gerekirse geçirilebilir. Genel olarak, bu çok daha güvenli ve potansiyel olarak yıkıcı bir senaryo oluşturmak için bir yol gibi görünüyor.

Senaryo tek bir ana hedef:

$ ansible-playbook user.yml --extra-vars "target=imac-2.local" --list-hosts

playbook: user.yml

  play #1 (imac-2.local): host count=1
    imac-2.local

Konak: bir grup ile senaryo

$ ansible-playbook user.yml --extra-vars "target=office" --list-hosts

playbook: user.yml

  play #1 (office): host count=3
    imac-1.local
    imac-2.local
    imac-3.local

Ana bilgisayarları tanımlamak için unutmadan güvende!

$ ansible-playbook user.yml --list-hosts

playbook: user.yml

  play #1 ({{target}}): host count=0

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jorrit Jongma

    Jorrit Jongm

    17 Ocak 2008
  • MovieZoneET

    MovieZoneET

    22 Aralık 2009
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008