GNU/Linux >> Belajar Linux >  >> Linux

Cara Membuat Peran yang Mungkin dan Menggunakannya di Playbook

Ansible adalah alat manajemen konfigurasi dan orkestrasi opensource yang memudahkan untuk mengotomatisasi tugas-tugas TI di lingkungan TI multi-tingkat. Dengan satu perintah, Anda dapat mengonfigurasi beberapa server dan menyebarkan aplikasi tanpa masuk ke masing-masing server dan melakukan konfigurasi sendiri. Dengan demikian, Ansible menyederhanakan tugas yang seharusnya memakan waktu dan membosankan.

Dengan peningkatan jumlah file playbook yang menjalankan berbagai tugas otomatisasi, segalanya bisa menjadi sedikit rumit. Dan di situlah peran Ansible masuk.

Apa itu peran Ansible?

Peran yang memungkinkan adalah konsep dalam Ansible yang berhubungan dengan ide daripada peristiwa. Pada dasarnya, peran adalah tingkat abstraksi yang digunakan untuk menyederhanakan bagaimana file buku pedoman ditulis. Peran menyediakan kerangka untuk komponen yang dapat digunakan kembali seperti variabel, modul, tugas, dan fakta yang dapat dimuat ke file Playbook.

Aplikasi praktis

Untuk mendapatkan pemahaman yang lebih baik tentang bagaimana peran digunakan, mari kita pertimbangkan skenario di mana Anda memiliki 8 tugas yang harus dilakukan pada 2 node jarak jauh. Salah satu pendekatannya adalah dengan mendefinisikan semua tugas yang akan dieksekusi pada host jarak jauh pada satu file buku pedoman. Namun, ini membosankan dan kemungkinan besar akan menambah kompleksitas buku pedoman. Pendekatan yang lebih baik adalah membuat 8 peran terpisah di mana setiap peran akan melakukan satu tugas dan kemudian memanggil peran ini dalam file buku pedoman yang memungkinkan.

Salah satu manfaat paling banyak menggunakan peran adalah bahwa setiap peran tidak tergantung pada yang lain. Eksekusi satu peran tidak tergantung pada eksekusi peran lain. Selain itu, peran dapat dimodifikasi dan digunakan kembali sehingga menghilangkan kebutuhan untuk menulis ulang drama dan tugas di file Playbook.

Jadi, anggaplah Anda ingin membuat file playbook untuk menginstal tumpukan LAMP di server Debian. Cara yang lebih baik untuk melakukan ini adalah memulai dengan membuat 3 peran terpisah di mana masing-masing akan menginstal Apache, MariaDB, dan PHP masing-masing pada host jarak jauh. Kemudian tulis playbook dan panggil peran dalam file playbook. Misalkan Anda memiliki server Debian kedua yang Anda perlukan untuk menginstal Drupal CMS. Alih-alih menulis ulang peran lagi, Anda cukup menggunakan kembali 3 peran yang Anda buat sebelumnya dan menambahkan peran lain untuk menginstal Drupal.

Anda mengerti?

Sekarang mari kita lihat bagaimana Anda dapat membuat peran Ansible.

Cara membuat peran yang memungkinkan

Untuk membuat peran yang memungkinkan dari awal, jalankan perintah galaksi yang memungkinkan, contoh ditunjukkan di bawah ini:

$ ansible-galaxy init role-name

Misalnya, untuk membuat peran yang disebut peran saya, jalankan perintah.

$ ansible-galaxy init my-role

Dari layar di atas, perintah membuat direktori peran saya. Direktori peran ini berisi direktori atau folder berikut secara default.

  • Folder 'default' – Ini berisi variabel default yang akan digunakan oleh peran.
  • Folder 'file' – Berisi file yang dapat digunakan oleh peran.
  • Folder 'penangan' – Menyimpan penangan yang dapat digunakan oleh peran ini.
  • folder 'meta' – Berisi file yang menetapkan dependensi peran.
  • Folder 'tasks' – Ini berisi file YAML yang menjelaskan tugas untuk peran itu sendiri. Biasanya, ini adalah file main.yml.
  • Folder 'template' – Berisi file template yang dapat dimodifikasi dan dialokasikan ke host jarak jauh yang disediakan.
  • Folder 'tes' – Mengintegrasikan pengujian dengan file playbook Ansible.
  • Folder 'vars' – Berisi variabel yang akan digunakan oleh peran. Anda dapat mendefinisikannya di file playbook, tetapi Anda disarankan untuk mendefinisikannya di direktori ini.

Untuk melihat struktur direktori peran, jalankan perintah pohon diikuti dengan nama peran.

$ tree <role-name>

Sekarang, untuk demonstrasi, kita akan membuat tiga peran yang memungkinkan sebagai berikut:

  • Peran prasyarat – Menginstal git
  • Peran mongodb – Menginstal mesin database MongoDB
  • Peran Apache – Menginstal server web Apache

Jadi, dengan menggunakan sintaks yang sama seperti yang kita gunakan sebelumnya, kita akan membuat role sebagai berikut:

$ sudo ansible-galaxy init prerequisites
$ sudo ansible-galaxy init mongodb
$ sudo ansible-galaxy init apache

Langkah selanjutnya adalah mendefinisikan setiap role yang telah Anda buat. Untuk mencapai ini, Anda perlu mengedit file main.yml yang terletak di folder 'tugas' untuk setiap peran.

peran —>  tugas —> main.yml

Misalnya, untuk mengedit peran prasyarat, navigasikan seperti yang ditunjukkan:

$ cd prerequisites/tasks/

Kemudian edit file main.yml.

$ sudo vim main.yml

Peran untuk menginstal git didefinisikan seperti yang ditunjukkan:

- name: Install git
  apt:
     name: git
     state: present
     update_cache: yes

Untuk MongoDB, kami memiliki 2 tugas. Menginstal MongoDB dan memulai daemon Mongod.

- name: Install MongoDB
  apt:
     name: mongodb
     state: present
     update_cache: yes

- name: Start Mongod daemon
  shell: "mongod &"

Dan terakhir, untuk server web Apache :

- name: install Apache web server
  apt:
     name=apache2
     state=present
     update_cache=yes

Terakhir, kita akan membuat file playbook bernama stack.yml dan memanggil peran seperti yang ditunjukkan.

---
- hosts: all
  become: yes
  roles:
        -  prerequisites
        -  mongodb
        -  apache

Seperti yang Anda lihat, file playbook terlihat cukup sederhana dibandingkan dengan mendefinisikan setiap tugas untuk host.

Untuk memastikan bahwa peran kita berfungsi seperti yang diharapkan, jalankan file playbook yang memungkinkan seperti yang ditunjukkan.

$ sudo ansible-playbook /etc/ansible/stack.yml

Playbook akan menjalankan semua peran seperti yang ditunjukkan.

Untuk memastikan bahwa paket berhasil diinstal, kita akan memeriksa versinya seperti yang ditunjukkan:

$ mongod --version
$ apachectl -v
$ git --version

Output di atas menegaskan bahwa memang, peran berhasil dijalankan dan paket telah diinstal. Sempurna!

Menutup:

Peran yang memungkinkan menyederhanakan file buku pedoman terutama ketika Anda memiliki banyak tugas yang harus dijalankan di beberapa host. Selain itu, Anda dapat menggunakan kembali peran untuk beberapa host tanpa perlu memodifikasi file buku pedoman. Jika Anda merasa panduan ini bermanfaat, kirimkan teriakan kepada kami dan bagikan dengan teman-teman Anda.


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Cara Membuat dan Menggunakan Subdomain

  3. Buat dan lepaskan peran di PostgreSQL

  1. Cara Menginstal dan Menggunakan Ansible di Debian 11

  2. Cara Membuat Alias ​​​​dan Menggunakan Perintah Alias ​​​​di Linux

  3. Cara membuat Playbook yang Mungkin

  1. Playbook yang Mungkin:Cara Membuat dan Mengonfigurasi Playbook

  2. Cara Menggunakan Tag di Ansible Playbook (Contoh)

  3. Cara Mengunduh dan Menggunakan Ansible Galaxy Roles di Ansible Playbook