Bir şeyin değiştiğini bildiren Ansible bir görevin önemi nedir?


20

İşlemimin 8080 numaralı bağlantı noktasını dinleyip dinlemediğini kontrol eden bir görevim var ve yalnızca çıkış kodu sıfır olmadığında failbir mesajla çalışırdım.

Hizmet çalışırken durumun değiştiğini bildirir. Söylemesini istiyorum ok. changedAnsible'da durum gerçekten ne anlama geliyor?

Yanıtlar:


11

Hedefteki bir şeye bağımlı olan herhangi bir şey, bir şeyi yankılamak için sadece bir kabuk komutu olsa bile, yürütüldüğünde durumu "değiştirir".

"Değişen" durumunu gizlemek için, göreve aşağıdaki satırı ekleyebilirsiniz:

changed_when: false

Bu ve ilgili diğer şeyler bu ansible doc sayfasında listelenmiştir .


27

Makul görevler idempotent olmalıdır . Örneğin. görev hiçbir şeyi değiştirmezse, okyerine dönmelidir changed. Çoğu yerleşik modül ve görev zaten, ancak gibi görevler için commandve shellansible biraz yardım etmek gerekir.

Tamamen kontrol eden ve hiçbir şeyi değiştirmeyen bir görev için şunları eklemelisiniz:

changed_when: False
always_run: yes

İkincisi, görevin kontrol modunda bile çalışmasına izin verir .

Tamlık uğruna, bu tür görevler genellikle gerçek değişikliği yapan bir diğeri ile birleştirilir, örneğin:

- command: check command that returns true when no change needed
  register: result
  changed_when: False
  always_run: yes
- command: modify command
  when: result.rc != 0

2
Bu cevap doğrulanmalıdır
mastier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.