Tutorial Ansible Part 3: Loops

Loops

Loops biasanya dibuat untuk mempermudah proses looping, atau mengulang. Sama seperti Variable, Loop ditulis di dalam Playbook. Untuk penulisannya dibuat secara list (-), tepat dibawah line yang akan menggunakan item didalam Loop tersebut. Cara penggunaannya juga sama dengan Variable, yaitu dengan menggunakan kurung kurawal dua kali, dan di ikuti dengan kata kunci yaitu “item” ‘{{ item }}’. Yang membedakan antara Loop dengan Variable yaitu Loops tidak bisa ditulis selain di playbook yang akan digunakan itu. Tapi Loops dapat dikombinasikan dengan Variable, caranya yaa, menuliskan Variable terlebih dahulu dan isi dari Loops tersebut menggunakan Variable yang sudah dibuat tadi. Loops tidak hanya menggunakan format loop untuk menulisnya, tapi juga bisa menggunakan format with_(items/command/script/etc.). Berikut merupakan contoh-contoh penulisan Loop yang sudah saya praktekan sendiri:
    1. Script YAML Loops biasa

    name: ‘say hay’
    hosts: centOS
    tasks:
      –
        debug:
            msg: ‘{{ item }}’
        loop:
            – Hallo
            – Hello
            – Hayy
            – Richi

        Script diatas akan memunculkan list yang ada di loop, secara berurutan

    2. With_*


  name: ‘print list of fruits’
  hosts: all
  tasks:
    –
      name: ‘name of fruits’
      command: “echo ‘ {{ item }}'”
      with_items:
        – apple
        – banana
        – grape
        – pear
        – strawberry

        Script diatas akan memunculkan semua list yang ada di with_item secara berurutan

    3. Script YAML yang mengkombinasikan antara Loops dengan Variable


    name: ‘Print list of fruits’
    hosts: all
    vars:
        fruits:
            – Apple
            – Banana
            – Grapes
            – Orange
    tasks:
        –
            command: ‘echo “{{ item }}”‘
            with_items: “{{fruits}}”

         Kombinasi dari Variable dengan Loops, hasilnya akan memunculkan semua list yang ada di variable.

Leave a Reply

Your email address will not be published. Required fields are marked *