Peranan Ansible - Kaedah terbaik untuk menguraikan Buku Main anda



Blog Ansible Roles ini membincangkan bagaimana peranan digunakan untuk menjadikan buku main yang kompleks dapat dibaca dan digunakan semula dengan demonstartion untuk menubuhkan MEAN Stack.

Ansible membolehkan kami mengautomasikan pengurusan konfigurasi sistem dan menambah sebilangan pelanggan seperti yang kami mahukan. Pernahkah anda terfikir betapa kompleksnya ini? Pernahkah anda terfikir berapa lama dan buku membingungkan dapat? Bagaimana Ansible masih menjadikannya seperti angin? Ia menggunakan konsep Ansible Roles dan itulah yang akan kita bicarakan di blog ini.

Topik yang dibincangkan:





Sekiranya anda ingin menguasai DevOps, ' kursus akan menjadi pilihan anda.

Pengenalan Peranan Ansible

Ansible Role adalah konsep yang berkaitan dengan idea dan bukannya peristiwa. Ini pada asasnya merupakan tahap pengabstrakan yang digunakan untuk mengatur buku permainan. Mereka menyediakan kerangka untuk koleksi variabel, tugas, templat, file, dan modul yang bebas dan dapat digunakan kembali yang dapat dimuat secara otomatis ke dalam buku main. Buku main adalah kumpulan peranan. Setiap peranan mempunyai fungsi khusus.



Mari saya jelaskan ini dengan contoh. Katakan anda mahu buku main anda menjalankan 10 tugas yang berbeza pada 5 sistem yang berbeza, adakah anda akan menggunakan satu buku main untuk ini? Tidak, menggunakan satu buku permainan boleh menjadikannya membingungkan dan rentan terhadap kesalahan. Sebagai gantinya, anda boleh membuat 10 peranan yang berbeza, di mana setiap peranan akan melakukan satu tugas. Kemudian, yang perlu anda lakukan ialah, sebutkan nama peranan di dalam buku permainan untuk memanggil mereka. Anda akan belajar bagaimana menggunakan peranan lebih jauh dalam blog ini.

Kegunaan Peranan Yang Boleh Diterima

Peranan Ansible bebas antara satu sama lain. Pelaksanaan satu peranan tidak bergantung pada yang lain dan oleh itu ia dapat digunakan semula. Anda juga boleh mengubah dan memperibadikan peranan ini mengikut kehendak anda. Ini mengurangkan tugas kita untuk menulis semula keseluruhan bahagian kod setiap kali kita memerlukannya, sehingga memudahkan kerja kita.

Mari kembali ke contoh sebelumnya. Anda telah menulis 10 peranan dan sekarang anda perlu menggunakan 5 peranan tersebut untuk set penyediaan yang lain. Adakah anda menulis keseluruhan buku main lagi? Tidak, anda hanya menggunakan 5 peranan tersebut dengan memanggilnya di Playbook baru ini. Anda juga boleh melakukan pengubahsuaian jika diperlukan tetapi ia tetap akan menjimatkan banyak masa anda.



Katakan anda perlu menulis buku main untuk menyiapkan tumpukan LAMP. Anda mesti membuat 4 peranan, masing-masing untuk membuat Linux, Apache, MongoDB dan PHP. Di masa depan, jika anda menginginkan buku main lain untuk menyiapkan tumpukan LAMP dan juga WordPress, adakah anda sekali lagi akan membuat peranan baru untuk timbunan LAMP dan WordPress? Tidak! Anda boleh menggunakan semula peranan lama (digunakan untuk tumpukan LAMP) dan juga membuat peranan baru untuk WordPress.

Struktur Direktori Peranan

Dengan menggunakan Ansible Roles, harapkan fail berada dalam struktur fail tertentu. Bahagian yang paling membingungkan dalam menggunakan peranan adalah memahami hierarki fail. Ansible menyediakan ciri yang disebut Ansible Galaxy yang membantu anda memainkan peranan. Kami sudah tahu di mana Ansible kami berada di Ubuntu (/ etc / ansible). Pernahkah anda melihat direktori yang disebut peranan di bawah / etc / ansible? Direktori itu ada betul-betul untuk alasan ini. Anda membuat peranan yang berbeza di dalam direktori ini.

Direktori akan kelihatan seperti ini:

Pokok - Peranan Boleh Dikenal - Edureka

Anda boleh membuat peranan menggunakan ansible-galaksi perintah init di dalam / etc / ansible / role.

$sudoanit-galaksi init

perbezaan antara css dan css3

Anda akan melihat direktori peranan lain juga telah dibuat.

Direktori ini adalah tugas, pengendali, lalai, vars, fail, templat, dan meta dan README.mdfail.

Tugas - Mengandungi senarai utama tugas yang harus dilaksanakan oleh peranan. Iamengandungifail main.yml untuk peranan tersebut.

Penangan - Mengandungi pengendali yang mungkin digunakan oleh peranan ini atau bahkan di mana sahaja di luar peranan ini.

Lalai - Mengandungi pemboleh ubah lalai yang akan digunakan oleh peranan ini.

Yang - Direktori ini terdiri daripada pemboleh ubah lain yang akan digunakan oleh peranan. Pemboleh ubah ini dapat ditentukan dalam buku main anda, tetapi adalah kebiasaan yang baik untuk menentukannya di bahagian ini.

Fail - Mengandungi fail yang dapat digunakan oleh peranan ini. Ini mengandungi fail yang perlu dihantar ke host semasa mengkonfigurasi peranan.

Meta - Mendefinisikan metadata untuk peranan ini. Pada dasarnya, ia mengandungi fail yang mewujudkan pergantungan peranan.

Setiap tugas direktori mesti terdiri daripada a utama.yml fail di mana kod sebenar untuk peranan tertentu ditulis.

system.exit (1) java

Mari kita fahami cara kerja atau peranan dengan demo memasang MEAN Stack.

Demo: Memasang MEAN Stack menggunakan Peranan Ansible

Saya akan menunjukkan cara memasang MEAN Stack menggunakan Ansible Roles dengan hanya melaksanakan satu buku permainan tunggal. Kami akan mempunyai tiga peranan: 1) Memasang prasyarat, 2) Memasang MongoDB dan 3) Memasang NodeJS. Saya mengandaikan bahawa anda sudah melakukannya memasang Ansible dan membuat sambungan pelayan-pelanggan di Ubuntu . Mari kita mula bermain dengan Ansible Roles.

Langkah 1 - Navigasi ke direktori / etc / ansible / role dan buat peranan 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 harus melihat tiga peranan dalam direktori 'peranan' anda.

Langkah 2 - Tulis main.yml untuk prasyarat yang memasang Git.

$ cd prasyarat / task / main.yml --- - name: Install git apt: name: git state: present update_cache: ya

Langkah 3 - Tulis main.yml untuk peranan MongoDB

$ cd /mongodb/tasks/main.yml --- - name: MongoDB - Import public key apt_key: keyserver: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - name: MongoDB - Tambahkan repositori apt_repository: nama fail: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' state: present_cache sekarang : ya - nama: MongoDB - Pasang MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Start mongod shell: 'mongod &'

Langkah 4 - Tulis main.yml untuknodejsperanan

$ cd nodejs / tasks / main.yml --- - name: Node.js - Dapatkan script get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- name: Node.js - Tetapkan izin pelaksanaan ke fail skrip: jalan:' {{var_node}} / nodejs.sh 'mode:' u + x '- nama: Node.js - Laksanakan shell skrip pemasangan:' {{var_node}} / nodejs.sh '- name: Node.js - Buang fail skrip pemasangan: jalan:' {{var_node}} / nodejs.sh 'state: absent - name: Node.js - Install Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-essential - nodejs - name: Node.js - Pasang bower dan teguk secara global npm: name = {{item}} state = present global = yes with_items : - bower - teguk

Langkah 5 - Tulis buku main utama anda

$ cd /etc/ansible/mean.yml --- - host: node remote_user: ansible menjadi: yes menjadi_mode: sudo vars: #variable diperlukan semasa pemasangan nod var_node: / tmp peranan: - prasyarat - mongodb - nodejs

Sekarang kita telah menentukan peranan untuk memasang prasyarat, MongoDB dan NodeJs, mari kita menyebarkannya. Laksanakan buku main menggunakan arahan berikut.

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

Seperti yang anda lihat, semua tugas telah dilaksanakan dan statusnya telah berubah. Ini bermaksud perubahan buku main telah diterapkan ke pelayan anda dan juga hos. Menyiapkan MEAN Stack hanyalah satu contoh. Anda boleh menyusun apa sahaja dan semuanya menggunakan Peranan Ansible.

Ini membawa kita ke akhir blog Ansible Roles. Sekiranya artikel ini berguna, periksa ' ditawarkan oleh Edureka. Ini merangkumi semua alat yang menjadikan industri IT lebih baik.

Ada soalan untuk kami? Sila hantar di dan kami akan menghubungi anda.