Ansible:ansible-galaxyコマンドでroleのひな型を作成
ansible-galaxyコマンドを使うことでroleのひな型を作成できます。
roleに関連するディレクトリやmain.ymlを作成する手間がすこし省けるかも。
以下がコマンドとその実行結果です。
tasksやhandllersなどのディレクトリ、そして、ディレクトリの下にmain.ymlが作成されています。ここから必要なディレクトリ以外は削除していけばよさそうです。
$ ansible-galaxy init test_role - Role test_role was created successfully $ $ tree test_role/ test_role/ |-- README.md |-- defaults | `-- main.yml |-- files |-- handlers | `-- main.yml |-- meta | `-- main.yml |-- tasks | `-- main.yml |-- templates |-- tests | |-- inventory | `-- test.yml `-- vars `-- main.yml 8 directories, 8 files
ちなみに、main.ymlの中身は基本的にコメント行のみです。
--- # tasks file for test_role
--- # vars file for test_role
role-skeltonオプション
ansible-galaxy initに--role-skeletonオプションというのがありました。
このオプションを使えば、自身で作成したロールをひな型として新たにロールを作成することができるようです。
ためしに、test_roleというroleをひな型としてtest_role2というroleを作ることにします。
test_roleは以下のような構造になっています。
$ tree test_role test_role |-- README.md |-- files | `-- hello.txt |-- tasks | `-- main.yml `-- vars 3 directories, 3 files $ $ cat test_role/tasks/main.yml --- - name: copied hello.txt copy: src: hello.txt dest: /tmp/hello.txt mode: 0644
ansible-galaxy initの実行結果が以下になります。
test_roleのディレクトリ構造と同じようにtest_role2が作られているのが確認できました。また、tasks/main.ymlの中身もまるっきり同じ内容になっています。(普通のディレクトリコピーと何か違うのだろうか…)
$ ansible-galaxy init --role-skeleton ./test_role test_role2 - Role test_role2 was created successfully $ $ tree test_role2/ test_role2/ |-- README.md |-- files | `-- hello.txt |-- tasks | `-- main.yml `-- vars 3 directories, 3 files $ $ cat test_role2/tasks/main.yml --- - name: copied hello.txt copy: src: hello.txt dest: /tmp/hello.txt mode: 0644