Tidak boleh difahami

Cara Menggunakan Log Masuk Kata Laluan SSH di Ansible Menggunakan sshpass

Cara Menggunakan Log Masuk Kata Laluan SSH di Ansible Menggunakan sshpass
Dalam artikel ini, saya akan menunjukkan kepada anda cara menjalankan buku main Ansible menggunakan login berasaskan kata laluan SSH dengan sshpass.

Prasyarat

Sekiranya anda ingin mencuba contoh yang dibincangkan dalam artikel ini,

1) Anda mesti memasang Ansible di komputer anda.
2) Anda mesti mempunyai sekurang-kurangnya hos Ubuntu / Debian yang boleh anda sambungkan dari Ansible.

Terdapat banyak artikel mengenai LinuxHint yang dikhaskan untuk Memasang Ansible. Anda boleh memeriksanya jika diperlukan untuk memasang program yang diperlukan pada sistem anda.

Anda juga perlu sshpass dipasang di komputer anda, di mana anda seharusnya memasang Ansible. Saya akan menunjukkan cara memasang sshpass pada Ubuntu / Debian dan CentOS / RHEL dalam artikel ini. Jangan bimbang jika anda belum memasang program ini di sistem anda.

Memasang sshpass pada Ubuntu / Debian

Program yang sshpass terdapat di repositori pakej rasmi Ubuntu / Debian. Anda boleh memasang program ini dengan mudah di komputer anda.

Pertama, kemas kini cache repositori pakej APT melalui arahan berikut:

$ sudo apt kemas kini

Sekarang, pasang sshpass melalui arahan berikut:

$ sudo apt pasang sshpass -y

sshpass kini harus dipasang.

Memasang sshpass pada CentOS 8 / RHEL 8

sshpass terdapat di repositori EPEL CentOS 8 / RHEL 8. Anda mesti mengaktifkan repositori EPEL untuk memasang sshpass.

Pertama, kemas kini cache repositori pakej DNF melalui arahan berikut:

$ sudo dnf makecache

Seterusnya, pasang pakej repositori EPEL melalui arahan berikut:

$ sudo dnf pasang epel-release -y

Pakej repositori EPEL sekarang harus dipasang dan repositori EPEL harus diaktifkan.

Kemas kini cache repositori pakej DNF sekali lagi, seperti berikut:

$ sudo dnf makecache

Pasang sshpass melalui arahan berikut:

$ sudo dnf pasang sshpass -y

sshpass harus dipasang.

Menyiapkan Direktori Projek Ansible

Sebelum kita melangkah lebih jauh, ada baiknya membuat struktur direktori projek, hanya untuk memastikan sesuatu tetap teratur.

Untuk membuat direktori projek sshpass / dan semua subdirektori yang diperlukan (dalam direktori kerja semasa anda), jalankan arahan berikut:

$ mkdir -pv sshpass / fail, buku main

Arahkan ke direktori projek, seperti berikut:

$ cd sshpass /

Buat a tuan rumah fail inventori, seperti berikut:

hos $ nano

Tambahkan IP host atau nama DNS anda dalam fail inventori.

Setelah anda selesai dengan langkah ini, simpan fail dengan menekan + X, diikuti oleh Y dan .

Buat fail konfigurasi Ansible dalam direktori projek, seperti berikut:

$ nano tidak boleh dimakan.cfg

Sekarang, ketik baris berikut di tidak boleh dimakan.cfg fail.

Setelah anda selesai dengan langkah ini, simpan fail dengan menekan + X, diikuti oleh Y dan .

Menguji Login SSH Berasaskan Kata Laluan di Ansible

Seterusnya, cuba ping hos dalam fail inventori, seperti berikut:

$ ansible all -u shovon -m ping

NOTA: Di sini, -awak pilihan digunakan untuk memberitahu pengguna mana pengguna untuk log masuk sebagai. Dalam kes ini, ia akan menjadi pengguna penyodok. Ganti nama pengguna ini dengan nama anda dari sekarang, sepanjang demo.

Seperti yang anda lihat, saya tidak dapat log masuk ke host dan menjalankan sebarang arahan.

Untuk memaksa Ansible meminta kata laluan pengguna, jalankan tidak boleh dimakan perintah dengan -tanya-lulus hujah, seperti berikut:

$ ansible all -u shovon --ask-pass -m ping

Seperti yang anda lihat, Ansible meminta kata laluan SSH pengguna. Sekarang, ketik kata laluan SSH anda (kata laluan masuk pengguna) dan tekan .

Tuan rumah boleh di-ping, seperti berikut:

Log masuk SSH berasaskan Kata Laluan yang Boleh Dibaca untuk Playbook

Anda boleh menggunakan log masuk SSH berdasarkan kata laluan semasa anda menjalankan buku main Ansible. Mari kita lihat contohnya.

Pertama, buat buku permainan baru askpass1.keladi di dalam buku permainan / direktori, seperti berikut:

Buku permainan $ nano / askpass1.keladi

Taipkan baris berikut di askpass1.keladi fail buku main:

- tuan rumah: semua
pengguna: shovon
tugas:
- nama: Ping semua hos
ping:
- nama: Cetak mesej
nyahpepijat:
msg: 'Semua siap'

Setelah anda selesai dengan langkah ini, simpan fail dengan menekan + X, diikuti oleh Y dan .

Jalankan askpass1.keladi buku permainan, seperti berikut:

$ ansible-playbook playbook / askpass1.keladi

Seperti yang anda lihat, saya tidak dapat berhubung dengan hos. Anda dapat melihat bahawa ini kerana saya tidak menjalankan buku main-ansible perintah dengan -tanya-lulus pilihan.

Jalankan askpass1.keladi buku permainan dengan -tanya-lulus pilihan, seperti berikut:

$ ansible-playbook -sas-pass playbooks / askpass1.keladi

Seperti yang anda lihat, Ansible meminta kata laluan SSH. Taipkan kata laluan SSH anda dan tekan .

Buku permainan askpass1.keladi kini harus berjalan dengan jayanya.

Login Kata Laluan sudo yang boleh dibaca untuk Playbook

The -tanya-lulus pilihan akan meminta kata laluan masuk SSH sahaja. Bagaimana jika anda juga ingin memasukkan kata laluan sudo? Anda akan melihat bagaimana melakukan ini pada langkah seterusnya.

Pertama, buat buku permainan baru askpass2.keladi di dalam buku permainan / direktori, seperti berikut:

Buku main $ nano / askpass2.keladi

Taipkan baris berikut di askpass2.keladi fail.

- tuan rumah: semua
pengguna: shovon
menjadi: Benar
tugas:
- name: Pasang pakej apache2
sesuai:
nama: apache2
nyatakan: terkini
- name: Pastikan perkhidmatan apache2 berjalan
perkhidmatan:
nama: apache2
negeri: dimulakan
didayakan: Betul
- nama: Salin indeks.fail html ke pelayan
salinan:
src:… / fail / indeks.html
dest: / var / www / html / index.html
mod: 0644
pemilik: www-data
kumpulan: www-data

Di sini, saya telah menggunakan arahan menjadi: Benar untuk memberitahu Ansible untuk menjalankan buku main ini dengan hak istimewa sudo. Setelah anda selesai dengan langkah ini, simpan askpass2.keladi fail dengan menekan + X, diikuti oleh Y dan .

Buat sebuah indeks.html fail di fail / direktori, seperti berikut:

$ nano fail / indeks.html

Taipkan kod HTML berikut di indeks.html fail:




Laman utama


Hai dunia


Ianya berfungsi



Setelah anda selesai dengan langkah ini, simpan fail dengan menekan + X diikuti oleh Y dan .

Anda boleh menjalankan askpass2.keladi buku permainan dengan -tanya-lulus pilihan, seperti berikut:

$ ansible-playbook - buku main-pass-ask / passpass2.keladi

Anda kemudian akan diminta untuk mendapatkan kata laluan SSH, seperti sebelumnya.

Tetapi buku main masih tidak dapat dijalankan walaupun anda memberikan kata laluan SSH. Sebabnya adalah kerana anda harus memberitahu Ansible untuk meminta kata laluan sudo, dan juga kata laluan SSH.

Anda boleh memberitahu Ansible untuk meminta kata laluan sudo menggunakan -tanya-menjadi-lulus pilihan semasa menjalankan buku main, seperti berikut:

$ ansible-playbook - ask-pass - buku permainan ask-menjadi-pass / askpass2.keladi

Kini, Ansible akan meminta kata laluan SSH.

Seterusnya, Ansible akan meminta kata laluan sudo. Sekiranya kata laluan sudo anda sama dengan kata laluan SSH (yang kemungkinan besar), biarkan kosong dan tekan .

Seperti yang anda lihat, buku main berjaya dijalankan.

Mengkonfigurasi Login SSH Berasaskan Kata Laluan Automatik dan Log Masuk Kata Laluan sudo

Anda mungkin ingin menggunakan SSH berasaskan kata laluan dan log masuk sudo, tetapi tidak mahu memasukkan kata laluan SSH dan kata laluan sudo setiap kali anda menjalankan buku main. Sekiranya demikian, bahagian ini sesuai untuk anda.

Untuk menggunakan log masuk SSH berasaskan kata laluan dan log masuk sudo tanpa diminta memasukkan kata laluan, yang harus anda lakukan ialah menambahkan ansible_ssh_pass dan ansible_become_pass pemboleh ubah host atau pemboleh ubah kumpulan dalam fail inventori anda.

Pertama, buka tuan rumah fail inventori, seperti berikut:

hos $ nano

Sekiranya anda mempunyai banyak host dalam fail inventori anda dan setiap host mempunyai kata laluan yang berbeza, kemudian tambahkan ansible_ssh_pass dan ansible_become_pass pemboleh ubah sebagai pemboleh ubah host (selepas setiap tuan rumah) seperti berikut.

Pastikan untuk mengganti rahsia dengan kata laluan SSH dan sudo anda.

Sekiranya semua atau beberapa host mempunyai kata laluan yang sama, maka anda boleh menambahkan ansible_ssh_pass dan ansible_become_pass pemboleh ubah sebagai pemboleh ubah kumpulan, seperti yang ditunjukkan dalam contoh di bawah.

Di sini, saya hanya mempunyai satu hos, jadi saya telah menambah ansible_ssh_pass dan ansible_become_pass pemboleh ubah untuk semua kumpulan (semua hos dalam fail inventori). Tetapi, anda juga boleh menambahkan pemboleh ubah ini untuk kumpulan tertentu yang lain.

Setelah anda selesai menambahkan ansible_ssh_pass dan ansible_become_pass pemboleh ubah dalam tuan rumah fail inventori, simpan tuan rumah fail inventori dengan menekan + X, diikuti oleh Y dan .

Anda sekarang boleh menjalankan askpass2.keladi buku permainan, seperti berikut:

$ ansible-playbook playbook / askpass2.keladi

Seperti yang anda lihat, buku main berjaya dijalankan, walaupun ia tidak meminta kata laluan SSH atau kata laluan sudo.

Jadi, ini adalah cara anda menggunakan sshpass untuk SSH berasaskan kata laluan dan log masuk sudo di Ansible. Terima kasih kerana membaca artikel ini!

Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...
Pasang permainan Strategi OpenRA terkini di Ubuntu Linux
OpenRA adalah mesin permainan Strategi Masa Nyata / Bebas yang mencipta semula permainan Westwood awal seperti Command & Conquer klasik: Makluman Mera...
Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...