yaml


anchorとaliasを展開


jsonとの変換


長い行の分割

YAML構文を使って分割する。


yamldiff: yamlを比較、ソート、色づけ


データ型


マージ

common: &_common
  user: readonly
  db: dummy
development:  <<: *_common
  db: dev_db
production:  <<: *_common
  db: prod_db
common: &_common
- aaa
- bbb
development: *_common # 成功
development: *_common &_development # エラー。&_developmentアンカーが使えなくて困る
&_development: *_common # null
development: &_allow_login_full_admin
- <<: *_common # エラー
<<: *_common # エラー
  <<: *_common # エラー
development: &_allow_login_full_admin
- *_common # 成功だが [ [ aaa, bbb ] ] になる
development: &_allow_login_full_admin [ *_common ] # 上と同じ
common: &_common  ? aaa # aaa: null と同じ
  ? bbb # bbb: null と同じ
development: &_development
  <<: *_common  ? ccc

アンカー、エイリアス

YAMLの機能。データに「&name」と名前を付け、「*name」で参照できる。 同じ値を書かずに済む。

- hosts: all
  gather_facts: true
  sudo: true
  vars:
    - var1: &_a1 hoge
    - var2: *_a1
    - array1: &_a2
    - foo
    - bar
    - array2: *_a2
    - dict1: &_a3
      key1: foo
      key2: bar
    - dict2: *_a3
  tasks:
    - debug: var=var2
    - debug: var=array2
    - debug: var=dict2
TASK: [debug var=var2] ********************************************************
ok: [127.0.0.1] => {
    "var": {
        "var2": "hoge"
    }
}
TASK: [debug var=array2] ******************************************************
ok: [127.0.0.1] => {
    "var": {
        "array2": [
            "foo",
            "bar"
        ]
    }
}
TASK: [debug var=dict2] *******************************************************
ok: [127.0.0.1] => {
    "var": {
        "dict2": {
            "key1": "foo",
            "key2": "bar"
        }
    }
}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-08-11 (水) 18:09:10