目的であったroles理解に入ります。
ルールに従ったroleの構成を作る。
(Ansibleが理解して処理できるディレクトリ構成をつくる、数学の公式みたいなイメージ)
以下公式を参考に作成を進めた。
https://docs.ansible.com/ansible/2.9_ja/user_guide/playbooks_best_practices.html
#「playbook単体の構成」と「roles構成の図解」
※太字はディレクトリ、細字はファイルを意味します。
#理解を深めるため、違いを比較
前者は構成がシンプル、後者は構成が複雑に見える。
単一のplaybookの場合は、
処理をplaybook一つにおさめているため、その作業専用としてしか使えない。
rolesの場合は
処理などを細分化してパーツ化することができるため、別の作業へ流用性が高い。
#記述(最上位~最下位を連結させるイメージ)
<site.yml>
---
- name: Wordpress build web server
import_playbook: wordpress_web.yml
<wordpress_web.yml>
---
- hosts: web
become: yes
vars_files:
- group_vars/web.yml
roles:
- web
<roles/web/tasks/main.yml>
- name: web install
import_tasks: web.yml
<roles/web/tasks/web.yml>
---
- name: install repo epel-release,remi-release-7
yum:
name: "{{ web.repositorys }}"
~略~
前回作成した単一playbookをrolesに置き換えて作成したものをgit habで公開。
https://github.com/hiro0413ike/ansible_roles_study/tree/main/ansible_roles
###実行コマンド
$ ansible-playbook -i inventory/hosts site.yml --check … チェック実行
$ ansible-playbook -i inventory/hosts site.yml … 本番適用
-メモ-
1.図解についてはExcelで自分の理解を絵にした感じです。
2.Commonつくろうと思ってたが共通なものが、それ程なかった。修正する際の課題。