GNU/Linux >> Belajar Linux >  >> Linux

Memulai Dengan Perintah Ad Hoc yang Mungkin

Dalam artikel kami sebelumnya, kami telah membahas apa itu file inventaris dan konfigurasi yang memungkinkan yang meletakkan dasar untuk belajar mungkin. Dalam artikel ini, kita akan membahas perintah ad hoc yang memungkinkan dengan beberapa contoh.

Pengantar

Perintah Ad hoc yang memungkinkan sangat bagus saat Anda ingin menjalankan tugas cepat dan tugas yang tidak sering diulang. Biasanya perintah ad hoc ini berupa perintah satu baris yang dapat Anda jalankan langsung dari terminal atau dari skrip shell.

Sebelum mengetahui cara bekerja dengan perintah ad hoc, Anda harus mengetahui apa itu idempoten. Kemungkinan adalah idempoten di alam, artinya terlepas dari berapa kali Anda menjalankan tugas yang sama jika keadaan objek sudah diubah, maka ansible tidak akan mencoba membuat perubahan yang sama lagi pada objek itu.

Perintah ad hoc dikirimkan melalui /usr/bin/ansible program. Anda dapat menjalankan perintah berikut untuk mendapatkan daftar opsi yang didukung untuk perintah yang memungkinkan.

$ mungkin --help

Jika Anda tidak memiliki lab yang memungkinkan untuk dipraktikkan, maka Anda dapat melihat panduan kami tentang cara menyiapkan ansible secara manual serta menggunakan Vagrant dan Virtualbox.

  • Menginstal Dan Mengonfigurasi Ansible Di Linux
  • Pengaturan Lab Otomatis Dengan Vagrant Dan Virtualbox Di Linux

Kenali Target

Sebelum bekerja dengan perintah ad hoc atau menulis pedoman, Anda harus memiliki pemahaman yang jelas tentang persyaratan bisnis dan lingkungan target yang akan Anda gunakan.

Lingkungan target dapat berupa apa saja seperti server, perangkat jaringan, wadah, solusi cloud, dll. yang mendukung. Di sini saya menggunakan dua node terkelola yang menjalankan Ubuntu 20.04.

Anda dapat menjalankan perintah berikut untuk memeriksa daftar host yang akan digunakan saat Anda menjalankan perintah ad hoc atau playbook.

#SYNTAX$ memungkinkan --list-hosts

Nama grup bisa default (semua , tidak dikelompokkan ) atau grup buatan pengguna .

Jika Anda ingin mempelajari lebih lanjut tentang grup, lihat tautan berikut.

  • File Inventaris dan Konfigurasi yang Memungkinkan

Dapatkan daftar host untuk semua grup.

$ memungkinkan semua --list-hostshosts (2):managed1.anslab.com managed2.anslab.com

Dapatkan daftar host untuk grup yang ditentukan pengguna. Di sini nama grup saya adalah ubuntu .

$ ubuntu yang memungkinkan --list-hostshosts (2):managed1.anslab.com managed2.anslab.com

File Inventaris

File Inventaris menyimpan daftar node yang dikelola. Lokasi file inventaris akan dikonfigurasi di ansible.cfg mengajukan. Anda dapat mengganti lokasi file inventaris menggunakan -i atau --inventory tandai saat menjalankan perintah ad hoc.

Saya memiliki dua file inventaris dan file default bernama host. Untuk menggunakan file host2, saya perlu menggunakan -i tandai dan berikan file sebagai argumen.

$ ansible all -i host2 --list-hostshosts (1):managed2.anslab.com

Perhatian: Jika file inventaris berada di lokasi yang berbeda, Anda harus memberikan jalur absolut. Anda dapat merujuk ke tautan berikut untuk mengetahui urutan prioritas untuk file inventaris.

  • File Inventaris dan Konfigurasi yang Memungkinkan

Modul yang Memungkinkan

Ansible adalah alat yang disertakan dengan baterai yang berarti memiliki banyak modul yang dikirimkan bersamanya. Modul adalah program yang ditulis dalam Python yang digunakan oleh memungkinkan untuk dijalankan pada node yang dikelola untuk melakukan tugas. Ansible mengikuti pendekatan plug and play yang berarti Anda dapat menulis modul Anda sendiri dan menjalankannya melalui ansible.

Ansible mendukung banyak paket yang dibuat oleh komunitas sumber terbuka dan vendor produk yang berbeda. Untuk mendapatkan daftar semua modul yang diinstal pada mesin Anda, jalankan perintah berikut.

$ ansible-doc -l # DAFTAR SEMUA MODUL YANG TERSEDIA$ ansible-doc -l | grep -i -w ^apt # GREP PARTICULAR MODULE(APT) MODULE

Untuk melihat dokumentasi modul Anda dapat menjalankan perintah berikut. Di sini saya melihat dokumentasi untuk modul apt yang merupakan modul pengelola paket untuk distribusi berbasis Debian/Ubuntu.

$ ansible-doc apt

Gambar di bawah menunjukkan dokumentasi untuk modul apt yang memungkinkan.

Sintaks Perintah Ad hoc

Ada beberapa masukan yang harus Anda berikan saat menjalankan perintah ad hoc.

  • Anda harus menentukan target (node ​​terkelola). Anda dapat menggunakan grup default "semua/tidak dikelompokkan" atau grup yang ditentukan pengguna.
  • Anda harus meneruskan nama modul sebagai argumen ke -m bendera.
  • Setiap modul menerima serangkaian opsi. Opsi-opsi itu harus diteruskan sebagai argumen ke -a flag. Jika ada beberapa opsi, maka opsi tersebut harus diapit dengan tanda kutip.
$ ansible [grup] -m [modul] -a [argumen modul]

Anda dapat menggabungkan argumen lain yang telah kita lihat di bagian sebelumnya menjadi perintah ad hoc.

Verifikasi Konektivitas Menggunakan Modul Ping

Modul pertama yang Anda jalankan setelah menyiapkan kemungkinan adalah "ping" modul. Modul ping digunakan untuk memverifikasi apakah konektivitas baik-baik saja dengan pengontrol dan node yang dikelola. Jika koneksi berhasil, Anda akan mendapatkan respons sebagai "ping :pong" .

$ memungkinkan semua -m ping

Anda juga dapat menyingkat output dengan menggunakan -o bendera.

$ ansible all -m ping -o

Jalankan Perintah Melalui Modul Shell

Modul cangkang digunakan untuk menjalankan perintah apa pun yang dapat Anda jalankan melalui terminal. Ini seperti menjalankan perintah melalui terminal Linux.

Anda harus menggunakan -a tandai dan berikan perintah sebagai argumen ke modul shell.

$ ansible all -m shell -a "arguments"

Di bawah ini adalah beberapa perintah yang saya jalankan melalui modul shell yang memungkinkan.

$ memungkinkan semua -m Shell -a "echo $USER" 
$ memungkinkan semua -m Shell -a "waktu aktif"
$ ansible all -m shell -a "cat /etc/os-release | grep -i PRETTY_NAME"
$ memungkinkan semua -m shell -a "sentuh /tmp/abc.txt"
$ ansible all -m shell -a "ls -l /tmp/abc.txt"

Alternatif untuk modul shell Anda juga dapat menggunakan modul perintah yang merupakan modul default di ansible. Anda dapat langsung menggunakan -a tandai dan berikan perintah sebagai argumen karena modul perintah adalah modul default.

$ memungkinkan semua -m perintah -a "uptime" # SECARA EKSKLUSIF MELALUI MODUL PERINTAH$ memungkinkan semua -a "uptime" # TIDAK MENGGUNAKAN -m UNTUK LULUS MODUL

Perbedaan antara shell dan modul perintah adalah dengan modul perintah Anda dapat mengakses beberapa variabel khusus dan tidak dapat menggunakan pipa, pengalihan, dan operator logika AND.

Jalankan perintah berikut dan Anda akan mendapatkan kesalahan.

$ ansible all -m command -a "test -f /etc/hosts &&echo 'hosts file present'"

Anda dapat menjalankan perintah yang sama melalui modul shell dan itu akan berjalan dengan baik.

$ ansible all -m shell -a "test -f /etc/hosts &&echo 'hosts file present'"

Jalankan Skrip Melalui Modul Skrip

Saat Anda ingin menjalankan skrip apa pun (python, shell, dll.), Anda dapat menggunakan modul skrip yang akan menyalin skrip dari mesin pengontrol Anda ke semua node yang dikelola, lalu menjalankan skrip tersebut.

Saya memiliki kode python berikut di /tmp saya direktori.

import sys,osprint("CURRENT PYTHON VERSION =", sys.version_info)print("HOSTNAME =", os.uname()[1])print("CURRENT DIRECTORY =", os.getcwd()) 

Jalankan perintah berikut untuk menggunakan modul skrip untuk menjalankan skrip. Modul skrip mendukung argumen tambahan tergantung pada bagaimana Anda menjalankan skrip Anda. Dalam kasus saya, saya menjalankan skrip python jadi saya mencoba meneruskan argumen tambahan "executable=python3" bersama dengan jalur skrip.

$ memungkinkan semua -m skrip -a "/tmp/get_host_details.py executable=python3"

Modul Manajemen Paket

Ada modul untuk bekerja dengan manajer paket OS seperti dnf , apt , pacman , dll. Di sini saya menggunakan apt karena saya menjalankan Ubuntu. Tetapi sintaksnya akan sama untuk semua manajer paket dengan perbedaan parameter. Anda harus melihat dokumentasi masing-masing untuk mengetahui lebih banyak tentangnya.

Untuk menginstal paket, Anda dapat menjalankan perintah berikut dan mengatur status ke "present" . Anda harus memilih -b atau -become tandai untuk menjalankan modul dengan sudo hak istimewa di node yang dikelola. Jika Anda telah menetapkan kata sandi untuk pengguna sudo, maka Anda harus melewati -K bersama dengan -b bendera yang akan meminta menjadi kata sandi.

$ ansible all -m apt -a "name=cowsay,vim,cmatrix state=present" -b -K

Untuk mempelajari cara kerja eskalasi hak istimewa, lihat artikel kami menggunakan tautan di bawah.

  • Otentikasi SSH dan Eskalasi Hak Istimewa yang Memungkinkan

Untuk menghapus paket, Anda dapat menjalankan perintah berikut dan menyetel status ke "absen" .

$ ansible all -m apt -a "name=cowsay,vim,cmatrix state=absent" -b -K

Sampai sekarang saya telah menunjukkan bagaimana menggunakan modul yang berbeda untuk tugas yang berbeda. Ini mungkin memberi Anda pemahaman yang baik tentang cara kerja berbagai hal saat Anda menjalankan perintah ad hoc.

Ada banyak modul lain dan artikel ini tidak akan cukup untuk membahas semuanya. Jadi saya sarankan Anda untuk memilih modul sesuai dengan kasus penggunaan Anda dan mulai berlatih dengan perintah ad hoc.

Warna Keluaran

Saat Anda menjalankan perintah ad hoc, Anda seharusnya melihat output dalam tiga warna berbeda. Setiap warna memiliki arti tersendiri.

RED - FailureYELLOW - Sukses Dengan Perubahan yang terjadiHIJAU - Sukses tetapi tidak ada perubahan yang terjadi

MERAH - Gagal

Jika tugas Anda gagal, maka akan dicetak dengan warna merah.

KUNING - Sukses Dengan Perubahan

Ketika status diatur untuk berubah, maka output akan berwarna kuning.

HIJAU - Sukses Tapi Tidak Ada Perubahan

Ketika status objek tidak diubah, maka output akan berwarna hijau.

Kesimpulan

Pada artikel ini kita telah membahas tentang apa itu perintah ad hoc dan bagaimana menggunakan perintah ad hoc di Ansible. Sebagai pemula, perintah ad hoc akan memberi Anda pemahaman yang baik tentang bagaimana mungkin menggunakan modul untuk mencapai tugas. Pada level berikutnya, Anda akan mulai menulis buku pedoman dalam format YAML yang akan dibahas secara rinci dalam artikel terpisah.

Baca Selanjutnya:

  • Bekerja Dengan Playbook yang Memungkinkan

Sumber daya:

  • https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html
  • https://www.redhat.com/sysadmin/ansible-ad-hoc-commands

Linux
  1. Memulai dengan Zsh

  2. Memulai dengan perintah tac Linux

  3. Cara:Memulai dengan Ansible

  1. Memulai Pengelola File Plesk

  2. Memulai dengan ls

  3. Memulai PostgreSQL di Linux

  1. Memulai dengan GnuCash

  2. Memulai dengan Etcher.io

  3. Memulai dengan ekspresi reguler