Ansible Vault

1. Vault nedir, ne dert çözer?

  • Sorun: Inventory veya vars dosyanda ansible_ssh_pass=Passw0rd gibi çıplak şifreler duruyor; repo’ya push edince herkes görebilir.

  • Çözüm: ansible-vault ile 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 successful
  • Dosyanı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 eder

3. Ş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ı

Komut
İşlev

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

view ve edit de --ask-vault-pass veya --vault-password-file ister.

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-pass veya --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?