【Infrastructure as code】Ansible入門その4

どうもKuboです。

本日は以前紹介しました、Ansibleのパラメータのわたし方と変数の定義の仕方を紹介しようと思います。

前回の構成で説明をしますのでまだ読んでない方はこちらからどうぞ

パラメータ

パラメータはvarsやvars_filesといった形式でロールに渡すことが出来ます。

varsの例

./playbook.yml

---
- hosts: all
  roles:
    - hello_world

  vars:
    test: "aaaaaa"

./roles/hello_world/tasks/main.yml

---
- debug:
    msg: "hello world{{ test }}"

実行結果

$ ansible-playbook -i inventory playbook.yml

PLAY [all] **********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [hello_world : debug] ******************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "hello worldaaaaaa"
}

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

 

testという名前でパラメータを渡すことが出来ました!

vars_files

定義の仕方はほぼ一緒で定義をファイルに分けてファイルパスを渡します。

./vars_files.yml

---
hogehoge: "aaaa"

./roles/hello_world/tasks/main.yml

---
- debug:
    msg: "hello world{{ hogehoge }}"

./playbook.yml

---
- hosts: all
  roles:
    - hello_world

  vars_files:
    - vars_files.yml

実行結果

$ ansible-playbook -i inventory playbook.yml

PLAY [all] **********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [hello_world : debug] ******************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "hello worldaaaa"
}

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

hogehogeという名前でパラメータを渡すことが出来ました!

他にもカレントディレクトリにgroup_varsというディレクトリを作成しホスト名またはallという名前でymlファイルを作成してもパラメータを渡すことが出来ます。

変数

変数はset_factというモジュールで作成します。

---
- set_fact:
    hoge: "hogehoge"
- debug:
    msg: "hello world{{ hoge }}"

実行結果

$ ansible-playbook -i inventory playbook.yml

PLAY [all] **********************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [hello_world : set_fact] ***************************************************************************************************************************************************************************************************************
ok: [localhost]

TASK [hello_world : debug] ******************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "hello worldhogehoge"
}

PLAY RECAP **********************************************************************************************************************************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

 

 

如何だったでしょうか?基本的なパラメータの渡し方と変数の定義の仕方をご紹介しました。

以上、Kuboでした。

前回の記事はこちら

開発日記
この記事の投稿者
kubo

このサイトの共同編集者、プログラマ、素人デザイナー
得意言語:Java,PHP,Python

フォローする
フォローする
スポンサーリンク
WoW creators
タイトルとURLをコピーしました