Cara Mengkonfigurasi Nod Diurus Ansible dan Jalankan Perintah Ad -Hoc - Bahagian 3

Cara Mengkonfigurasi Nod Diurus Ansible dan Jalankan Perintah Ad -Hoc - Bahagian 3

Dalam dua artikel sebelumnya siri ini, kami telah menerangkan komponen teras Ansible dan menubuhkan nod kawalan ansible. Dalam Bahagian 3 ini, kami akan menunjukkan bagaimana anda boleh mengkonfigurasi nod yang diurus oleh Ansible untuk menjalankan arahan ad-hoc pada tuan rumah jauh.

Persediaan Pengesahan SSH Tanpa Kata Laluan ke nod yang diurus oleh Ansible

Sebagai rekap pada topik terakhir kami, menguruskan tuan rumah jauh dengan Ansible memerlukan penubuhan pengesahan SSH tanpa kata laluan antara nod kawalan Ansible dan tuan rumah yang diuruskan. Ini melibatkan penjanaan pasangan utama (pasangan kunci SSH awam dan swasta) pada nod kawalan ansible dan menyalin kunci awam kepada semua tuan rumah jauh. Ini akan menjadi langkah penting yang akan berlaku dan akan menjadikan kerja anda lebih mudah.

Konfigurasikan peningkatan keistimewaan pada nod yang diuruskan

Semasa log masuk sebagai pengguna biasa, anda mungkin dikehendaki melaksanakan tugas tertentu pada nod yang diuruskan yang memerlukan keistimewaan atau keistimewaan akar yang tinggi. Tugas -tugas ini termasuk pengurusan pakej, menambah pengguna & kumpulan baru, dan mengubah suai konfigurasi sistem untuk disebutkan hanya tetapi beberapa. Untuk mencapai matlamat ini, anda perlu memanggil arahan tertentu dalam buku main untuk menjalankan tugas sebagai pengguna istimewa di tuan rumah jauh.

menjadi

Ansible membolehkan anda 'menjadi' pengguna lain di nod yang diuruskan berbeza dari yang sedang dilog masuk. The Menjadi: Ya Arahan meningkatkan keistimewaan anda dan membolehkan anda melaksanakan tugas yang memerlukan keistimewaan root seperti memasang dan mengemas kini pakej dan memulihkan sistem.

Pertimbangkan buku main httpd.yml yang memasang dan memulakan webserver Apache seperti yang ditunjukkan:

--- - Nama: Pasang dan Mula Apache Webserver Hosts: Webservers Tasks: - Nama: Pasang Httpd Yum: Name = Httpd State = Terkini Menjadi: Ya - Nama: Semak Perkhidmatan Status Httpd: Nama = Httpd State = Bermula 

The Menjadi: Ya Arahan ini membolehkan anda melaksanakan arahan sebagai pengguna root pada hos jauh.

menjadi_user

Arahan lain yang boleh anda gunakan untuk menjadi pengguna lain adalah menjadi_user. Ini membolehkan anda beralih kepada pengguna sudo pada hos terpencil apabila masuk dan bukan pengguna yang anda log masuk sebagai.

Contohnya, untuk menjalankan arahan sebagai Tecmint pengguna di alat kawalan jauh Gunakan arahan seperti yang ditunjukkan.

- Nama: Jalankan Perintah sebagai Perintah Pengguna Apache: SomeCommand Menjadi: Ya menjadi_user: Tecmint 

menjadi_method

Arahan ini akan mengatasi kaedah lalai yang ditetapkan ansible.cfg fail yang biasanya ditetapkan ke sudo.

menjadi_flags

Ini digunakan pada tahap permainan atau tugas, misalnya apabila anda perlu beralih kepada pengguna apabila shell ditetapkan ke nologin.

Sebagai contoh,

- Nama: Jalankan Perintah Sebagai Perintah Tidak Ada: SomeCommand Menjadi: Benar Be_method: Su Be_User: Tiada siapa yang menjadi_flags: '-s /bin /sh' 

Pilihan baris arahan dalam peningkatan keistimewaan

Mari kita lihat beberapa pilihan baris arahan yang boleh anda gunakan untuk meningkatkan keistimewaan anda semasa menjalankan arahan:

  • --Ask-Become-Pass, -K - Ini mendorong anda untuk kata laluan pengguna sudo pada sistem jauh yang anda cuba sambungkan.
$ ansible-playbook myplaybook.YML --k-become-pass 
Ansible menjadi lulus
  • --menjadi, -b - Ini membolehkan anda menjalankan tugas sebagai pengguna root tanpa meminta kata laluan.
$ ansible-playbook myplaybook.YML - -Become 
  • --menjadi pengguna = menjadi_user - Ia membolehkan anda menjalankan tugas sebagai pengguna lain.
$ ansible-playbook myplaybook.YML--Become-user = Tecmint 
Ansible menjadi pengguna

Mengesahkan konfigurasi kerja menggunakan arahan ad-hoc ansible

Kadang -kadang, anda mungkin mahu melaksanakan tugas cepat dan mudah pada tuan rumah atau pelayan jauh di Ansible tanpa perlu membuat buku main. Dalam kes itu, anda perlu menjalankan ad hoc perintah.

Apa itu perintah adhoc?

Ansible perintah ad-hoc adalah arahan satu baris yang membantu anda melaksanakan tugas mudah dengan cara yang sederhana namun efisien tanpa perlu membuat buku main. Tugas tersebut termasuk menyalin fail antara tuan rumah, pelayan reboot, menambah & mengeluarkan pengguna dan memasang satu pakej.

Dalam tutorial ini, kami meneroka pelbagai aplikasi perintah ad-hoc ansible. Kami akan menggunakan fail inventori di bawah untuk demonstrasi.

[Webservers] 173.82.115.165 [Database_Servers] 173.82.202.239 

Penggunaan asas arahan adhoc

Penggunaan yang paling asas bagi arahan Ansible-ADHOC adalah ping tuan rumah atau sekumpulan tuan rumah.

# ansible -m ping semua 

Dalam perintah di atas, -m Parameter adalah pilihan modul. Ping adalah arahan adhoc dan parameter kedua semuanya mewakili semua tuan rumah dalam fail inventori. Output arahan ditunjukkan di bawah:

Ansible ping semua tuan rumah

Ke ping, kumpulan tuan rumah tertentu, menggantikannya 'semua' parameter dengan nama kumpulan. Dalam contoh di bawah, kami sedang menguji sambungan dengan tuan rumah di bawah kumpulan webservers.

# Ansible -m Ping Webservers 
Kumpulan Ping Host Ansible

Di samping itu, anda boleh menggunakan -a atribut untuk menentukan arahan Linux biasa dalam tanda petikan berganda. Sebagai contoh, untuk menyemak sistem uptime sistem jauh, jalankan:

# ansible -a "uptime" semua 
Ansible check uptime host jauh

Untuk memeriksa penggunaan cakera tuan rumah jauh.

# ansible -a "df -th" semua 
Penggunaan cakera cek ansible dari tuan rumah jauh

Terdapat beratus -ratus beratus -ratus modul yang boleh anda gunakan dengan arahan adhoc. Untuk melihat keseluruhan senarai modul dengan deskripsi mereka, jalankan arahan di bawah.

# ansible -doc -l 

Untuk melihat maklumat terperinci mengenai modul tertentu, jalankan arahan.

# ansible-doc module_name 

Contohnya, untuk mencari maklumat lanjut mengenai Modul Yum Jalankan:

# ansible-doc yum 
Modul periksa yum ansible

Menguruskan pakej / perkhidmatan dengan Ansible

Perintah adhoc ansible boleh digunakan untuk pemasangan dan penyingkiran pakej menggunakan yum dan Apt Pengurus Pakej.

Untuk memasang pelayan web Apache di Centos 7 Hos di bawah kumpulan Webservers dalam fail inventori menjalankan arahan:

# Ansible Webservers -m yum -a "name = httpd state = present" 
Ansible Pasang Apache pada tuan rumah jauh

Untuk mengesahkan pemasangan pelayan web Apache, log masuk ke klien jauh dan lari.

# rpm -qa | GREP HTTPD 
Sahkan pemasangan Apache

Untuk menyahpasang Apache, mengubah keadaan mudah dari keadaan dari hadir ke tidak hadir.

# Ansible Webservers -m yum -a "name = httpd state = absent" 
Ansible keluarkan apache

Sekali lagi, untuk mengesahkan penyingkiran httpd run.

# rpm -qa | GREP HTTPD 
Sahkan penyingkiran Apache

Seperti yang diperhatikan, pakej pelayan web Apache telah dibersihkan.

Membuat pengguna dan kumpulan menggunakan Ansible

Semasa membuat pengguna, 'penggunaModul 'berguna. Untuk membuat pengguna baru James dengan kata laluan topi merah mengenai sistem pelanggan database_server, mengeluarkan arahan.

# ansible database_server -m user -a "name = james password = redhat" 
Ansible Buat pengguna pada tuan rumah jauh

Untuk mengesahkan penciptaan pengguna baru, jalankan arahan:

# Ansible Database_Servers -A "ID James" 
Mengesahkan penciptaan pengguna

Untuk mengalih keluar pengguna, jalankan arahan:

# ansible database_servers -m user -a "name = James state = absent" 
Ansible Buang pengguna

Peningkatan keistimewaan

Sekiranya anda menjalankan Ansible sebagai pengguna biasa, Ansible memberikan peningkatan keistimewaan dalam tuan rumah jauh menggunakan --menjadi pilihan untuk memperoleh keistimewaan root dan -k Untuk meminta kata laluan.

Sebagai contoh, untuk menjalankan perintah adhoc ansible 'netstat -pnltu'Dengan pilihan istimewa --menjadi dan pilihan -K untuk meminta kata laluan pengguna root untuk menjalankan arahan.

$ Ansible Webservers -m shell -a 'netstat -pnltu' --become -k 
Ansible Privilege Escalation

Untuk menjadi pengguna lain selain akar, gunakan --menjadi pengguna atribut.

Contohnya untuk menjalankan 'df -th'as Tecmint pengguna di hos jauh dan meminta kata laluan yang dijalankan:

$ ansible all -m shell -a 'df -th' --become -user tecmint -k 
Ansible menjadi pengguna lain

Mengumpulkan fakta mengenai sistem tuan rumah

Fakta Rujuk maklumat terperinci mengenai sistem. Ini termasuk maklumat mengenai alamat IP, seni bina sistem, memori, dan CPU untuk menyebut beberapa.

Untuk mendapatkan maklumat mengenai tuan rumah jauh, jalankan arahan:

$ ansible all -m persediaan 
Ansible mengumpul fakta sistem

Fail pemindahan / salinan fail

Ansible menggunakan modul salinan dengan selamat menyalin fail dari kawalan ansible ke pelbagai tuan rumah jauh.

Berikut adalah contoh operasi salinan:

# Ansible Webservers -m Copy -a "src =/var/log/selamat Dest =/tmp/" 
Fail salinan ansible ke hos jauh

Perintah itu menyalin /var/log/selamat fail dalam nod kawalan ansible ke tuan rumah jauh di kumpulan webservers di /TMP destinasi.

Anda boleh menggunakan modul fail Untuk menukar kebenaran dan pemilikan fail.

# Ansible Webservers -m File -a "DEST =/TMP/Mode Secure = 600" 
Kebenaran Fail Perubahan Ansible

Di samping itu, anda boleh menambahkan hujah pemilik dan kumpulan seperti yang ditunjukkan:

# Ansible Webservers -m File -a "Dest =/tmp/Secure Mode = 600 pemilik = Tecmint Group = Tecmint" 
Atribut pengguna dan kumpulan tambahan

Anda juga boleh membuat direktori, dengan cara yang sama dengan mkdir -p seperti yang ditunjukkan.

$ Ansible Webservers -m File -a "Dest =/Path/To/Directory Mode = 755 pemilik = Tecmint Group = Tecmint State = Direktori" 

Sebagai contoh,

$ Ansible Webservers -m File -a "Dest =/Home/Tecmint/Data Mode = 755 Pemilik = Tecmint Group = Tecmint State = Direktori" 
Ansible buat direktori
Kesimpulan

Dalam artikel ini, kami memberi penjelasan mengenai bagaimana anda boleh mengkonfigurasi nod yang dikendalikan untuk menjalankan perintah ad-hoc yang boleh dikendalikan untuk menguruskan tuan rumah jauh. Kami harap anda dapati ia berguna. Beri pukulan dan beritahu kami bagaimana keadaannya.