Saya ingin menggunakan yang dimungkinkan untuk mengelola sekelompok server yang ada. Saya telah membuat ansible_hosts
file, dan berhasil diuji (dengan -K
opsi) dengan perintah yang hanya menargetkan satu host
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Masalah saya sekarang adalah bahwa kata sandi pengguna pada setiap host berbeda, tetapi saya tidak dapat menemukan cara untuk menangani ini di Ansible.
Dengan menggunakan -K
, saya hanya diminta untuk kata sandi sudo tunggal di muka, yang kemudian tampaknya akan dicoba untuk semua host berikutnya tanpa diminta:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Penelitian sejauh ini:
sebuah pertanyaan StackOverflow dengan satu jawaban yang salah ( "menggunakan
-K
") dan satu respon oleh penulis mengatakan 'Menemukan saya butuhkan memasukkan password sudo'dokumen Ansible , yang mengatakan "Penggunaan sudo tanpa kata sandi membuat segalanya lebih mudah untuk diotomatisasi, tetapi itu tidak diperlukan ." (penekanan milikku)
pertanyaan keamanan StackExchange ini yang dianggap telah dibaca yang
NOPASSWD
diperlukanartikel "Penyediaan Scalable dan Understandable ..." yang mengatakan:
"menjalankan sudo mungkin memerlukan mengetikkan kata sandi, yang merupakan cara yang pasti untuk memblokir Ansible selamanya. Perbaikan sederhana adalah dengan menjalankan visudo pada host target, dan pastikan bahwa pengguna Ansible akan menggunakan untuk masuk tidak harus mengetikkan kata sandi"
artikel "Basic Ansible Playbooks" , yang berbunyi
"Kemungkinan bisa masuk ke server target sebagai root dan menghindari perlunya sudo, atau membiarkan pengguna yang mungkin memiliki sudo tanpa kata sandi, tetapi pemikiran melakukan salah satu membuat limpa saya mengancam untuk melompat kerongkongan saya dan memblokir tenggorokan saya, jadi saya jangan "
Pikiranku persis, tapi bagaimana cara melampaui satu server?
masalah yang mungkin # 1227 , "Mungkin harus meminta kata sandi sudo untuk semua pengguna di buku pedoman", yang ditutup setahun yang lalu oleh mpdehaan dengan komentar "Belum melihat banyak permintaan untuk ini, saya pikir kebanyakan orang sudoing hanya dari satu akun pengguna atau menggunakan kunci sebagian besar waktu. "
Jadi ... bagaimana orang menggunakan Ansible dalam situasi seperti ini? Menyetel NOPASSWD
masuk /etc/sudoers
, menggunakan kembali kata sandi di seluruh host atau mengaktifkan login SSH root, semuanya tampak pengurangan keamanan yang agak drastis.
sudo
(yang seharusnya masih memerlukan kata sandi).
ansible_ssh_password
pengaturan hanya berlaku untuk password SSH (petunjuk adalah dalam nama ...). & Saya sudah menggunakan login SSH berbasis kunci.