Ansible: template モジュールを使って nginx の バーチャルホスト設定

先日まとめたAnsible の Files モジュール群を見ていて、
そういえば template モジュールをあまりちゃんと使っていなかったなぁ、と思いました。
そんなわけで、軽く勉強がてらに記事にします。

Ansible Files Modules を整理してみる
AnsibleのFiles Modules、バージョンアップを積み重ねて色々と知らない内容も増えてきたり、少し間が空いてから触るときに迷った...
スポンサーリンク

前置き

template を適用するシーンは?

「同じようなことを一部だけ変えながら」作業する、というシーンで使えそうです。
今回は、nginx でバーチャルホスト設定をする想定で進めていきましょう。

環境

nginxを手っ取り早く動かすために、Vagrant + VirtualBox + Ubuntu で環境を作ります。
利用したVagrantfileは下記となります。

テンプレートエンジン

世の中にはテンプレートエンジンは数多あると思いますが、Ansibleで使えるのは Jinja2 というものです。

書き方は、こちらを参照してみてください。

Ansible template モジュールを使ってみる

nginx でバーチャルホスト利用する設定

Ansibleコマンドを実行するマシンで、OSのhostsファイルに下記を追加します。
私はmacOSなので、/etc/hostsファイルを修正。

ホスト2台として設定

下記のPlaybookファイルを作成します。
varshostsに、動作させたいサーバ名を記載しています。
今回は、sample1sample2だけを記載しておきます。

バーチャルホストの設定となる、nginx用のテンプレートファイルを下記のように作成します。

こちらは、動作確認用のHTMLファイル。これもテンプレートとして作成します。

最後に、 Ansible 用のインベントリファイルを作成します。 Vagrant 向けの設定を書き込んでおく感じです。

実行 その1

では、実行してみましょう。

実行は無事できました。

ちゃんとWebサーバに繋がるでしょうか?ブラウザで接続してみましょう。

サーバsample1

http://sample1/へ接続します。
無事に表示されましたね。

サーバsample2

http://sample2/へ接続します。
こちらも当然ですが、きちんと表示されました。

サーバsample3

最後に、/etc/hostsに記載しましたが、Playbookでは記載していないホストです。
http://sample3/へ接続してみると。。。
nginxの初期ページが表示されました。これはこれで、想定通りです。

ホスト3台として設定

では、設定変更してみましょう。
varshostsに、sample3を下記のように追記します。

実行 その2

では、再び Ansible を実行してみましょう。

sample3が増えたことで影響のある箇所はchangedとなっていますね。素晴らしい。

サーバsample3

再度、sample3に接続してみましょう。
http://sample3/

はい、今度はきちんと表示されました。

まとめ

template便利ですね。
今後も使い所を研究していきたいと思います。

スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする