Cara mengonfigurasi node yang dikelola ansible dan menjalankan perintah ad -hoc - Bagian 3

Cara mengonfigurasi node yang dikelola ansible dan menjalankan perintah ad -hoc - Bagian 3

Dalam dua artikel sebelumnya dari serial ansible ini, kami telah menjelaskan komponen inti dari ansible dan menyiapkan node kontrol ansible. Di bagian 3 ini, kami akan menunjukkan bagaimana Anda dapat mengonfigurasi node yang dikelola yang tidak dapat dikelola untuk menjalankan perintah ad-hoc pada host jarak jauh.

Mengatur otentikasi SSH tanpa kata sandi ke node yang dikelola ansible

Sebagai rekap pada topik terakhir kami, mengelola host jarak jauh dengan ansible membutuhkan pengaturan otentikasi SSH tanpa kata sandi antara node kontrol ansible dan host yang dikelola. Ini melibatkan generasi pasangan kunci (pasangan kunci SSH publik dan swasta) pada node kontrol ansible dan menyalin kunci publik ke semua host jarak jauh. Ini akan menjadi langkah penting ke depan dan akan membuat pekerjaan Anda lebih mudah.

Konfigurasikan Eskalasi Hak istimewa pada node yang dikelola

Saat masuk sebagai pengguna biasa, Anda mungkin diminta untuk melakukan tugas -tugas tertentu pada node yang dikelola yang memerlukan hak istimewa yang ditinggikan atau hak istimewa root. Tugas -tugas ini termasuk manajemen paket, menambahkan pengguna & grup baru, dan memodifikasi konfigurasi sistem untuk menyebutkan tetapi beberapa. Untuk mencapai hal ini, Anda perlu memohon arahan tertentu dalam buku pedoman untuk menjalankan tugas sebagai pengguna istimewa di host jarak jauh.

menjadi

Ansible memungkinkan Anda untuk melakukannya 'menjadi' Pengguna lain di simpul yang dikelola berbeda dari yang saat ini masuk. Itu Menjadi: Ya Petunjuk meningkatkan hak istimewa Anda dan memungkinkan Anda untuk melakukan tugas yang memerlukan hak istimewa root seperti menginstal dan memperbarui paket dan mem -boot ulang sistem.

Pertimbangkan buku pedoman httpd.YML yang menginstal dan memulai server web apache seperti yang ditunjukkan:

--- - Nama: Instal dan Mulai Apache Webserver Hosts: WebServers Tugas: - Nama: Instal httpd yum: name = httpd state = terbaru Menjadi: Ya - Nama: Periksa Layanan Status HTTPD: Nama = httpd state = dimulai 

Itu Menjadi: Ya Petunjuk memungkinkan Anda untuk menjalankan perintah sebagai pengguna root di host jarak jauh.

menjadi_user

Petunjuk lain yang dapat Anda gunakan untuk menjadi pengguna lain adalah menjadi_user. Ini memungkinkan Anda untuk beralih ke pengguna sudo di host jarak jauh saat masuk dan bukan pengguna yang Anda masuk sebagai.

Misalnya, untuk menjalankan perintah sebagai tecmint Pengguna di remote menggunakan arahan seperti yang ditunjukkan.

- Nama: Jalankan Perintah sebagai Perintah Pengguna Apache: Somecommand Menjadi: Ya menjadi_user: tecmint 

menjadi_method

Petunjuk ini akan mengesampingkan metode default yang diatur semu.CFG file yang biasanya diatur ke sudo.

menjadi_flags

Ini digunakan saat bermain atau tingkat tugas, misalnya ketika Anda perlu beralih ke pengguna saat shell diatur ke nologin.

Misalnya,

- Nama: Jalankan perintah sebagai tidak ada perintah: somecommand menjadi: true menjadi_method: su menjadi_user: tidak ada yang menjadi_flags: '-s /bin /sh' 

Opsi baris perintah dalam eskalasi hak istimewa

Mari kita lihat beberapa opsi baris perintah yang dapat Anda gunakan untuk meningkatkan hak istimewa Anda saat menjalankan perintah:

  • --tanyakan-become-pass, -K - Ini meminta Anda untuk kata sandi pengguna sudo di sistem jarak jauh yang Anda coba hubungkan.
$ ansible-playbook myplaybook.YML --Aks-Become-pass 
Ansible menjadi lulus
  • --menjadi, -B - Ini memungkinkan Anda menjalankan tugas sebagai pengguna root tanpa meminta kata sandi.
$ ansible-playbook myplaybook.YML - -Become 
  • --menjadi pengguna = menjadi_user - Ini memungkinkan Anda untuk menjalankan tugas sebagai pengguna lain.
$ ansible-playbook myplaybook.yml ---become-user = tecmint 
Ansible menjadi pengguna

Validasi konfigurasi kerja menggunakan perintah ad-hoc ansible

Terkadang, Anda mungkin ingin melakukan tugas cepat dan sederhana pada host jarak jauh atau server di Ansible tanpa harus membuat buku pedoman. Dalam hal ini, Anda harus menjalankan AD hoc memerintah.

Apa itu perintah ADHOC?

Sebuah ansible Perintah ad-hoc adalah perintah satu baris yang membantu Anda menjalankan tugas sederhana dengan cara yang sederhana namun efisien tanpa perlu membuat buku pedoman. Tugas semacam itu termasuk menyalin file antar host, reboot server, menambahkan & menghapus pengguna dan menginstal satu paket.

Dalam tutorial ini, kami mengeksplorasi berbagai aplikasi perintah ad-hoc ansible. Kami akan menggunakan file inventaris di bawah untuk demonstrasi.

[Webservers] 173.82.115.165 [database_server] 173.82.202.239 

Penggunaan Dasar Perintah ADHOC

Penggunaan paling mendasar dari perintah ansible-adhoc adalah ping host atau sekelompok host.

# ansible -m ping all 

Dalam perintah di atas, -M Parameter adalah opsi modul. Ping adalah perintah ADHOC dan parameter kedua semuanya mewakili semua host dalam file inventaris. Output perintah ditampilkan di bawah ini:

Ansible Ping All Hosts

Ke ping, sekelompok host tertentu, ganti 'semua' parameter dengan nama grup. Dalam contoh di bawah ini, kami menguji konektivitas dengan host di bawah grup webserver.

# Ansible -M Webservers Ping 
Kelompok host ping ansible

Selain itu, Anda dapat menggunakan -A atribut untuk menentukan perintah linux reguler dalam tanda kutip ganda. Misalnya, untuk memeriksa sistem uptime sistem jarak jauh, jalankan:

# ansible -a "uptime" all 
Waktu periksa host jarak jauh Ansible

Untuk memeriksa penggunaan disk host jarak jauh.

# ansible -a "df -th" all 
Ansible check disk penggunaan host jarak jauh

Ada ratusan dari ratusan modul yang dapat Anda gunakan dengan perintah ADHOC. Untuk melihat seluruh daftar modul dengan deskripsi mereka, jalankan perintah di bawah ini.

# ansible -doc -l 

Untuk melihat informasi terperinci tentang modul tertentu, jalankan perintah.

# ansible-doc module_name 

Misalnya, untuk mencari detail lebih lanjut tentang modul yum berlari:

# Ansible-Doc Yum 
Periksa modul yum

Mengelola Paket / Layanan dengan Ansible

Perintah ADHOC ansible dapat digunakan untuk instalasi dan penghapusan paket menggunakan yum Dan tepat Manajer Paket.

Untuk menginstal server web Apache di Centos 7 Host di bawah grup WebServer dalam file inventaris menjalankan perintah:

# Ansible WebServers -M yum -a "name = httpd state = present" 
Instal Apache yang dapat dijalankan pada host jarak jauh

Untuk memverifikasi instalasi server web Apache, masuk ke klien jarak jauh dan jalankan.

# RPM -QA | grep httpd 
Konfirmasi Instalasi Apache

Untuk menghapus instalan Apache, mengubah keadaan dari negara bagian dari hadiah ke absen.

# Ansible WebServers -M yum -a "name = httpd state = absen" 
Ansible hapus Apache

Sekali lagi, untuk mengkonfirmasi penghapusan httpd run.

# RPM -QA | grep httpd 
Konfirmasi Penghapusan Apache

Seperti yang diamati, paket server web Apache telah dibersihkan.

Membuat pengguna dan grup menggunakan ansible

Saat membuat pengguna, 'pengguna'Modul sangat berguna. Untuk membuat pengguna baru James dengan kata sandi topi merah Di Sistem Klien Database_Server, mengeluarkan perintah.

# ansible database_server -m pengguna -a "name = James Password = redhat" 
Ansible Buat pengguna di host jarak jauh

Untuk mengonfirmasi pembuatan pengguna baru, jalankan perintah:

# Ansible Database_Server -A "ID James" 
Ansible Confirm Creation Pengguna

Untuk menghapus pengguna, jalankan perintah:

# ansible database_servers -m pengguna -a "name = James state = absen" 
Hapus pengguna yang tidak dapat dimengerti

Eskalasi hak istimewa

Jika Anda menjalankan ansible sebagai pengguna biasa, Ansible memberikan eskalasi hak istimewa di host jarak jauh menggunakan --menjadi opsi untuk memperoleh hak istimewa dan -k untuk meminta kata sandi.

Misalnya, untuk menjalankan perintah ADHOC ansible 'netstat -pnltu'dengan opsi istimewa --menjadi dan opsi -K untuk meminta kata sandi pengguna root untuk menjalankan perintah.

$ ansible webservers -m shell -a 'netstat -pnltu' ---become -k 
Eskalasi Hak Hak Hak Hak Hak Hikmah

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

Misalnya untuk menjalankan 'df -th' sebagai tecmint Pengguna di host jarak jauh dan meminta untuk menjalankan kata sandi:

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

Mengumpulkan fakta tentang sistem host

Fakta Lihat informasi terperinci tentang suatu sistem. Ini termasuk informasi tentang alamat IP, arsitektur sistem, memori, dan CPU untuk menyebutkan beberapa.

Untuk mengambil informasi tentang host jarak jauh, jalankan perintah:

$ ansible all -m pengaturan 
Fakta sistem pengumpulan sistem yang tidak dapat dikumpulkan

File Transfer / Salin File

Ansible menggunakan modul menyalin untuk secara aman menyalin file dari kontrol ansible ke beberapa host jarak jauh.

Di bawah ini adalah contoh operasi salinan:

# Ansible WebServers -m Copy -a "Src =/Var/Log/Secure Dest =/Tmp/" 
File salin ansible ke host jarak jauh

Perintah salinan /var/log/aman file di node kontrol ansible ke host jarak jauh di grup webserver di /tmp tujuan.

Anda dapat menggunakan modul file untuk mengubah izin dan kepemilikan file.

# Ansible WebServers -M File -a "Dest =/TMP/Secure Mode = 600" 
Ansible mengubah izin file

Selain itu, Anda dapat menambahkan argumen pemilik dan grup seperti yang ditunjukkan:

# Ansible WebServers -M File -a "Dest =/TMP/Secure Mode = 600 Owner = TecMint Group = TecMint" 
Atribut pengguna dan grup yang dapat ditambahkan

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

$ ansible webservers -m file -a "dest =/path/to/directory mode = 755 pemilik = tecmint group = tecmint state = direktori" 

Misalnya,

$ ansible webservers -m file -a "dest =/home/tecmint/mode data = 755 pemilik = tecmint group = tecmint state = direktori" 
Ansible membuat direktori
Kesimpulan

Dalam artikel ini, kami menjelaskan bagaimana Anda dapat mengonfigurasi node yang dikelola untuk menjalankan perintah ad-hoc yang dapat dikelola untuk mengelola host jarak jauh. Kami berharap Anda merasa berguna. Mencobanya dan beri tahu kami bagaimana hasilnya.