kickstart, puppet, docker
TRANSCRIPT
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 ハンズオン資料