Peran yang Mungkin- Cara terbaik untuk menguraikan PlayBook Anda



Blog Ansible Roles ini membahas tentang bagaimana peran digunakan untuk membuat buku pedoman yang kompleks dapat dibaca dan digunakan kembali dengan demonstrasi menyiapkan MEAN Stack.

Ansible memungkinkan kami untuk mengotomatiskan manajemen konfigurasi sistem dan menambahkan sejumlah klien sesuai keinginan. Pernahkah Anda bertanya-tanya seberapa rumit hal ini? Pernahkah Anda bertanya-tanya berapa lama dan membingungkan pedoman tersebut? Bagaimana Ansible masih membuatnya tampak seperti angin sepoi-sepoi? Ini menggunakan konsep Peran yang Mungkin dan itulah yang akan kita bicarakan di blog ini.

Topik yang dibahas:





Jika Anda ingin menguasai DevOps, ' kursus akan menjadi pilihan masuk Anda.

Pengantar Peran yang Mungkin

Ansible Role adalah konsep yang berurusan dengan ide daripada peristiwa. Ini pada dasarnya adalah tingkat abstraksi lain yang digunakan untuk mengatur buku pedoman. Mereka menyediakan kerangka untuk kumpulan variabel, tugas, templat, file, dan modul independen dan dapat digunakan kembali yang dapat dimuat secara otomatis ke dalam pedoman. Buku pedoman adalah kumpulan peran. Setiap peran memiliki fungsi tertentu.



Izinkan saya menjelaskan ini dengan sebuah contoh. Misalkan Anda ingin pedoman Anda melakukan 10 tugas berbeda pada 5 sistem berbeda, apakah Anda akan menggunakan satu pedoman untuk ini? Tidak, menggunakan satu pedoman dapat membuatnya membingungkan dan rentan terhadap kesalahan. Sebagai gantinya, Anda dapat membuat 10 peran berbeda, di mana setiap peran akan melakukan satu tugas. Kemudian, yang perlu Anda lakukan hanyalah menyebutkan nama peran di dalam pedoman untuk memanggil mereka. Anda akan mempelajari cara menggunakan peran lebih lanjut di blog ini.

Peran yang Mungkin Dapat Digunakan Kembali

Peran yang Mungkin tidak bergantung satu sama lain. Eksekusi satu peran tidak bergantung pada yang lain dan karenanya dapat digunakan kembali. Anda bahkan dapat mengubah dan mempersonalisasi peran ini sesuai dengan kebutuhan Anda. Ini mengurangi tugas kita untuk menulis ulang seluruh bagian kode setiap kali kita membutuhkannya, sehingga menyederhanakan pekerjaan kita.

Mari kembali ke contoh sebelumnya. Anda telah menulis 10 peran dan sekarang Anda perlu menggunakan 5 di antaranya untuk kumpulan penyediaan lainnya. Apakah Anda menulis seluruh pedoman lagi? Tidak, Anda hanya menggunakan kembali 5 peran tersebut dengan memanggilnya di Playbook baru ini. Anda juga dapat melakukan modifikasi jika diperlukan, tetapi itu tetap akan menghemat banyak waktu Anda.



Katakanlah Anda perlu menulis pedoman untuk menyiapkan tumpukan LAMP. Anda harus membuat 4 peran, masing-masing untuk membuat Linux, Apache, MongoDB, dan PHP. Di masa mendatang, jika Anda menginginkan pedoman lain untuk menyiapkan tumpukan LAMP serta WordPress, apakah Anda akan kembali membuat peran baru untuk tumpukan LAMP dan WordPress? Tidak! Anda cukup menggunakan kembali peran lama (digunakan untuk tumpukan LAMP) dan juga membuat peran baru untuk WordPress.

Struktur Direktori Peran

Menggunakan Ansible Roles, file diharapkan berada dalam struktur file tertentu. Bagian yang paling membingungkan dalam menggunakan peran adalah memahami hierarki file. Ansible menyediakan fitur bernama Ansible Galaxy yang membantu Anda bermain peran. Kita sudah tahu dimana Ansible kita ada di Ubuntu (/ etc / ansible). Pernahkah Anda melihat direktori bernama peran di bawah / etc / ansible? Direktori itu ada persis karena alasan ini. Anda membuat peran berbeda di dalam direktori ini.

Direktori akan terlihat seperti ini:

perbedaan antara extends dan implement

Pohon - Peran yang Mungkin - Edureka

Anda dapat membuat peran menggunakan galaksi yang mungkin perintah init di dalam / etc / ansible / role.

$sudoansible-galaxy init

Anda akan melihat direktori peran lain juga telah dibuat.

Direktori ini adalah tugas, penangan, default, vars, file, template, dan meta dan README.mdmengajukan.

Tugas - Berisi daftar tugas utama yang akan dijalankan oleh peran tersebut. Saya tmengandungfile main.yml untuk peran tertentu itu.

Penangan - Berisi penangan yang dapat digunakan oleh peran ini atau bahkan di mana pun di luar peran ini.

Default - Berisi variabel default yang akan digunakan oleh peran ini.

Yang - Direktori ini terdiri dari variabel lain yang akan digunakan oleh peran tersebut. Variabel ini dapat ditentukan dalam buku pedoman Anda, tetapi merupakan kebiasaan yang baik untuk menentukannya di bagian ini.

File - Berisi file yang dapat digunakan oleh peran ini. Ini berisi file yang perlu dikirim ke host saat mengkonfigurasi peran.

Meta - Mendefinisikan metadata untuk peran ini. Pada dasarnya, ini berisi file yang membuat dependensi peran.

Setiap tugas direktori harus terdiri dari a main.yml file tempat kode sebenarnya untuk peran tertentu itu ditulis.

Sekarang mari kita pahami cara kerja atau peran dengan demo memasang MEAN Stack.

c ++ pergi ke

Demo: Menginstal MEAN Stack menggunakan Ansible Roles

Saya akan mendemonstrasikan cara menginstal MEAN Stack menggunakan Ansible Roles dengan hanya menjalankan satu playbook. Kita akan memiliki tiga peran: 1) Menginstal prasyarat, 2) Menginstal MongoDB dan 3) Menginstal NodeJS. Saya berasumsi bahwa Anda sudah melakukannya diinstal Ansible dan membuat koneksi server-klien di Ubuntu . Mari mulai bermain dengan Ansible Roles.

Langkah 1 - Arahkan ke / etc / ansible / role direktori dan buat role untuk prasyarat, MongoDB dan NodeJS.

$ cd / etc / ansible / role $ sudo ansible-galaxy init prasyarat $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Anda sekarang akan melihat tiga peran dalam direktori 'peran' Anda.

Langkah 2 - Tuliskan main.yml untuk prasyarat yang menginstal Git.

$ cd prasyarat / tugas / main.yml --- - nama: Instal git apt: name: git state: present update_cache: yes

LANGKAH 3 - Tulis main.yml untuk peran MongoDB

$ cd /mongodb/tasks/main.yml --- - nama: MongoDB - Impor kunci publik apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - nama: MongoDB - Tambahkan repositori apt_repository: nama file: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' status: sekarang update_cache : yes - name: MongoDB - Instal MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Mulai mongod shell: 'mongod &'

LANGKAH 4 - Tulis main.yml untuknodejswewenang

$ cd nodejs / tugas / main.yml --- - nama: Node.js - Dapatkan skrip get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- name: Node.js - Setel izin eksekusi ke file skrip: path:' {{var_node}} / nodejs.sh 'mode:' u + x '- name: Node.js - Jalankan shell skrip instalasi:' {{var_node}} / nodejs.sh '- name: Node.js - Hapus file skrip instalasi: path:' {{var_node}} / nodejs.sh 'state: absent - name: Node.js - Instal Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Instal bower dan gulp secara global npm: name = {{item}} state = present global = yes with_items : - punjung - teguk

LANGKAH 5 - Tulis pedoman utama Anda

$ cd /etc/ansible/mean.yml --- - host: node remote_user: ansible menjadi: yes be_method: sudo vars: #variable diperlukan selama instalasi node var_node: / tmp role: - prasyarat - mongodb - nodejs

Sekarang kita telah menentukan peran untuk menginstal prasyarat, MongoDB dan NodeJs, mari kita terapkan. Jalankan playbook menggunakan perintah berikut.

$sudoansible-playbook /etc/ansible/mean.yml -K

Seperti yang Anda lihat, semua tugas telah dijalankan dan statusnya telah berubah. Ini berarti perubahan pedoman telah diterapkan ke server Anda dan juga ke host. Menyiapkan MEAN Stack hanyalah salah satu contoh. Anda dapat mengatur apa saja dan semuanya menggunakan Ansible Roles.

Ini membawa kita ke bagian akhir blog Ansible Roles. Jika menurut Anda artikel ini bermanfaat, lihat ' ditawarkan oleh Edureka. Ini mencakup semua alat yang membuat industri TI menjadi lebih baik.

Ada pertanyaan untuk kami? Silakan posting di dan kami akan menghubungi Anda kembali.