Frequently Asked Questions
1) YAML’da Boolean (True/False) Yazım Şekli
Ansible, boolean değerleri (true/false) farklı şekillerde kabul eder:
yes,notrue,falseTrue,FalseTRUE,FALSE
Örnek:
gather_facts: yes
# ya da
gather_facts: true
# Tümü Ansible tarafından 'true' olarak yorumlanır.Aynı şekilde “hayır” değeri için no, false, False, FALSE de kullanılabilir. Hepsi aynı anlama gelir, sadece yazım stilleri farklıdır.
Tavsiye: Projenizde bir stil seçip ona tutarlı şekilde devam edin.
2) Üç Tane Tire (---) Dosyanın Başı
YAML dosyalarının başına bazen --- (üç tire) konur:
---
- name: My play
hosts: all
tasks:
- debug:
msg: "Hello"Opsiyonel bir belirtimdir ve tek bir YAML dokümanı içinde zorunlu değildir.
Amaç: Çoklu YAML dosyalarını tek bir yerde birleştirirken, her dokümanın başlangıcını netleştirmektir.
Ansible, --- eklenip eklenmemesine pek takılmaz. Küçük projelerde kullanmasanız da olur.
3) Değişken Kullanımında Çift Süslü Parantez ({{ }})
Ansible, değişkenleri Jinja2 şablon sistemiyle işler. Normalde bir değişkenin değerini kullanmak istediğinizde:
msg: "DNS Server IP: {{ dns_server_ip }}"{{ dns_server_ip }}→ Değişkenin değeri buraya yerleştirilir.
Nerede {{ }} Kullanmıyoruz?
varParametresi (debug modülünde):- debug: var: dns_server_ipBurada
var:kendisinin değişkene ihtiyacı olduğunu bildiği için{{ }}yazmanıza gerek yok.whenKoşulu:when: ansible_os_family == "Debian"whenifadesi değişkeni otomatik tanır. Süslü parantez gerekmez.loop/with_itemsKullanınca:with_items: "{{ some_list }}"Burada
loopveyawith_itemsifadesi içinde değişkeni çift süslü parantezle yazmalısınız. Çünkü o ifadenin neyin liste olduğunu anlaması için bu gerekli.
Özet:
debug: var=vewhen:→ süslü parantezsiznormal mesaj ekleme veya
loop→ süslü parantezli
4) Mesaj Başına Değişken Gelince Tırnak
Eğer değerin tamamı sadece bir değişkense, başta {{ }} ile başladığı için Yaml’ın bunu string olarak doğru algılaması adına çift veya tek tırnak kullanmanız gerekir. Örnek:
msg: "{{ dns_server_ip }}"Başka metinle birlikteyse zorunlu değil:
msg: "DNS Server IP: {{ dns_server_ip }}"ya da
msg: DNS Server IP: {{ dns_server_ip }}(Çift tırnak zorunlu olmaktan çıkar.)
5) ansible_ssh_pass mi, ansible_password mı?
ansible_ssh_pass mi, ansible_password mı?Önceden ansible_ssh_pass kullanılıyordu, ancak artık ansible_password tercih ediliyor. Eski playbook veya dokümanlarda ansible_ssh_pass görebilirsiniz, ama yeni projelerde ansible_password daha doğru ve güncel yaklaşım.
Sonuç
Boolean değerler (yes/no/true/false) Ansible için eşdeğer.
Üç tire (---) opsiyonel, genellikle birden fazla YAML dokümanı birleştirmek içindir.
{{ }}(çift süslü parantez) değişken interpolasyonu için kullanılır. Ancakwhen:vedebug: var=gibi belirli durumlarda gerekmez.ansible_passwordtercih edin;ansible_ssh_passeski yöntemin adı.
Last updated
Was this helpful?