実際のプレイブック構成を使った利用

プレイブックの構成が多少複雑になっていたとしても基本の利用方法は変わりません。
ここでは例としてOS初期設定を行うプレイブックを利用するにあたっての手順を進めていきます。

まず同様に実行環境を準備し、
そこにテンプレートとなるプレイブックを用意、配置しておきます。


ホスト情報の記載


対象ホスト情報を定義していきます。
ホスト情報はhosts内に格納します。 hosts内はデフォルトでは下記のように大きくグループ分けされています。

  • hosts
    • production
    • stage
    • develop

各ファイルはその名のとおり本番、ステージング、開発環境のグループになっています。 本番環境用のプレイブックをセットアップしていく場合productionを編集していきます。

各ホストグループファイルは中で下記のようにさらにグループが細分化されています。

# cat hosts/production
[webservers]
web1
web2

[dbservers]
db1
db2

[production:children]
webservers
dbservers

webserversがWEBサーバグループ、dbserversがDBサーバグループ、 production:childrenwebservers,dbservers両方全てとなっています。
グループ分けは 同一のプレイブックを実行するホスト 単位でグルーピングしましょう。

上記の場合production環境のApacheインストールを行いたい場合はプレイブックのhosts

 hosts: webservers

OS初期設定を行う場合は

 hosts: production

とグループ指定を変えるだけで簡単に「本番のWEBサーバ郡に」といった実行プレイブックの指定を行うことが出来ます。
実際に対象ホスト情報を記載すると書きのようになって行きます。

[webservers]
pweb-01 ansible_ssh_host=192.168.153.11
pweb-02 ansible_ssh_host=192.168.153.12

[dbservers]
pdb-01 ansible_ssh_host=192.168.153.21
pdb-02 ansible_ssh_host=192.168.153.22

[production:children]
webservers
dbservers


実行プランの作成


今回はOS初期設定を行うプレイブックを準備していきます。
まず利用するロールプレイブックを確認します。
OS初期設定には2つのロールが用意されています。

  • roles
    • dev_setting
    • init_setting

dev_setting 社内開発環境用の最低限の設定を行うロールプレイブックになります。
実行されるモジュールプレイブックはOSの初期設定やyum、cronやntp、ssh、postfixといった最低限のセットアップが行われます。

# view roles/dev_setting/meta/main.yml

定義する変数名はモジュールプレイブック名と同じ名前を取るようにしているため、allを見ることで
簡単にどのプレイブックの設定か分かるようになっています。
各プレイブックの詳細は後述のプレイブック詳細を確認してください。

init_setting
本番やSTG環境などで基本的に行うOS初期設定が網羅されたロールプレイブックになります。
dev_settingより実行するプレイブック数が増えセキュリティやユーザー作成まで含まれたプレイブックが実行されます。

# view roles/init_setting/meta/main.yml


実行プレイブックの作成


ロールを利用し、各環境の設定プレイブックを作成すると、下記のようになり、
後は細かい変数値の調整を行うだけで各環境に対して簡単に設定スクリプトを実行する事が出来ます。

# vim provisioning.yml
# [Production]
- name: Prod default Settings
  hosts: production
  become: yes
  roles:
    - init_setting

# [Stage]
- name: STG default Settings
  hosts: stage
  become: yes
  roles:
    - init_setting

# [Develop]
- name: Dev default Settings
  hosts: develop
  roles:
    - dev_setting

results matching ""

    No results matching ""