mito’s blog

IT技術メインの雑記。思い立ったが吉日。

YAMLの理解が深まったらPlaybookの理解も深まった気がした話

この記事は、Ansible Advent Calendar 2021 22日目のエントリです。
個人の感覚によるものが大きい話です。


はじめに

「Playbookで何をするとかしないとかじゃなくて、YAMLは配列の塊という理解をするほうが先です」と言われた。


YAMLExcelで表す

---
- hosts: r1
  gather_facts: no

  tasks:
    - name: enabled interfaces
      junos_interfaces:
        config:
          - name: ge-0/0/0
            enabled: true
        state: overridden

- hosts: r2
  gather_facts: no

  tasks:
    - name: enabled interfaces
      junos_interfaces:
        config:
          - name: ge-0/0/0
            enabled: true
        state: overridden

f:id:mst-it:20211224154524p:plain

Playbookのhostsも1playの変数であり、Playbook1ファイルの中に、複数のPlayが入る。
なぜなら配列の塊だから。YAML[2][2][10]みたいなイメージ。
各セルのキーと値の状態にするのがAnsible。


感想

「Playbookを実行する」は「記載内容通りに実行する」ものではなく、「記載内容の状態にする」のほうが合うと思った。
試しに、こういう状態にしたいという考えでPlaybookを書いてみたら、妙にすっきりした。

でも、説明する時はインストールする、設定変更すると、わかりやすいから何々を実行すると言ってしまうんだろうなぁ。