Introduction to Ansible Configuration Files
1. Varsayılan Ansible Konfigürasyon Dosyası
Kurulum Sonrası Varsayılan Dosya Ansible kurulunca, genellikle
/etc/ansible/ansible.cfg
konumunda bir varsayılan konfigürasyon dosyası oluşturulur.Bölümler (Sections) Bu dosya çeşitli bölümlere sahiptir (örn:
[defaults]
,[inventory]
,[privilege_escalation]
,[ssh_connection]
, vb.).En çok ayar genellikle
[defaults]
bölümünde yer alır.Örnek ayarlar:
Varsayılan envanter dosyası (inventory) konumu
Log dosyası konumu
Modül veya rol dizinleri
SSH bağlantı zaman aşımı (timeout) süresi
Ansible’ın “facts” (sistem bilgileri) toplayıp toplamayacağı
Aynı anda kaç host’u paralel işleyebileceği (forks)
Bu varsayılan dosya, herhangi bir ek ayar belirtilmezse Ansible tarafından her zaman okunur.
2. Konfigürasyon Dosyası Öncelik Sırası
Ansible, birden fazla konfigürasyon dosyası bulunursa belli bir öncelik sırasına göre ayarları okur. Yani, Ansible, ayarları (konfigürasyonları) birden fazla yerden okuyabilir. Ama aynı ayar farklı dosyalarda farklı değerlerle tanımlanırsa, en yüksek öncelikli olan kazanır. İşte öncelik sırası (en yüksek → en düşük):
Environment Variable
ANSIBLE_CONFIG
adında bir değişken, konfigürasyon dosyasının tam yolunu gösterir.Örneğin,
Bu şekilde ayarlanırsa, ilk olarak buradaki ayarlar kullanılır.
Mevcut Çalışma Dizini (Current Directory)
Ansible komutunu çalıştırdığın dizinde bir
ansible.cfg
dosyası varsa, ikinci olarak buradaki ayarlar geçerli olur.
Kullanıcının Ev Dizini (Home Directory) İçindeki
.ansible.cfg
Örneğin,
/home/onur/.ansible.cfg
dosyası.Eğer çevre değişkeni veya çalışma dizininde bir dosya yoksa, üçüncü sırada bu dosyayı kontrol eder.
Varsayılan Sistem Dosyası
/etc/ansible/ansible.cfg
Hiçbir üstteki konfigürasyon yoksa veya ilgili ayar oralarda belirtilmemişse, en son bu dosyanın değerleri kullanılır.
Nasıl Düşünmeliyiz?
Eğer tek bir ayarı herkesten önce zorla değiştirmek istiyorsan → Environment Variable ile
ANSIBLE_CONFIG
kullan.Bulunduğun dizinde özel ayarlar istiyorsan →
ansible.cfg
dosyasını oraya koy.Tüm kullanıcılar için geçerli varsayılan bir ayar yapmak istiyorsan →
/etc/ansible/ansible.cfg
dosyasını düzenle.
Örnek Senaryo:
/etc/ansible/ansible.cfg
içindetimeout=10
yazıyor.Kendi klasöründeki
ansible.cfg
içindetimeout=20
yazarsan, senin klasöründe Ansible çalıştırıldığında 20 geçerli olur.Ayrıca
export ANSIBLE_CONFIG=/home/onur/diger_ayarlar.cfg
yapıp o dosyadatimeout=30
yazarsan, bu kez 30 geçerli olur.
Bu şekilde, Ansible hangi dosyanın ayarını seçeceğini belirli bir öncelik sırasına göre karar verir.
3. Konfigürasyon Dosyalarını ve Değerlerini Değiştirme Yöntemleri
Ansible Konfigürasyonunu Değiştirmek İçin Üç Ana Yol Var:
Klasöre (Dizine)
ansible.cfg
Dosyası KopyalamakEğer
/etc/ansible/ansible.cfg
dosyası var ve bu dosyadaki ayarları biraz değiştirmek istiyorsan:Projende, örneğin
web-playbooks
klasörüne geç.Orada
ansible.cfg
adında yeni bir dosya oluştur (veya/etc/ansible/ansible.cfg
’den kopyala).İçindeki sadece değiştirmek istediğin satırları düzenle (örn.
timeout=20
).
Artık o klasörde
ansible-playbook ...
komutunu çalıştırdığında, o klasördekiansible.cfg
ayarları geçerli olur.
Environment Variable (Değişken) Kullanmak
Eğer tek bir ayarı hızlıca değiştirmek istiyorsan,
ansible.cfg
dosyasıyla uğraşmadan terminalde şu şekilde yazabilirsin:Bu komut çalışırken
ANSIBLE_GATHERING
değeri geçici olarakexplicit
olur ve diğer tüm dosyalardakigathering
ayarlarını yok sayar.Ya da önce değişkeni kalıcı yapmak istersen,
şeklinde iki satırda yazabilirsin. Bu sayede, o terminal oturumu boyunca (exit yapana kadar)
gathering
ayarıexplicit
kalır.
Sadece Birkaç Ayar Değiştirmek İstediğinde
Bazen tüm
ansible.cfg
dosyasını kopyalayıp düzenlemek yerine, yalnızca 1-2 küçük ayar değiştirmen gerekebilir.Bu durumda, environment variable yöntemi çok pratiktir. Tek bir ayarı override (geçersiz kıl) etmek için:
Böylece sistemde başka yerde hangi ayar varsa varsın, bu tek komutluk değişken her şeyin önüne geçer.
Kısa Özet
Klasöre
ansible.cfg
kopyalamak: Proje/klasör bazında kalıcı ayarlar yapmak istediğinde kullanılır.Environment variable: Hızlı veya tek seferlik ayar değişikliği için idealdir.
Last updated
Was this helpful?