3
Kami telah membahas semua topik penting yang mungkin ada di situs kami. Sekarang di artikel ini, mari kita pelajari apa itu peran yang memungkinkan dan bagaimana menggunakan peran yang memungkinkan untuk membuat proyek terstruktur dan mendistribusikannya. Selanjutnya kita akan melanjutkan untuk membahas keuntungan menggunakan peran yang memungkinkan dibandingkan playbook standar. Terakhir, kita akan melihat cara membuat Peran yang Dimungkinkan dan berbagai metode untuk mengimpor peran di playbook.
Konten
Apa itu Peran yang Dimungkinkan?Buat Peran yang DimungkinkanBuat Peran yang Dimungkinkan Pertama Anda1. Peran Di Level Permainan2. Mengimpor Peran Pada Tingkat Tugas Menggunakan Impor & MenyertakanLokasi Peran yang MemungkinkanKesimpulanApa itu Peran yang Memungkinkan?
Peran yang memungkinkan menawarkan struktur direktori tempat Anda dapat memecah playbook yang rumit menjadi potongan-potongan kecil dan dapat dikelola. Keuntungan utama menggunakan peran yang memungkinkan diberikan di bawah ini:
Anda dapat mencapai tingkat modularitas yang tinggi.Mendistribusikan kembali peran dengan mudah menggunakan koleksi yang memungkinkan.Mudah untuk men-debug kesalahan apa pun.Pendekatan yang digerakkan oleh pengujian.
Di bagian yang akan datang, saya akan menunjukkan cara buat peran yang memungkinkan sederhana dan berbagai cara untuk menggunakan peran di playbook.
Buat Peran yang Memungkinkan
Gunakan perintah ansible-galaxy untuk memulai peran. Di sini, saya menamai peran saya sebagai sample-role.
$ ansible-galaxy init sample-role - Role sample-role berhasil dibuat
Di bawah sample-role directory, Anda akan memiliki direktori yang berbeda untuk mengatur playbooks.
Mari kita pergi ke setiap direktori untuk memahami tujuannya.
Defaults – Anda dapat mengatur variabel default di bawah direktori ini.File – File apa saja Anda ingin menyalin ke node terkelola untuk disimpan di bawah direktori file. Penangan – Tugas penangan harus dikelompokkan di bawah direktori penangan. Meta – Menyimpan metadata tentang peran. Ini berisi metadata seperti penulis, versi, platform, tag, dependensi, dll. Tugas – Tugas pedoman harus dibuat di bawah direktori tugas. Ini adalah direktori wajib untuk role.Templates – File yang akan digunakan untuk template harus disimpan di bawah direktori templates. File harus menggunakan ekstensi jinga2(.j2).Pengujian – Kasus pengujian harus berada di bawah direktori pengujian.Vars – Variabel yang terkait dengan peran ini. Diutamakan lebih tinggi jika variabel yang sama digunakan di direktori default.
Jika Anda melihat gambar di atas, satu file umum di bawah beberapa direktori adalah main.yml. Anda tidak boleh mencoba mengganti nama file ini karena ansible akan mencari objek terkait di bawah file main.yml.
Sebagai bagian dari peran Anda, hanya direktori tugas yang wajib dan semua direktori lainnya dapat dilewati.
Buat Peran Kemungkinan Pertama Anda
Saya akan membuat proyek yang akan menginstal beberapa alat untuk desktop Ubuntu saya. Pertama, saya akan membuat file ansible.cfg dan inventori file.
$ vim ansible.cfg [default] [default] persediaan = tuan rumah host_key_checking = Salah nocow = 1 action_warnings = Salah interpreter_python = auto_legacy_silent
$ host vim
localhost ansible_connection=local
Membuat playbook dengan satu tugas untuk menginstal terminal tools.
--- - nama: Pengujian peran host: localhost collect_facts: salah menjadi: benar tugas: # Alat untuk terminal - nama: TERMINAL - Kitty, Tmux, Fish memungkinkan.builtin.apt: pkg: - kucing - tmux - ikan state: present
Below adalah output untuk tugas di atas. Ini adalah cara standar untuk membuat playbook di ansible.
Sekarang mari buat peran dan atur tugas di dalam peran. Saya tidak menggunakan perintah ansible-galaxy untuk menginisialisasi peran, sebaliknya saya secara manual membuat direktori tugas yang merupakan satu-satunya direktori yang diperlukan untuk peran saya.
Di sini peran saya bernama “alat” dan direktori tugas bersama dengan main.yml file dibuat.
$ mkdir -p peran/alat/tugas/ $ sentuh peran/alat/tugas/main.yml $ peran pohon/ peran/ `-- alat `-- tugas `-- main.yml 2 direktori, 1 file
Sekarang pindahkan tugas di bawah tugas/main.yml file.
Dalam buku pedoman utama, Anda harus memberi tahu kemungkinan menggunakan peran untuk menjalankan tugas. Ada beberapa cara untuk mencapai ini.
1. Roles At The Play Level
Anda dapat menggunakan kata kunci peran dan memberikan nama peran sebagai input.
--- - nama: Pengujian peran host: localhost collect_facts: salah menjadi: benar peran: - tools
Ansible akan memperlakukan peran yang ditentukan pada level permainan sebagai impor statis dan akan diuraikan saat menguraikan playbook.
Anda dapat menjalankan playbook dengan verbose untuk melihat dari mana tugas diambil secara otomatis.
$ ansible-playbook -K playbook.yml -vvvv
Anda dapat menambahkan lebih dari satu aturan di bagian peran.
roles: - peranA - peranB - roleC
Anda juga dapat menerapkan arahan lain yang memungkinkan seperti vars, dan tag. Misalnya, jika Anda menerapkan tag pada tingkat peran, tag tersebut akan diwarisi oleh semua tugas di bawah peran.
roles: - peran: alat tag: terminal
2. Mengimpor Peran Pada Tingkat Tugas Menggunakan Impor & Termasuk
Anda dapat mengimpor peran ke dalam playbook secara statis dan dinamis menggunakan arahan import_roles dan Include_roles.
Kedua import_role dan include_role memiliki sintaks yang serupa. Perbedaan utamanya adalah import* directives diproses selama playbook parsing dan include* directive diproses hanya dalam urutan yang ditentukan dan menjalankan tugas secara dinamis.
tasks: - nama: Mengimpor tugas alat impor_peran: nama: alat tugas: - nama: Sertakan tugas alat sertakan_peran: nama: tools
Sekarang Anda harus memiliki pemahaman yang adil tentang cara menyusun peran. Saat Anda membuat playbook yang melibatkan variabel, penangan, dan file, maka Anda harus membuat direktori yang sesuai dan mengelompokkan tugas. Lokasi Peran yang Dimungkinkan
Ansible memiliki metode untuk menemukan lokasi peran dan menjalankan tugas. Jika memungkinkan tidak dapat menemukan peran, maka kesalahan berikut akan terjadi.
ERROR! peran 'alat' tidak ditemukan di /ansible/dockerlab/playbooks/roles_testing/project1/roles:/home/ansuser/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/ansible /dockerlab/playbooks/roles_testing/project1
Lihatlah pesan kesalahan di atas. Ini menunjukkan beberapa direktori di mana memungkinkan akan mencari peran.
Jalur direktori pertama dan terakhir secara otomatis ditambahkan oleh memungkinkan berdasarkan direktori dari mana Anda menjalankan playbook.
Pertama, peran akan dicari di bawah direktori peran/. Direktori peran harus berada di direktori yang sama dengan playbook utama Anda. Di bawah direktori home ~/.ansible/roles. Di bawah direktori sistem default /usr/share/ansible/roles, /etc/ansible/roles. Di bawah direktori proyek .
Jika Anda telah menyimpan peran di lokasi yang berbeda, Anda dapat mengatur jalur menggunakan “roles_path” di file ansible.cfg.
#ansible.cfg [default] role_path = :
Conclusion
Dalam artikel ini, kita telah melihat apa saja peran yang memungkinkan dan keuntungan menggunakan peran yang memungkinkan dibandingkan playbook standar. Dan kemudian kami membahas cara membuat peran yang memungkinkan dan berbagai cara untuk mengimpor peran yang memungkinkan di buku pedoman. Akhirnya, kita telah melihat bagaimana menemukan peran menggunakan role_path dan bagaimana menambahkan custom path ke role_path directive.