Ansible 初心者がplaybook~roleを学ぶ ⑤ (wordpress環境構築)-roles(ベストプラクティス)編-


目的であった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つくろうと思ってたが共通なものが、それ程なかった。修正する際の課題。