Ansibleを使い始めて約1ヶ月。
playbookを作成しながら思ったことがある。
・・・僕が書いたPlaybook見ずれぇ!!!
どうにかならないかとググってみたら、
Roleを活用することで綺麗に見やすくPlaybookが作れるみたい…🤥
ふむ・・・Roleとはなんぞや?
Roleとは
playbookで読み込むモジュール。 playbookは複数のRoleを読み込むことができるため、構成する内容を適切な粒度のRoleに分割し、それをインクルードする形でplaybookを構成する。
って感じらしい。
Ansibleのドキュメント張っておきます!
なるほど・・・確かに見やすくなりそう!
ってことで使っていきたいと思います。
ansible / inventry/ hosts roles/ httpd/ tasks/ main.yml nkf/ tasks/ main.yml test.yml
ディレクトリ構成はこんな感じ。(見ずらいですね、、、すみません。)
root直下にansibleを作成。
ゲストでhttpdのインストールとnkfのインストールを行ってみる。
Roleはrolesディレクトリの配下に作成。Roleの下には、tasks, ディレクトリを作成して、Roleの定義を記述。
# roles/httpd/tasks/main.yml # - name: install httpd yum: name=httpd state=lates
# roles/nkf/tasks/main.yml # - name: install nkf yum: name=nkf state=lates
よし、準備はできた。
次は実行するPlaybookの作成。
# ansible/test.yml # - hosts: targets roles: - httpd - nkf
よし実行っと。
# ansible-playbook -i /ansible/inventory/hosts test.yml TASK [httpd : install httpd] ***************************************************************** ok: [182.22.156.198] TASK [nkf : nkf install] ******************************************************************* ok: [182.22.156.198]
おおおお通った!!
実行するPlaybook4行だけ!!!すげぇ!!!奇麗!!w
いろいろ出来るようになると楽しいですね!もっと勉強します!!!
ではまた~~~🤥