mungkin

Cara Menggunakan Login Berbasis Kata Sandi SSH di Ansible Menggunakan sshpass

Cara Menggunakan Login Berbasis Kata Sandi SSH di Ansible Menggunakan sshpass
Pada artikel ini, saya akan menunjukkan cara menjalankan Playbook Ansible menggunakan login berbasis kata sandi SSH dengan sshpass.

Prasyarat

Jika Anda ingin mencoba contoh yang dibahas dalam artikel ini,

1) Anda harus menginstal Ansible di komputer Anda.
2) Anda harus memiliki setidaknya host Ubuntu/Debian yang dapat Anda hubungkan dari Ansible.

Ada banyak artikel di LinuxHint yang didedikasikan untuk Menginstal Ansible. Anda dapat memeriksa ini jika diperlukan untuk menginstal program yang diperlukan di sistem Anda.

Anda juga harus memiliki sshpass diinstal di komputer Anda, di mana Anda seharusnya menginstal Ansible. Saya akan menunjukkan cara menginstal how sshpass di Ubuntu/Debian dan CentOS/RHEL dalam artikel ini. Jangan khawatir jika Anda belum menginstal program ini di sistem Anda.

Menginstal sshpass di Ubuntu/Debian

Program sshpass tersedia di repositori paket resmi Ubuntu/Debian. Anda dapat dengan mudah menginstal program ini di komputer Anda.

Pertama, perbarui cache repositori paket APT melalui perintah berikut:

$ sudo apt update

Sekarang, instal sshpass melalui perintah berikut:

$ sudo apt install sshpass -y

sshpass sekarang harus diinstal.

Menginstal sshpass pada CentOS 8/RHEL 8

sshpass tersedia di repositori EPEL CentOS 8/RHEL 8. Anda harus mengaktifkan repositori EPEL untuk menginstal sshpass.

Pertama, perbarui cache repositori paket DNF melalui perintah berikut:

$ sudo dnf makecache

Selanjutnya, instal paket repositori EPEL melalui perintah berikut:

$ sudo dnf install epel-release -y

Paket repositori EPEL sekarang harus diinstal dan repositori EPEL harus diaktifkan.

Perbarui lagi cache repositori paket DNF, sebagai berikut:

$ sudo dnf makecache

Install sshpass melalui perintah berikut:

$ sudo dnf install sshpass -y

sshpass harus dipasang.

Menyiapkan Direktori Proyek yang Mungkin

Sebelum kita melanjutkan lebih jauh, ada baiknya untuk membuat struktur direktori proyek, hanya untuk menjaga agar sedikit teratur.

Untuk membuat direktori proyek sshpass/ dan semua subdirektori yang diperlukan (di direktori kerja Anda saat ini), jalankan perintah berikut:

$ mkdir -pv sshpass/files,playbooks

Arahkan ke direktori proyek, sebagai berikut:

$cd sshpass/

Membuat tuan rumah berkas inventaris, sebagai berikut:

$ nano host

Tambahkan IP host atau nama DNS Anda di file inventaris.

Setelah Anda selesai dengan langkah ini, simpan file dengan menekan + X, diikuti oleh kamu dan .

Buat file konfigurasi Ansible di direktori proyek, sebagai berikut:

$ nano mungkin.cfg

Sekarang, ketik baris berikut di mungkin.cfg mengajukan.

Setelah Anda selesai dengan langkah ini, simpan file dengan menekan + X, diikuti oleh kamu dan .

Menguji Login SSH Berbasis Kata Sandi di Ansible

Selanjutnya coba ping ke host di file inventory, sebagai berikut :

$ memungkinkan semua -u shovon -m ping

CATATAN: Di sini, -kamu opsi digunakan untuk memberi tahu pengguna mana yang dapat masuk sebagai. Dalam hal ini, itu akan menjadi pengguna shovon. Ganti nama pengguna ini dengan milik Anda mulai sekarang, selama demo.

Seperti yang Anda lihat, saya tidak dapat masuk ke host dan menjalankan perintah apa pun.

Untuk memaksa Ansible meminta kata sandi pengguna, jalankan mungkin perintah dengan -minta-pass argumen, sebagai berikut:

$ memungkinkan semua -u shovon --ask-pass -m ping

Seperti yang Anda lihat, Ansible meminta kata sandi SSH pengguna. Sekarang, ketikkan kata sandi SSH Anda (kata sandi login pengguna) dan tekan .

Host dapat di-ping, sebagai berikut:

Kemungkinan Login SSH Berbasis Kata Sandi untuk Playbook

Anda dapat menggunakan login SSH berbasis kata sandi saat Anda menjalankan Playbook Ansible. Mari kita lihat sebuah contoh.

Pertama, buat buku pedoman baru askpass1.yaml dalam buku pedoman/ direktori, sebagai berikut:

$ nano buku pedoman/askpass1.yaml

Ketik baris berikut di askpass1.yaml file buku pedoman:

- tuan rumah: semua
pengguna: shovon
tugas:
- nama: Ping semua host
ping:
- nama: Cetak pesan
debug:
pesan: 'Semua siap'

Setelah Anda selesai dengan langkah ini, simpan file dengan menekan + X, diikuti oleh kamu dan .

Jalankan askpass1.yaml buku pedoman, sebagai berikut:

$ playbook yang memungkinkan-playbook/askpass1.yaml

Seperti yang Anda lihat, saya tidak dapat terhubung ke host. Anda dapat melihat bahwa ini karena saya tidak menjalankan ansible-playbook perintah dengan -minta-pass pilihan.

Jalankan askpass1.yaml buku pedoman dengan -minta-pass pilihan, sebagai berikut:

$ ansible-playbook -ask-pass playbooks/askpass1.yaml

Seperti yang Anda lihat, Ansible meminta kata sandi SSH. Ketik kata sandi SSH Anda dan tekan .

Buku pedoman askpass1.yaml sekarang harus berjalan dengan sukses.

Kemungkinan Login Kata Sandi Sudo untuk Playbook

Itu -minta-pass opsi hanya akan meminta kata sandi masuk SSH. Bagaimana jika Anda juga ingin mengetikkan kata sandi sudo?? Anda akan melihat bagaimana melakukan ini di langkah selanjutnya.

Pertama, buat buku pedoman baru askpass2.yaml dalam buku pedoman/ direktori, sebagai berikut:

$ nano buku pedoman/askpass2.yaml

Ketik baris berikut di askpass2.yaml mengajukan.

- tuan rumah: semua
pengguna: shovon
menjadi: Benar
tugas:
- nama: Instal Paket Apache2
tepat:
nama: apache2
negara: terbaru
- nama: Pastikan layanan Apache2 berjalan
layanan:
nama: apache2
negara: mulai
diaktifkan: Benar
- nama: Salin indeks.file html ke server
salinan:
src: … /file/indeks.html
tujuan: /var/www/html/index.html
modus: 0644
pemilik: www-data
grup: www-data

Di sini, saya telah menggunakan perintah menjadi: Benar untuk memberi tahu Ansible untuk menjalankan buku pedoman ini dengan hak istimewa Sudo. Setelah Anda selesai dengan langkah ini, simpan askpass2.yaml file dengan menekan + X, diikuti oleh kamu dan .

Buat sebuah indeks.html file di file/ direktori, sebagai berikut:

$ file/indeks nano.html

Ketik kode HTML berikut di indeks.html mengajukan:




Beranda


Halo Dunia


Berhasil



Setelah Anda selesai dengan langkah ini, simpan file dengan menekan + X diikuti oleh kamu dan .

Anda dapat menjalankan askpass2.yaml buku pedoman dengan -minta-pass pilihan, sebagai berikut:

$ ansible-playbook --ask-pass playbooks/askpass2.yaml

Anda kemudian akan dimintai kata sandi SSH, seperti sebelumnya.

Tetapi playbook masih mungkin tidak berjalan bahkan jika Anda memberikan kata sandi SSH. Alasannya adalah karena Anda harus memberi tahu Ansible untuk meminta kata sandi Sudo, serta kata sandi SSH.

Anda dapat memberi tahu Ansible untuk meminta kata sandi Sudo menggunakan -minta-menjadi-lulus pilihan saat menjalankan playbook, sebagai berikut:

$ ansible-playbook --ask-pass --ask-become-pass playbooks/askpass2.yaml

Sekarang, Ansible akan meminta Anda untuk memasukkan kata sandi SSH.

Selanjutnya, Ansible akan meminta Anda untuk memasukkan kata sandi sudo. Jika kata sandi sudo Anda sama dengan kata sandi SSH (yang kemungkinan besar), biarkan kosong dan tekan .

Seperti yang Anda lihat, buku pedoman berjalan dengan sukses.

Mengonfigurasi Login SSH Berbasis Sandi Otomatis dan Login Sandi Sudo

Anda mungkin ingin menggunakan SSH berbasis kata sandi dan login sudo, tetapi tidak ingin mengetikkan kata sandi SSH dan kata sandi sudo setiap kali Anda menjalankan buku pedoman. Jika itu masalahnya, maka bagian ini untuk Anda.

Untuk menggunakan login SSH berbasis kata sandi dan login sudo tanpa diminta kata sandi, yang harus Anda lakukan adalah menambahkan ansible_ssh_pass dan ansible_become_pass variabel host atau variabel grup dalam file inventaris Anda.

Pertama, buka tuan rumah berkas inventaris, sebagai berikut:

$ nano host

Jika Anda memiliki beberapa host di file inventaris Anda dan masing-masing host memiliki kata sandi yang berbeda, tambahkan: ansible_ssh_pass dan ansible_become_pass variabel sebagai variabel host (setelah setiap host) sebagai berikut.

Pastikan untuk mengganti rahasia dengan kata sandi SSH dan Sudo Anda.

Jika semua atau beberapa host memiliki kata sandi yang sama, Anda dapat menambahkan add ansible_ssh_pass dan ansible_become_pass variabel sebagai variabel grup, seperti yang ditunjukkan pada contoh di bawah ini.

Di sini, saya hanya memiliki satu host, jadi saya telah menambahkan ansible_ssh_pass dan ansible_become_pass variabel untuk semua grup (semua host dalam file inventaris). Tetapi, Anda juga dapat menambahkan variabel ini untuk grup tertentu lainnya.

Setelah Anda selesai menambahkan ansible_ssh_pass dan ansible_become_pass variabel dalam tuan rumah file inventaris, simpan tuan rumah file inventaris dengan menekan + X, diikuti oleh kamu dan .

Anda sekarang dapat menjalankan askpass2.yaml buku pedoman, sebagai berikut:

$ playbook/askpass2 yang memungkinkan-playbook.yaml

Seperti yang Anda lihat, buku pedoman berjalan dengan sukses, meskipun tidak meminta kata sandi SSH atau kata sandi sudo.

Jadi, ini adalah bagaimana Anda menggunakan sshpass untuk SSH berbasis kata sandi dan sudo login di Ansible. terimakasih telah membaca artikel ini!

Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...
Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...
Game Remaster HD untuk Linux yang Belum Pernah Rilis Linux Sebelumnya
Banyak pengembang dan penerbit game datang dengan remaster HD dari game lama untuk memperpanjang umur waralaba, harap penggemar meminta kompatibilitas...