Configuration files
Ansible’ın yapılandırma dosyaları (configuration files), Ansible’ın hangi ayarlarla çalışacağını belirleyen dosyalardır. Ansible’ı kurduğunuzda, genellikle /etc/ansible/ansible.cfg konumunda varsayılan bir yapılandırma dosyası oluşturulur. İçinde, Ansible’ın nasıl davranacağını etkileyen pek çok ayar ve bunlara ait değerler bulunur. Gelin bunları adım adım inceleyelim:
1) Varsayılan Yapılandırma Dosyası
Konum:
/etc/ansible/ansible.cfgİçeriği:
[defaults],[inventory],[privilege_escalation],[ssh_connection]gibi farklı bölümler (sections).Örnek Ayarlar:
inventory: Ansible hangi envanter (hosts listesi) dosyasını kullanacak?log_path: Log dosyalarının nereye yazılacağıgathering: Varsayılan fact toplama davranışı (implicit, explicit, vs.)timeout: SSH bağlantısında zaman aşımı süresi (ör. 10 saniye)forks: Aynı anda kaç host’la paralel çalışılacağı
Dosyanın içeriğini incelediğinizde, her bölümde farklı ayarların yer aldığını göreceksiniz.
2) Farklı Yerlerde Farklı ansible.cfg Dosyaları Kullanma
ansible.cfg Dosyaları KullanmaBazen aynı kontrol makinesi (control node) üzerinde farklı proje klasörleri olabilir:
Web sunucuları için bir playbook dizini
Veritabanları için başka bir dizin
Ağ ayarları (network) için başka bir dizin
Her birinde farklı yapılandırma ihtiyaçlarınız olabilir. Örneğin:
Web playbook’larında fact toplama (gather_facts) kapalı olsun.
Veritabanı playbook’larında fact toplama açık olsun, ancak renkli çıktı (colored output) kapalı olsun.
Ağ (network) playbook’larında SSH timeout süresi 20 saniye olsun.

Bu farklılıkları yönetmenin en kolay yollarından biri, her dizine özel bir ansible.cfg dosyası koymaktır. Bu şekilde, Ansible bir playbook’u çalıştırırken öncelikle o dizindeki ansible.cfg dosyasına bakar. Bulamazsa bir üst öncelikli dosyaya (örneğin /etc/ansible/ansible.cfg) geri döner.
3) Yapılandırma Dosyaları İçin Öncelik Sırası
Eğer birden fazla yerde ansible.cfg veya ilgili ayarlar varsa, Ansible şu öncelik sırasına göre dosyalardaki ayarları uygular (en yüksek öncelik en başta):
ANSIBLE_CONFIGortam değişkeni ile belirtilen dosyaÖrnek:
ANSIBLE_CONFIG=/opt/ansible-web.cfg ansible-playbook site.ymlBu, tüm dosyaları bastırır.
Ansible’ı çalıştırdığınız dizindeki
ansible.cfgKullanıcının ev dizinindeki
.ansible.cfgSistem varsayılanı:
/etc/ansible/ansible.cfg
Aynı ayar farklı dosyalarda tanımlanmışsa, en yüksek öncelikli dosya kazanır. Diğerlerinde olmayan bir ayar ise sonraki dosyadan devralınır.
4) Ortam Değişkenleri (Environment Variables) ile Ayar Yapma
Bazı durumlarda, yapılandırma dosyası kopyalamak istemeyebilirsiniz. Sadece hızlıca tek bir parametreyi değiştirmek yeterlidir. İşte bu nokta da ortam değişkenleri devreye girer.
Örnek:
gatheringadındaki ayarıexplicityapmak istiyorsanız, şu şekilde yapabilirsiniz:export ANSIBLE_GATHERING=explicit ansible-playbook playbook.ymlBu komuttan sonra Ansible,
gatheringparametresi içinexplicitdeğerini kullanır. Shell oturumunu kapatana kadar bu değişken aktif kalır.Tek Seferlik Kullanım:
ANSIBLE_GATHERING=explicit ansible-playbook playbook.ymlSadece bu komut için geçerli olur, komut bittiğinde ayar sıfırlanır.
Neden ANSIBLE_GATHERING? Çoğu konfigürasyon parametresi,
ansible.cfgiçindeki ismin büyük harf versiyonuna ve başınaANSIBLE_eklenmiş haline dönüştürülerek ortam değişkeni haline getirilebilir. (Örneğintimeout→ANSIBLE_TIMEOUT,forks→ANSIBLE_FORKSgibi.)
Ortam değişkenleri dosyalardaki ayarlardan bile daha yüksek önceliklidir. Yani aynı parametreye hem dosyada hem de ortam değişkeninde farklı değer verilirseniz, ortam değişkeni kazanır.
5) ansible-config Komutları (List, View, Dump)
ansible-config Komutları (List, View, Dump)Hangi ayarların mevcut olduğunu, varsayılan değerlerin ne olduğunu ve şu anda hangi konfigürasyon dosyasını Ansible’ın kullandığını öğrenmek için kullanışlı araçlar:
ansible-config listTüm konfigürasyon seçeneklerini, varsayılan değerlerini ve hangi ortam değişkeniyle ilişkilendirilebileceğini gösterir.
ansible-config viewŞu anda aktif olan yapılandırma dosyasını gösterir. Eğer yerel dizinde bir
ansible.cfgvarsa onu, yoksa sıradaki dosyayı vb. gösterir.
ansible-config dumpAnsible’ın geçerli oturumda hangi ayarları kullandığını ve bu ayarları nereden çektiğini listeler. Örneğin
ansible-config dump | grep GATHERINGdiyerekgatheringayarının nereden geldiğini görebilirsiniz.
6) Özet
Varsayılan Dosya:
/etc/ansible/ansible.cfg’dir. Her şeyi orada tutabilir veya farklı projeler için yerel kopyalarını oluşturabilirsiniz.Yerel
ansible.cfg: Bulunduğunuz dizinde varsa, sistem varsayılanını bastırır. Bu, farklı projeler için özel ayarlara sahip olmanızı kolaylaştırır.Ortam Değişkeni: Belirli bir parametreyi hızlıca değiştirmek istediğinizde kullanın. En yüksek önceliğe sahiptir.
Öncelik Sırası:
ANSIBLE_CONFIGortam değişkeniYerel dizindeki
ansible.cfgKullanıcı ev dizinindeki
.ansible.cfg/etc/ansible/ansible.cfg
Konfigürasyon Komutları:
ansible-config list,ansible-config view,ansible-config dump→ Hangisi geçerli, nereden geliyor, varsayılanı ne? Tüm detayları görmenizi sağlar.
Last updated
Was this helpful?