Ansible Vault
1. Vault nedir, ne dert çözer?
Sorun: Inventory veya vars dosyanda
ansible_ssh_pass=Passw0rdgibi çıplak şifreler duruyor; repo’ya push edince herkes görebilir.Çözüm:
ansible-vaultile dosyayı AES-256 ile şifreler, sadece doğru vault parolasını giren okuyabilir/kullanabilir.
2. En basit akış – mevcut dosyayı şifrele
$ ansible-vault encrypt inventory # veya secret_vars.yml
New Vault password: ********
Confirm New Vault password: ********
Encryption successfulDosyanın içi artık şöyle görünür:
$ANSIBLE_VAULT;1.1;AES256
6637323134633863323435323765333865613366633930303031393832383864...Okunmaz, playsiz.
Playbook çalıştırırken:
ansible-playbook site.yml -i inventory --ask-vault-pass
# şifreyi sorar, doğruysa devam eder3. Şifreyi her seferinde yazmak yok mu?
3.1 Parola dosyası (basit ama riskli)
.vault_pass.txt’i git’e ekleme!.gitignoreşart.
3.2 Dinamik parola script’i (güvenli yol)
Script şifreyi API, KeePass, AWS Secrets Manager… nereden istersen çeker.
4. Sık kullanılan vault komutları
ansible-vault encrypt file.yml
Dosyayı şifrele
ansible-vault decrypt file.yml
Dosyanın şifresini kaldır
ansible-vault view file.yml
İçeriği salt-okunur görüntüle
ansible-vault edit file.yml
Şifreli dosyayı temp editörde aç (kayıt = yeniden şifreler)
ansible-vault rekey file.yml
Parolayı değiştir
viewveeditde--ask-vault-passveya--vault-password-fileister.
5. Yalnızca bir değişkeni şifrelemek (dosyanın tamamını değil)
Çıktı:
Bunu direkt vars dosyana yapıştır. Böylece dosyanın geri kalanı düz metin kalır.
6. Birden çok kasa (Vault ID) kullanmak
Prod ve Dev için farklı şifre ? Kullan:
Playbook:
Çalıştırırken Ansible hangi vault-id lazımsa onun parolasını sorar.
7. Küçük demo—şifreli vars dosyasıyla rol kullanımı
roles/mysql/vars/main.yml’i şifrele:
Playbook:
Çalıştır:
Ansible önce roldeki vars’ı açar, sonra görevler çalışır.
Özet
Vault ⇒ dosya/variable şifreleme (AES-256).
Çalıştırırken parola vermek zorundasın (
--ask-vault-passveya--vault-password-file).Dosya tamamını ya da tek tek stringleri şifreleyebilirsin.
Production’da parola script’i veya secret manager kullanmak en güvenlisi.
Last updated
Was this helpful?