このチャプターの目次
YAML とは
YAML (ヤムル)[1] は構造化されたデータを表現するための言語です。設定ファイルやデータ交換用フォーマットなどに使用されます。Ansible ではインベントリー[2]やプレイの記述に使用します。
YAML ファイルの拡張子は .yml
または .yaml
です。 YAML ファイル自体はテキスト形式なので、 VS Code などお好みのテキストエディターを使用して記述します。
基本ルール
YAML の基本ルールです。 Ansible はなぜか最終行の ...
は書きません。
-
---
から書き始める = 1 行目は---
だけにする -
...
で書き終える = 最終行は...
だけにする -
#
から行末までがコメントになる - インデントは半角空白 × 2 個で記述する(タブ文字は使用できない)
- インデントでデータ構造のネストを表現する
データの基本的な表現
YAML の基本的な 2 種類のデータの表現方法です。
シーケンス
値の先頭に -
を付けて表現します。「リスト」とも呼ばれます。
- anekoji
- sanjyo
- rokkaku
マッピング
"キー: 値" の形式で表現します。「ハッシュ」、「辞書 (ディクショナリー) 」とも呼ばれます。
alabama: montgomery
california: sacramento
delaware: dover
複雑なデータの表現
シーケンスやマッピングをネストしたデータの表現方法です。すべてのインデントは半角空白 x 2 個です。
マッピングの中にマッピングをネスト
fu:
osaka: osaka
kyoto: kyoto
ken:
mie: tsu
shiga: otsu
hyogo: kobe
nara: nara
wakayama: wakayama
シーケンスの中にマッピングをネスト
- name: taro
password: password@taro
- name: hanako
password: password@hanako
マッピングの中にシーケンスをネスト
streets:
- marutamachi
- takeyamachi
- ebisugawa
複雑なネスト
- name: Install a packates
ansible.builtin.dnf:
name: "{{ packages }}"
state: latest
vars:
packages:
- httpd
- mariadb-server
- php
- php-mbstring
- php-mysqli
become: yes