Tutorial Peran yang Mungkin Untuk Pemula

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.