2015-11-28 16 views
9

Kullanıcı listesinin oluşturulacağı bir oynatma kitabı oluşturmaya çalışıyorum. Bununla birlikte, her kullanıcı için rasgele şifre üretmek istiyorum. Parolalar oluşturulduktan sonra, kullanıcı adı tutan bir metin dosyasına sahip olmak isterim: playbook dosyasının yanındaki new_generated_password anahtar değerleri. Yeni bir modül geliştirmeden bunu yapmak mümkün mü?Kullanıcılar için rastgele şifreler otomatik olarak üretilebiliyor

cevap

12

password lookup sizin için parolalar oluşturabilir ve oluşturulan parolayı kontrol makinesine koyar (yani, oynatma kitabının çalıştığı yerdir). şifrelerini bir kullanıcı oluşturur ve ayarlar bir örnek görevi şöyle görünebilir:

- name: Create users with auto generated password 
    user: 
    name: "{{ item.name }}" 
    password: "{{ lookup('password', 'credentials/' + item.name + '/password.txt encrypt=md5_crypt') }}" 
    with_items: users 

Bu da kontrol makinede ~/credentials/$username/password.txt adlı bir metin dosyası oluşturur. Ansible oyununu yeniden çalıştırırsanız, Ansible bu parolayı parola olarak kabul eder ve kullanıcının parolasını aynı değere ayarladığınızdan emin olur - bu onu idempotent yapar.

Bu, tam istediğiniz şeyi elde etmenizi sağlamaz, ancak istediğiniz tüm bilgileri Ansible kontrol ana bilgisayarına aktarır, böylece istediğiniz son çıktıyı elde etmek için daha fazla işlem yapabilirsiniz.

+0

Sadece 'encrypt' parametresini eklememiz gerekiyordu ve bir çekicilik gibi çalıştı! tks – Pablo

+0

@Pablo, çalışma örneğinizi "encrypt" parametresini eklediğiniz yere yapıştırır, böylece başkalarına yardımcı olur. –

+0

'{{lookup ('password', 'kimlik bilgileri /' + item.name + '/password.txt şifresi = md5_crypt')}}' – Pablo

İlgili konular