GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengunduh dan Menggunakan Ansible Galaxy Roles di Ansible Playbook

Mungkin adalah alat pilihan hari ini jika Anda harus mengelola banyak perangkat, baik itu Linux, Windows, Mac, Perangkat Jaringan, VMware, dan banyak lagi. Apa yang membuat Ansible populer adalah fitur agennya yang lebih sedikit dan kontrol granular. Jika Anda pernah bekerja dengan python atau memiliki pengalaman dengan yaml , Anda akan merasa betah bersama Ansible. Untuk melihat bagaimana Anda dapat menginstal Ansible, klik di sini.

Modul inti yang memungkinkan akan memungkinkan Anda mengelola hampir semua hal jika Anda ingin menulis buku pedoman, namun seringkali ada seseorang yang telah menulis peran untuk masalah yang Anda coba pecahkan. Mari kita ambil contoh, Anda ingin mengelola klien NTP di mesin Linux, Anda memiliki 2 pilihan baik menulis peran yang dapat diterapkan ke node atau menggunakan ansible-galaxy untuk mengunduh peran yang sudah ada yang telah ditulis/diuji oleh seseorang untuk Anda. Galaksi yang mungkin memiliki peran untuk hampir semua domain dan ini melayani masalah yang berbeda. Anda dapat mengunjungi https://galaxy.ansible.com/ untuk mendapatkan ide tentang domain dan peran populer yang dimilikinya. Setiap peran yang dipublikasikan di repositori galaxy diuji secara menyeluruh dan telah dinilai oleh pengguna, sehingga Anda mendapatkan gambaran tentang bagaimana orang lain yang telah menggunakannya menyukainya.

Untuk terus bergerak dengan ide NTP, berikut adalah cara Anda dapat mencari dan menginstal peran NTP dari galaksi.

Pertama, mari jalankan ansible-galaxy dengan flag bantuan untuk memeriksa opsi apa yang diberikannya kepada kita

[[email protected] ~]# ansible-galaxy --help

Seperti yang Anda lihat dari output di atas, ada beberapa opsi menarik yang ditampilkan, karena kami mencari peran untuk mengelola klien ntp, mari coba opsi pencarian untuk melihat seberapa bagusnya menemukan apa yang kami cari.

[[email protected] ~]# ansible-galaxy search ntp

Berikut adalah output terpotong dari perintah di atas.

Itu menemukan 341 kecocokan berdasarkan pencarian kami, seperti yang Anda lihat dari output di atas, banyak dari peran ini bahkan tidak terkait dengan NTP yang berarti pencarian kami membutuhkan beberapa perbaikan, namun telah berhasil menarik beberapa peran NTP, mari gali lebih dalam untuk melihat apa peran-peran ini. Tetapi sebelum itu izinkan saya memberi tahu Anda konvensi penamaan yang diikuti di sini. Nama role selalu didahului dengan nama pengarang sehingga memudahkan untuk memisahkan role dengan nama yang sama. Jadi, jika Anda telah menulis peran NTP dan telah memublikasikannya ke galaxy repo, itu tidak akan tercampur dengan repo orang lain dengan nama yang sama.

Dengan menyingkir, mari lanjutkan tugas kita menginstal peran NTP untuk mesin Linux kita. Ayo coba bennojoy.ntp untuk contoh ini, tetapi sebelum menggunakan ini, kita perlu mencari tahu beberapa hal, apakah peran ini kompatibel dengan versi yang mungkin saya jalankan. Juga, apa status lisensi peran ini. Untuk mengetahuinya, mari kita jalankan di bawah perintah ansible-galaxy,

[[email protected] ~]# ansible-galaxy info bennojoy.ntp

ok jadi ini mengatakan versi minimumnya adalah 1.4 dan lisensinya adalah BSD, mari unduh

[[email protected] ~]# ansible-galaxy install bennojoy.ntp
- downloading role 'ntp', owned by bennojoy
- downloading role from https://github.com/bennojoy/ntp/archive/master.tar.gz
- extracting bennojoy.ntp to /etc/ansible/roles/bennojoy.ntp
- bennojoy.ntp (master) was installed successfully
[[email protected] ~]# ansible-galaxy list
- bennojoy.ntp, master
[[email protected] ~]#

Mari temukan peran yang baru diinstal.

[[email protected] ~]# cd /etc/ansible/roles/bennojoy.ntp/
[[email protected] bennojoy.ntp]# ls -l
total 4
drwxr-xr-x. 2 root root   21 May 21 22:38 defaults
drwxr-xr-x. 2 root root   21 May 21 22:38 handlers
drwxr-xr-x. 2 root root   48 May 21 22:38 meta
-rw-rw-r--. 1 root root 1328 Apr 20  2016 README.md
drwxr-xr-x. 2 root root   21 May 21 22:38 tasks
drwxr-xr-x. 2 root root   24 May 21 22:38 templates
drwxr-xr-x. 2 root root   55 May 21 22:38 vars
[[email protected] bennojoy.ntp]#

Saya akan menjalankan peran yang baru diunduh ini pada simpul Elasticsearch CentOS saya. Ini file host saya

[[email protected] ~]# cat hosts
[CentOS]
elastic7-01 ansible_host=192.168.1.15 ansibel_port=22 ansible_user=linuxtechi
[[email protected] ~]#

Mari kita coba melakukan ping ke node menggunakan modul ping yang memungkinkan di bawah ini,

[[email protected] ~]# ansible -m ping -i hosts elastic7-01
elastic7-01 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[[email protected] ~]#

Berikut adalah tampilan ntp.conf saat ini pada simpul elastis.

[[email protected] ~]# head -30 /etc/ntp.conf

Karena saya di India, mari tambahkan server in.pool.ntp.org ke ntp.conf. Saya harus mengedit variabel di direktori default peran.

[[email protected] ~]# vi /etc/ansible/roles/bennojoy.ntp/defaults/main.yml

Ubah alamat server NTP pada parameter “ntp_server”, setelah diupdate akan terlihat seperti di bawah ini.

Hal terakhir sekarang adalah membuat buku pedoman saya yang akan menyebut peran ini.

[[email protected] ~]# vi ntpsite.yaml
---
 - name: Configure NTP on CentOS/RHEL/Debian System
   become: true
   hosts: all
   roles:
    - {role: bennojoy.ntp}

simpan dan keluar dari file

Kami siap menjalankan peran ini sekarang, gunakan perintah di bawah ini untuk menjalankan ntp playbook,

[[email protected] ~]# ansible-playbook -i hosts ntpsite.yaml

Output dari ntp ansible playbook di atas harus seperti di bawah ini,

Mari kita periksa file yang diperbarui sekarang. pergi ke elastic node dan lihat isi file ntp.conf

[[email protected] ~]# cat /etc/ntp.conf
#Ansible managed

driftfile /var/lib/ntp/drift
server in.pool.ntp.org

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
[[email protected] ~]#

Untuk berjaga-jaga jika Anda tidak menemukan peran yang memenuhi kebutuhan Anda, galaksi yang memungkinkan dapat membantu Anda membuat struktur direktori untuk peran khusus Anda. Ini membantu buku pedoman Anda bersama dengan variabel, penangan, templat, dll yang dirakit dalam struktur file standar. Mari kita buat peran kita sendiri, selalu merupakan praktik yang baik untuk membiarkan ansible-galaxy membuat struktur untuk Anda.

[[email protected] ~]# ansible-galaxy init pk.backup
- pk.backup was created successfully
[[email protected] ~]#

Verifikasi struktur peran Anda menggunakan perintah pohon,

Izinkan saya menjelaskan dengan cepat untuk apa masing-masing direktori dan file ini, masing-masing memiliki tujuan.

Yang pertama adalah default direktori yang berisi file yang berisi variabel dengan mengambil prioritas terendah, jika variabel yang sama ditugaskan di direktori var itu akan didahulukan dari default. Penangan direktori menghosting penangan. Berkas dan templat simpan file apa pun yang mungkin perlu disalin oleh peran Anda dan templat jinja untuk digunakan dalam buku pedoman masing-masing. Tugas direktori adalah tempat buku pedoman Anda yang berisi tugas disimpan. Direktori var terdiri dari semua file yang menampung variabel yang digunakan dalam peran. Direktori pengujian terdiri dari inventaris sampel dan buku pedoman pengujian yang dapat digunakan untuk menguji peran. direktori meta terdiri dari dependensi apa pun pada peran lain bersama dengan informasi kepengarangan.

Terakhir, README.md file hanya terdiri dari beberapa informasi umum seperti deskripsi dan versi minimum yang memungkinkan peran ini kompatibel.


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Cara Menginstal dan Menggunakan Ansible di Debian 11

  3. Cara menggunakan Ansible untuk menginstal dan mengkonfigurasi Redis 6 di Debian 11

  1. Playbook yang Mungkin:Cara Membuat dan Mengonfigurasi Playbook

  2. Cara membuat Playbook yang Mungkin

  3. Seri Ansible RHCE #9:Peran yang Mungkin

  1. Cara Menggunakan Tag di Ansible Playbook (Contoh)

  2. Cara Menjalankan dan Menjadwalkan Playbook yang Memungkinkan Menggunakan AWX GUI

  3. Cara Menggunakan Variabel dalam Ansible Playbook