Apa itu Yaml

 

Apa itu YAML?

YAML

Definisi

YAML adalah standar serialisasi data yang dapat dibaca manusia yang dapat digunakan bersama dengan semua bahasa pemrograman dan sering digunakan untuk menulis file konfigurasi.

Gambaran

Akroynym YAML rekursif adalah singkatan dari " YAML Ain't Markup Language ," yang menunjukkannya sebagai fleksibel dan berorientasi data. Faktanya, ini dapat digunakan dengan hampir semua aplikasi yang perlu menyimpan atau mengirimkan data. Fleksibilitasnya sebagian karena fakta bahwa YAML terdiri dari potongan-potongan bahasa lain. Beberapa contoh kesamaan ini meliputi:

  • Skalar, daftar, dan array asosiatif didasarkan pada Perl.
  • Pemisah dokumen "---" didasarkan pada MIME.
  • Urutan melarikan diri didasarkan pada C.
  • Pembungkusan spasi didasarkan pada HTML.

Resistansi tabrakan pembatas

YAML mengandalkan lekukan untuk struktur, membuatnya tahan terhadap benturan pembatas. Beberapa bahasa memerlukan karakter escape atau urutan, tanda kutip berlapis, dan solusi lain untuk menangani karakter khusus. YAML secara alami tidak sensitif terhadap tanda kutip dan kurung kurawal, membuat karakter khusus lebih mudah untuk didefinisikan, terutama dalam string.

Keamanan

Dengan sendirinya, YAML tidak memiliki perintah yang dapat dieksekusi. Ini hanyalah bahasa representasi data. Namun, integrasi dengan bahasa lain memungkinkan parser Perl, misalnya, yang dapat menjalankan kode Perl. PyYAML , pengurai dan emitor untuk Python, menyertakan dokumentasi yang secara khusus memperingatkan terhadap kerentanan keamanan ini dan memiliki fungsi bawaan untuk melindungi dari objek Python berbahaya yang dikenal sebagai yaml.safe_load.

Bagaimana YAML Bekerja

Dokumentasi lengkap untuk YAML dapat ditemukan di situs resminya , tetapi diuraikan di bawah ini adalah beberapa konsep sederhana yang penting untuk dipahami ketika mulai menggunakan YAML.

  1. Skalar, atau variabel, ditentukan menggunakan titik dua dan spasi.
  2. integer: 25 
    string: "25" 
    float: 25.0 
    boolean: Yes
    

    --- # Shopping List in Block Format 
    - milk 
    - eggs 
    - juice  
    --- # Shopping List in Inline Format [milk, eggs, juice]
    

    data: |
        Each of these
        Newlines
        Will be broken up  
    data: >
        This text is
        wrapped and will
        be formed into
        a single paragraph
    

Versi JSON

{
  "json": [
    "rigid",
    "better for data interchange"
  ],
  "yaml": [
    "slim and flexible",
    "better for configuration"
  ],
  "object": {
    "key": "value",
    "array": [
      {
        "null_value": null
      },
      {
        "boolean": true
      },
      {
        "integer": 1
      }
    ]
  },
  "paragraph": "Blank lines denotenparagraph breaksn",
  "content": "Or wencan autonconvert line breaksnto save space"
}

---
# <- yaml supports comments, json does not # did you know you can embed json in yaml? # try uncommenting the next line # { foo: 'bar' } json: - rigid - better for data interchange yaml: - slim and flexible - better for configuration object: key: value array: - null_value: - boolean: true - integer: 1 paragraph: >
   Blank lines denote

   paragraph breaks
content: |-
   Or we
   can auto
   convert line breaks
   to save space

Contoh YAML

Dengan mengintegrasikan perangkat lunak mereka dengan YAML, Red Hat mengembangkan Ansible , penyediaan perangkat lunak sumber terbuka, manajemen konfigurasi, dan alat penerapan aplikasi. Ansible untuk sementara terhubung ke server melalui Secure Shell (SSH) untuk melakukan tugas manajemen menggunakan playbook yang merupakan blok kode YAML yang mengotomatiskan tugas-tugas manual.

Dalam contoh di bawah ini, pedoman verify-apache.ymltelah ditentukan.

---
- hosts: webservers

  vars:
    http_port: 80
    max_clients: 200

  remote_user: root

  tasks:
  - name: ensure apache is at the latest version
    yum:
      name: httpd
      state: latest

  - name: write the apache config file
    template:
      src: /srv/httpd.j2
      dest: /etc/httpd.conf
    notify:
    - restart apache

  - name: ensure apache is running
    service:
      name: httpd
      state: started

  handlers:
    - name: restart apache
      service:
        name: httpd
        state: restarted

  1. Tugas pertama memperbarui Apache ke versi terbaru menggunakan perintah yum Red Hat.
  2. Tugas kedua menggunakan template untuk menyalin file konfigurasi apache. Setelah file konfigurasi ditulis, layanan Apache di-restart.
  3. Tugas ketiga memulai layanan Apache, kalau-kalau itu tidak kembali.

ansible-playbook -i hosts/groups verify_apache.yml

Poin Penting

  • YAML adalah bahasa berorientasi data yang memiliki fitur yang berasal dari Perl, C, HTML, dan bahasa lain.
  • YAML adalah superset dari JSON yang hadir dengan beberapa keunggulan bawaan seperti termasuk komentar, referensi mandiri, dan dukungan untuk tipe data yang kompleks.
  • Beberapa paket perangkat lunak telah mengimplementasikan YAML untuk membuat alat manajemen konfigurasi yang kuat seperti Red Hat's Ansible.

Komentar

Postingan populer dari blog ini

Apa itu Adobe After Effects ?

Apa itu Adobe Lightroom ?

Apa itu Filezilla