Kickstart, Puppet, Docker
内容
● サーバー構築の自動化の基礎知識をまとめる
● Solaris 10とRHEL 7で比較
● Linux Kickstart/Solaris Jumpstart
● 仮想サーバー
● Docker
● Puppet
● Docker/Puppetで変わる
● Docker or Puppet?
● 参考
Kickstart/Jumpstart
● Kickstart/Jumpstartファイルで指定した設定に
従ってOSを自動的にインストールする方法
● 設定項目の一部
Kickstart Jumpstart
インストール
 インストール元
 言語/キーボード
 rootパスワード
 パーティション
 ユーザー/Group
 ネットワーク
パッケージ
後処理スクリプト
インストール元
パーティション
swapサイズ
マウントするリモートデバイス
ミラーリング
Locale
インストールパッケージ
SUNWname
終了スクリプト(Bourne shell)
仮想サーバー 1/2
● ハイパーバイザー型はホストOSを経由しない分
性能が高い
● ホスト型 : Virtualbox, Windows XPモード
● ハイパーバイザー型 : VMWare ESXi, Xenなど
アプリ
ホスト型
物理サーバー
ハイパーバイザー
ゲストOS
アプリ アプリ
ゲストOS
アプリ
ハイパーバイザー型
物理サーバー
仮想化ソフト
ゲストOS
アプリ アプリ
ホストOS
仮想サーバー 2/2
● ハイパーバイザー型 : VMWare ESXi, Xenなど
● コンテナ型 : LXC, Docker, Zoneなど
– 起動が早い
– ファイルシステム、プロセステーブル、ネットワー
ク設定などを隔離
– メモリやCPUのリソース配分もコンテナ単位
コンテナ型
物理サーバー
ハイパーバイザー
ゲストOS
アプリ アプリ
ゲストOS
アプリ
ハイパーバイザー型
物理サーバー
ホストOS
環境
アプリ
環境
アプリ
環境
アプリ
Docker
● OSイメージからライブラリ、環境変数などの
パッケージングするものを定義ファイル化
● 本番と同じコンテナをローカルで動かせる
● 親イメージからの差分のみ保存 → 小容量
物理サーバー
ホストOS
環境
アプリ
定義ファイル
読み込み
専用
OS
Java
Apache
書き込み可
Puppet
● サーバーやDocker/Zoneの設定を自動化
– ユーザー/グループの作成
– ネットワーク関連の設定
– パッケージのインストール、最新版への更新
– サービスの実行
– ファイル作成
– 任意のコマンド実行
– などなど
Puppet Master/Client
● 良くある運用形態
● ソースコード管理システムで管理する事が主流
Docker/Puppetで変わる
● 手順書が正しくない、勘違い、従わなかったな
どで動作しない事を防ぐ
● 手順書は設定ファイルに置き換え
● 変更はサーバーで行わず、設定ファイルを変更
変更 手順書書き換え
ファイル変更 設定適用
今まで
これから
Docker or Puppet?
● Puppetで出来る事はDockerでも出来る
● 何も知らなければDockerだけ覚えれば良い
● 既にPuppetの知識、経験、ファイルがあるなら
Docker + Puppetを組み合わせても良い
● DockerのインストールなどホストOSはPuppet
で管理
参考
● RHEL 7でkickstart
● Puppetを使ったLinuxシステムの設定自動管理
● PuppetとDockerで構成管理してみる
● https://www.docker.com/
● Dockerイメージの理解とコンテナのライフサイ
クル
● 体育会系 Docker Compose ハンズオン資料

Kickstart, Puppet, Docker