Cara mengonfigurasi node yang dikelola ansible dan menjalankan perintah ad -hoc - Bagian 3
- 954
- 166
- Ricardo Gottlieb
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-passAnsible 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 = tecmintAnsible 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:
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 PingKelompok 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" allWaktu periksa host jarak jauh Ansible
Untuk memeriksa penggunaan disk host jarak jauh.
# ansible -a "df -th" allAnsible 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 YumPeriksa 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 httpdKonfirmasi 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 httpdKonfirmasi 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 -kEskalasi 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 -kAnsible 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 pengaturanFakta 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.
- « Cara Menginstal dan Menggunakan MS SQL Server di Linux
- Cara menginstal konsol web kokpit di rhel 8 »