GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Membuat Playbook yang Memungkinkan untuk Otomasi TI

Playbook tidak lain adalah Ansible's skrip manajemen konfigurasi, dan dapat digunakan untuk mengelola penerapan dan konfigurasi node terkelola. Playbook berisi serangkaian kebijakan yang Anda inginkan untuk diterapkan oleh node terkelola atau serangkaian langkah dalam proses TI umum.

Playbook ditulis dan dikembangkan dalam bahasa teks sederhana. Sintaks yang kami gunakan di playbook berbeda dari perintah normal yang kami gunakan untuk menguji di tutorial sebelumnya.

Dalam tutorial sebelumnya, kita melihat cara Menginstal Ansible di CentOS 7 / RHEL 7 / Ubuntu 18.04 / 16.04 &Debian 9 .

Buat Playbook yang Memungkinkan

Untuk demo ini, kami akan membuat buku pedoman yang disebut web.yml untuk mengonfigurasi host untuk menjalankan server web Apache . Setiap buku pedoman terdiri dari satu atau beberapa permainan dalam daftar.

Untuk setiap permainan di buku pedoman, Anda dapat memilih mesin mana di infrastruktur Anda untuk ditargetkan dan pengguna jarak jauh mana yang menyelesaikan tugas.

vi web.yml

Playbook CentOS / RHEL:

---
- hosts: 192.168.1.20
  remote_user: raj
  become: yes
  become_method: su

  tasks:
  - name: Install Apache
    yum: pkg=httpd state=latest
  - name: Copying the demo file
    template: src=/etc/ansible/index.html dest=/var/www/html
              owner=apache group=apache mode=0644
  - name: Enable Apache on System Boot
    service: name=httpd enabled=yes

    notify:
    - start apache
    - setup firewalld
    - reload firewalld

  handlers:
    - name: start apache
      service: name=httpd state=started
    - name: setup firewalld
      firewalld:
        service: http
        permanent: true
        state: enabled
    - name: reload firewalld
      service: name=firewalld state=restarted

Ubuntu / Debian Playbook:

---
- hosts: 192.168.1.30
  remote_user: raj
  become: yes
  become_method: sudo

  tasks:
  - name: Install Apache
    apt:
      name: apache2
      update_cache: yes
  - name: Copying the demo file
    template: src=/etc/ansible/index.html dest=/var/www/html
              owner=www-data group=www-data mode=0644

Buat file HTML demo (/etc/ansible/index.html ). File HTML ini akan ditempatkan di DocumentRoot default server Apache pada simpul yang dikelola.

vi /etc/ansible/index.html

HTML:

<html>
  <head>
    <title>Apache is installed by Ansible</title>
  </head>
  <body>
  <h1>Apache is installed by Ansible</h1>
  <p>Now, Apache is managed through Ansible</p>
  </body>
</html>

Menghancurkan Playbook yang Memungkinkan

Sekarang, kita akan membahas setiap bagian dari playbook web.yml file untuk memahami apa artinya.

File dimulai dengan

---

Semua file YAML harus diawali dengan (Tiga tanda hubung) --- dan ini menunjukkan awal dari sebuah dokumen. YAML sangat sensitif terhadap ruang dan menggunakannya untuk mengelompokkan informasi yang berbeda menjadi satu. Spasi harus konsisten di seluruh file Anda agar dapat dibaca dengan benar. Item pada tingkat lekukan yang sama dianggap sebagai elemen saudara.

Host dan Pengguna

---
- hosts: 192.168.1.20
  remote_user: raj

Baris host adalah daftar satu atau lebih grup (mis. demo-server) atau pola host (mis. 192.168.1.20), dipisahkan oleh titik dua. Bersama dengan host, Anda dapat menyebutkan akun pengguna jarak jauh.

---
- hosts: 192.168.1.20
  remote_user: raj
  become: yes
  become_method: su

Anda harus menjadi pengguna root untuk menginstal paket apa pun pada sistem. Untuk melakukannya, Anda dapat menggunakan metode eskalasi hak istimewa, seperti su atau sudo . Setiap kali Anda menggunakan metode eskalasi hak istimewa semacam ini, Anda harus menjalankan playbook yang memungkinkan dengan --ask-become-pass argumen.

Tugas

Sekarang, kami memiliki serangkaian tugas.

Tugas
  tasks:
  - name: Install Apache
    yum: pkg=httpd state=latest
  - name: Copying the demo file
    template: src=/etc/ansible/index.html dest=/var/www/html
              owner=apache group=apache mode=0644
  - name: Enable Apache on System Boot
    service: name=httpd enabled=yes

Setiap permainan berisi daftar tugas, yang dijalankan secara berurutan, satu per satu, melawan semua mesin yang cocok dengan pola host, sebelum melanjutkan ke tugas berikutnya.

Saat Anda menjalankan playbook, itu berjalan dari atas ke bawah dan host dengan tugas yang gagal dikeluarkan dari rotasi untuk keseluruhan playbook.

Setiap tugas harus memiliki nama dan digunakan untuk menampilkan aktivitas saat ini saat menjalankan playbook. Output ini untuk manusia, jadi bagus untuk memiliki deskripsi yang cukup baik dari setiap langkah tugas.

Di sini, akan menginstal Apache versi terbaru dan menyalin HTML demo (/etc/ansible/index.html) ke direktori /var/www/html dari node yang dikelola dan kemudian mengaktifkan layanan Apache untuk memulai secara otomatis selama boot sistem.

Beri tahu

Ini pemberitahuan tindakan dipicu di akhir setiap blok tugas dalam buku pedoman, dan hanya akan dipicu sekali meskipun diberi tahu oleh beberapa tugas berbeda.

    notify:
    - start apache
    - setup firewalld
    - reload firewalld

pemberitahuan item berisi item yang disebut mulai Apache , siapkan firewalld dan muat ulang firewalld . Ini adalah referensi ke penangan yang melakukan fungsi tertentu saat dipanggil dari dalam tugas. Kita akan mendefinisikan start apache dan firewalld handler.

Penangan

Penangan adalah daftar tugas, tidak berbeda dengan tugas biasa. Namun, mereka hanya berjalan ketika mereka diberi tahu oleh tugas bahwa perubahan telah terjadi pada sistem klien.

  handlers:
    - name: start apache
      service: name=httpd state=started
    - name: setup firewalld
      firewalld:
        service: http
        permanent: true
        state: enabled
    - name: reload firewalld
      service: name=firewalld state=restarted

Dalam kasus kami, kami memiliki handler yang memulai layanan Apache dan mengkonfigurasi firewall setelah paket diinstal.

Tindakan ini terjadi karena notifier memberi tahu handler tentang perubahan pada sistem, artinya paket Apache harus diinstal dan bersama dengan file demo itu harus disalin ke DocumentRoot.

Jalankan Playbook yang Memungkinkan

Setelah playbook siap, Anda dapat menjalankannya menggunakan perintah di bawah ini.

ansible-playbook web.yml -f 1 --ask-become-pass

OR

ansible-playbook web.yml -f 1 --ask-become-pass -u raj --ask-pass

ansible-playbook :Perintah untuk menjalankan Playbook yang mungkin.

web.yml: File YAML (File Playbook yang Dimungkinkan – yang kami buat di awal tutorial ini)

-f 1 :buku pedoman menggunakan tingkat paralelisme 1

–ask-become-pass :Karena kita perlu menjadi pengguna root untuk menginstal paket.

-u raj :Pengguna di node terkelola

Keluaran:

Asumsikan Anda telah membuat buku pedoman untuk grup (mis. server demo) server dan ingin menjalankan buku pedoman pada host tertentu. Perintah di bawah ini hanya menjalankan playbook di 192.168.1.40 .

ansible-playbook -l 192.168.1.40 web.yml -u raj --ask-become-pass

Verifikasi Tindakan Playbook yang Memungkinkan

Setelah menjalankan buku pedoman, buka browser Anda dan navigasikan ke host jarak jauh yang disebutkan dalam inventaris yang memungkinkan.

Dalam kasus saya, URL akan menjadi

http://192.168.1.20

Anda sekarang seharusnya mendapatkan halaman di atas Apache diinstal oleh Ansible , dan halaman ini mengonfirmasikan kepada kami bahwa Apache diinstal oleh Ansible.

Anda telah belajar cara membuat buku pedoman sederhana untuk otomatisasi instalasi Apache. Anda dapat menemukan informasi lebih lanjut tentang membuat buku pedoman di sini .

Itu saja.


Cent OS
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Demystifying Memungkinkan untuk sysadmin Linux

  3. 6 keterampilan pemecahan masalah untuk buku pedoman Ansible

  1. Bagaimana cara meneruskan variabel tambahan ke buku pedoman Ansible

  2. Cara membuat Pengguna Linux Menggunakan Ansible

  3. Cara Membuat Wadah Docker MySQL untuk Pengujian

  1. Cara Membuat File di Ansible

  2. Cara membuat Playbook yang Mungkin

  3. bagaimana cara membuat playbook yang memungkinkan untuk mendapatkan versi OS dari host jarak jauh?