Puppet
Puppetは、サーバの構成管理をするためのツールです。
サーバの設定を、自動化できます。
単純な自動化であればシェル実行とかでもよいですが、Puppetを使うとサーバごとに設定ファイルを変えるとか、サーバのIPを取得して設定ファイルに埋めるなど便利なことができます。
参考までに、Puppetの他にも設定を自動化できるツールに、Ansible、Chefがあります。
各ツールでサーバの構成管理ができますが、ツールの背景的な思想が違う印象です。なので、イメージが近いツールを選ぶと良いかと思います。(基本機能のみであれば、そこまで違いを感じないかも?)
- Ansible : サーバを操作する
- Puppet : サーバを管理する
- Chef : サーバを制御する、Rubyで
あと、各ツールのすみわけは、こんな感じです。
- Ansible : 小規模システム、ピンポイントに導入する場合
- Puppet : 大規模システム、がっつり構成管理する場合
- Chef : Rubyで書きたい場合
※意見には個人差があります。
4.x
2015年にでたバージョン4.x系でよくなっている部分もありますが、残念なことに4.xの情報が少ない状況です。せっかくなので、まとめていくことにしました。
途中で力尽きなければ、次のような構成になります。
- Puppet4.xではじめるサーバ設定自動化 1(インストール)
- Puppet4.xではじめるサーバ設定自動化 2(実行)
- Puppet4.xではじめるサーバ設定自動化 3(パッケージ管理)
- Puppet4.xではじめるサーバ設定自動化 4(ディレクトリ)
- Puppet4.xではじめるサーバ設定自動化 5(リンク)
- Puppet4.xではじめるサーバ設定自動化 6(ユーザ・グループ)
- Puppet4.xではじめるサーバ設定自動化 7(ファイル変更)
- Puppet4.xではじめるサーバ設定自動化 8(ファイルの穴埋めERB)
- Puppet4.xではじめるサーバ設定自動化 9(サービス管理)
- Puppet4.xではじめるサーバ設定自動化 10(コマンド実行)
- Puppet4.xではじめるサーバ設定自動化 11(条件分岐)
- Puppet4.xではじめるサーバ設定自動化 12(ループ)
- Puppet4.xではじめるサーバ設定自動化 13(サーバ情報を使うfacter)
- Puppet4.xではじめるサーバ設定自動化 14(apply注意点)
-
Puppet4.xではじめるサーバ設定自動化 15(AWSで使う)試せる環境なかった。。。
リリースノートの抜粋
4以降の変更で、主な内容をまとめていく予定です。(リンクがない項目は、まだです。)
- Puppet 4.0 リリースノート ピックアップ(まだ)
- Puppet 4.1 リリースノート ピックアップ(まだ)
- Puppet 4.2 リリースノート ピックアップ(まだ)
- Puppet 4.3 リリースノート ピックアップ(まだ)
- Puppet 4.4 リリースノート ピックアップ
- Puppet 4.5 リリースノート ピックアップ
- Puppet 4.6 リリースノート ピックアップ
- Puppet 4.7 リリースノート ピックアップ
- Puppet 4.8 リリースノート ピックアップ
手軽に使う場合
手軽にPuppetを使う場合、スタンドアローン(変更対象サーバに定義を置いて、その定義をそのサーバに反映する)での利用がおすすめなので、とりあえずスタンドアローン前提で書きます。
がっつり構成管理する場合は、エージェント/マスター構成(定義を反映するサーバと、定義が置いてあるサーバが違う)がよいですが、説明が長くなるのでシンプルな内容にしぼります。