PuppetでApacheを管理してみる part1
久々にpuppetの話題に戻りたいと思います。
数回に分けて、Apacheの構成管理をやって見たいと思います。
今日の記事は、構成管理の方針だけを取り上げます。
どうやって管理するか
自分の勉強環境で、Apacheの構成管理をやります。
勉強環境の構成はこちらの記事を参照してください。
こんなシステム構成で色々勉強していく - ressyのナレッジ的なブログ
今回は、この方針でApacheを構成管理します。
- WEB01でApacheを運用
- DBS01とMGS01では運用しない
- WEB01で使うコンフィグ(httpd.confなど)はMasterサーバ(=MGS01)で管理
- puppetのmodule機能を使用する
module機能
Puppetでは、マニフェストファイルを分割して管理するためにmodule機能を持っています。
構成管理の対象が増えると、/etc/puppet/manifests/site.pp
だけで全て記載すると、マニフェストの改修がやりにくくなります。
こういった時に、module機能を使用して例えば機能単位(Apache用のmodule、mysql用のmoduleなど)でファイルを分割すれば、マニフェストの管理・改修がやりやすくなるわけです。
続いて、module機能を具体的にどうやって使用するかです。
moduleを格納するディレクトリは以下のコマンドで確認できます。
# puppet config print | grep basemodulepath basemodulepath = /etc/puppet/modules:/usr/share/puppet/modules
上記の場合、/etc/puppet/modules
か/usr/share/puppet/modules
が該当します。
今回は、/etc/puppet/modules
に、Apacheのモジュールを作成します。
ディレクトリ名はhttp
とします。
# mkdir /etc/puppet/modules/http
さらに以下のディレクトリを作成します。
# mkdir /etc/puppet/modules/http/manifests # mkdir /etc/puppet/modules/http/templates # mkdir /etc/puppet/modules/http/files # mkdir /etc/puppet/modules/http/lib # mkdir /etc/puppet/modules/http/tests # mkdir /etc/puppet/modules/http/spec
各ディレクトリは以下を格納します。
- manifests:モジュールのマニフェストを格納
- templates:moduleで必要なconfigファイルなどを格納
- files:moduleで必要なconfigファイルなどを格納
- lib:カスタムfactsやカスタムリソース型などのプラグインを格納
- 例えば、
file
、package
などのリソースタイプを拡張した独自のリソース型を定義できる
- 例えば、
- tests:moduleのマニフェストの使い方を書いたドキュメントなどを格納
- spec:rspec-puppetで書かれたテストファイルを格納
moduleのディレクトリ構成は基本的に決まってます。
こちらを参考にすると良いでしょう。
Modules and Classes ~ モジュールとクラス — Documentation — Puppet
とりあえず使うかもって思ったディレクトリだけを作成しました(結局使わないかもディレクトリがあるかも)。
今回はここまで。
説明だけだと、moduleについてあまりイメージがわかないと思います。
次回以降、実際の設定を取り上げるのでそれを見ながら理解するのが良いかと思います。
参考
この記事は、以下を参考にしています。
Modules and Classes ~ モジュールとクラス — Documentation — Puppet
私とPuppet 基本編 その2 (Module,File,Templates,Variable) - Qiita