どうも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でした。
前回の記事はこちら