İçeriğe geç

Ansible’da yetkilendirme işlemleri

Ansible’da bir görevi çalıştırırken, yetkilendirmeyi başka bir kullanıcı üzerinden gerçekleştirmek isteyebiliriz. Bunun için hedef node’daki login olmuş kullanıcı haricinde bir kullanıcıyı seçmek için, Ansible’ın “become” parametresini kullanıyoruz.

Bu yapısıyla “become”ı bir nevi sudo, pfexec veya dzdo muadili olarak düşünebilirsiniz. become tanımlamaları, “task” seviyesinde yapılır. Sık kullanılabilen üç parametre:

become
true veya yes değeri alarak yetkilendirmeyi aktif hale getirir.

become_user
Varsayılan değeri “root” kullanıcısıdır, farklı bir kullanıcı tanımlanabilir.

become_method
sudo, su, pfexec, dzdo, ksu gibi değerler alır. Varsayılan metod ansible.cfg dosyasında yer alsa da, playbook üzerinde yapılacak become_method tanımlaması, ayar dosyasındaki mevcut değeri ezecektir.

root haklarına ihtiyaç duyan bir sistem servisini düşünelim.

Bu kısa örnekte docker servisi root kullanıcısının hakları kullanılarak durdurulacaktır. Herhangi bir başka servisin kendisine ait nologin tanımlı kullanıcısı varsa (httpd için apache gibi), become_user olarak söz konusu kullanıcı tanımlanabilir.

gibi düşünebilirsiniz. Benzer şekilde nobody kullanıcısını düşünecek olursak, become_flags olarak ‘-s /bin/sh’ tanımlanabilir.

Bu parametreler playbook’la sınırlı kalmadan, adhoc olarak da pekala kullanılabilir.

şeklinde adhoc komutlarında da işleme alabilirsiniz. Bu üçlüye ek olarak:

parametresi ile yetkilendirme sırasında kullanıcıdan parola istenebilir.

Her bir node için sadece tek bir become metodu kullanılır. Yani su ve sudo’yu aynı anda kullandığınızda bu Ansible tarafında syntax hatası olarak kabul edilecektir.

Son olarak, become_user ve remote_user birbiriyle karıştırılmamalıdır. Ansible, remote_user üzerinden node’a erişerek loglama işlemlerini bu kullanıcıyla ilişkilendirir. become_user ise become aktif edildiğinde ilgili kullanıcıya sudo yetkisini verir şeklinde düşünebilirsiniz.

Tarih:DevOpsGenel

İlk Yorumu Siz Yapın

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

DenizParlak.