Sepertin yang telah saya singgung pada tulisan sebelumnya tentang menghapus user di 100 node server, dengan puppet menghapus user di 100 node menjadi sangat mudah. Anda tidak perlu login ke semua node server, yang anda kerjakan hanya menuliskan beberapa baris code di puppet.
Pada tulisan kali ini saya akan membahas tentang manajemen user dengan puppet.
Untuk menambahkan user atau sekedar memastikan properti dari user, puppet sangat mendukung. Contohnya dalam code berikut user ani akan dibuang di semua server:
user { 'ani':
ensure => absent,
home => '/home/ani',
managehome => true,
}
Penjelasan: User ani dipastikan absen karena terdapat ‘ensure=>absent’, managehome dibutuhkan untuk memastikan bahwa $HOME direktori ani juga dibuang.
Untuk menambahkan user cukup ubah absent menjadi present, contohnya untuk user budi
user { 'budi':
ensure => present,
home => '/home/budi',
managehome => true,
shell => '/bin/bash',
}
Dari code diatas, ada tambahan shell, yaitu mendefinisikan shell yang akan digunakan oleh pengguna. Jika anda tidak mengatur shell, maka akan dibuatakan shell /bin/sh
Untuk melakukan penentuan password pada user, dapat menggunakan kolom password, seperti pada kode dibawah.
user { 'cika' :
ensure => present,
shell => '/bin/bash',
managehome => yes,
comment => 'Cika Juga',
password => '$1$RQVI1gQL$V8DCkOeyBo.49dCE4DyCE0'
}
Untuk password user cika, saya menggunakan password ‘cikajuga’, password tersebut dalam format hash. Untuk meghasilkan password dalam format hash dapat gi buat dengan perintah sebegai berikut:
root@master:~# openssl passwd -1
Password:
Verifying - Password:
$1$RQVI1gQL$V8DCkOeyBo.49dCE4DyCE0
Dalam puppet kita juga dapat mengatur kunci ssh yang digunakan, contoh penggunaan ssh key dapat dilihat dalam kode dibawah:
ssh_authorized_key { 'dita_jumbox_ecdsa':
user => 'dita',
type => 'ecdsa-sha2-nistp256',
key => 'AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIsT232WPROxL+Sid0lIr96uOk0rl/Rp6YVrQZNkwBLIa9OJXAk55QDoyFePvRc0xxevKCbcZbmVG2kpm6zsSgM='
}
hasilnya, dalam home direktori dita akan terdapat berkas ssh authorized_keys (~dita/.ssh/authorized_keys). Nah bagaimana caranya agar hanya kunci ssh yang terdaftar di puppet saja yang boleh tercantum di ~dita/.ssh/authorized_keys ? untuk itu, kita harus menambahkan isian ‘purge_ssh_keys => true,’