Vagrantは、Rubyで組まれたスクリプトで、仮想マシン上の開発環境の構築・配布の自動化を支援するためのツールです。本書はVagrantについての初の解説書であり、作者であるMitchell Hashimoto氏が書き下ろした決定版です。
https://www.ohmsha.co.jp/book/9784873116655/
正誤表やDLデータ等がある場合はこちらに掲載しています
序文
訳者まえがき
はじめに
1章 Vagrantの紹介
1.1 Vagrantを使う理由
1.2 Vagrant道
1.3 Vagrant以外の選択肢
1.3.1 単純なデスクトップ仮想化
1.3.2 コンテナ
1.3.3 クラウド
1.4 Vagrantのセットアップ
1.5 VirtualBoxのインストール
1.5.1 Vagrantのインストール
1.5.2 よくある間違い
1.6 VirtualBoxなしでのVagrantの利用
1.7 ヘルプ!
2章 初めてのVagrantマシン
2.1 起動と実行
2.2 Vagrantfile
2.3 V1とV2の設定
2.4 ボックス
2.5 起動
2.6 仮想マシンでの作業
2.6.1 Vagrantマシンの状態
2.6.2 SSH
2.6.3 共有ファイルシステム
2.6.4 基本的なネットワーキング
2.6.5 ティアダウン
2.7 まとめ
3章 Vagrant仮想マシンのプロビジョニング
3.1 自動プロビジョニングを行う理由
3.2 サポートされているプロビジョナ
3.3 手動でのApacheのセットアップ
3.4 自動化プロビジョニングの基本
3.4.1 シェルスクリプト
3.4.2 Chef
3.4.3 Puppet
3.5 複数のプロビジョナ
3.6 「プロビジョニングしない」モード
3.7 詳細なプロビジョナの利用方法
3.7.1 シェルスクリプト
3.7.2 Chef Server
3.7.3 Puppet
3.8 まとめ
4章 Vagrantにおけるネットワーク
4.1 フォワードされたポート
4.1.1 長所と短所
4.1.2 基本的な使用方法
4.1.3 衝突の検出と修正
4.1.4 TCP対UDP
4.2 ホストのみのネットワーク
4.2.1 長所と短所
4.2.2 基本的な使用方法
4.2.3 ゲストのオペレーティングシステムへの依存性
4.3 ブリッジのネットワーク
4.3.1 長所と短所
4.3.2 基本的な使用方法
4.4 ネットワークの選択肢の組み合わせ
4.5 1番目のネットワークインターフェースとしての
NATに対する要求
4.6 この後は?
5章 複数マシン構成のクラスタのモデリング
5.1 複数の仮想マシンの実行
5.2 複数のマシンの制御
5.3 マシン間の通信
5.3.1 ホストのみのネットワーク
5.3.2 ブリッジされたネットワーク
5.4 実際的な例:MySQL
5.5 次章では
6章 ボックス
6.1 ボックスを使う理由
6.2 ボックスのフォーマット
6.3 Vagrantを使用しない基本的なボックスの管理
6.4 既存環境からの新しいボックスの生成
6.5 スクラッチからの新しいボックスの生成
6.5.1 VirtualBoxのマシンの作成
6.5.2 オペレーティングシステムの設定
6.5.3 VirtualBox Guest Additionsのインストール
6.5.4 追加のソフトウェア
6.5.5 最終的なボックスのサイズの最小化
6.5.6 パッケージ化
6.5.7 Vagrantfileのデフォルトの設定
6.6 次章では
7章 プラグインによるVagrantの拡張
7.1 拡張可能な機能
7.2 Vagrantのプラグインの管理
7.3 プラグインの開発の基本
7.3.1 プラグインの定義
7.3.2 プラグインのコンポーネント
7.3.3 エラー処理
7.3.4 Vagrantの内部
7.4 プラグイン開発の基本的な環境
7.5 カスタムコマンドの開発
7.5.1 コンポーネント
7.5.2 実装
7.5.3 仮想マシンに対する処理
7.5.4 マルチマシン環境の扱い
7.5.5 コマンドラインオプションのパース
7.6 新しい設定オプションの追加
7.6.1 コンポーネント
7.6.2 実装
7.6.3 設定へのアクセス
7.6.4 設定のマージ
7.6.5 バリデーション
7.7 カスタムプロビジョナの追加
7.7.1 コンポーネント
7.7.2 実装
7.7.3 プロビジョナの設定
7.7.4 マシンの設定
7.8 Vagrantの既存動作の変更
7.8.1 コンポーネント
7.8.2 実装
7.8.3 アクションの環境における便利なキー
7.9 さらに深く学ぶには
7.10 プラグインの他のコンポーネント
7.11 プラグインのパッケージ化
付録A Vagrantの環境変数
A.1 VAGRANT_CWD
A.2 VAGRANT_HOME
A.3 VAGRANT_LOG
A.4 VAGRANT_NO_PLUGINS
A.5 VAGRANT_VAGRANTFILE
付録B Vagrantの設定リファレンス
付録C トラブルシューティングとデバッグ
C.1 IRC
C.2 メーリングリスト / Google Group
C.3 プロフェッショナルサポート
付録D Vagrantプラグイン(吉羽 龍太郎)
D.1 Sahara
D.1.1 概要
D.1.2 動作環境とインストール方法
D.1.3 使い方
D.1.4 複数仮想マシンへの対応
D.1.5 注意すべきこと
D.2 vagrant-global-status
D.2.1 概要
D.2.2 動作環境とインストール方法
D.2.3 使い方
D.3 vagrant-vbguest
D.3.1 概要
D.3.2 動作環境とインストール方法
D.3.3 使い方
D.4 vagrant-omnibus
D.4.1 概要
D.4.2 動作環境とインストール方法
D.4.3 使い方
D.5 vagrant-berkshelf
D.5.1 概要
D.5.2 動作環境とインストール方法
D.5.3 使い方
D.6 vagrant-cachier
D.6.1 概要
D.6.2 インストール方法
D.6.3 使い方
D.7 vagrant-exec
D.7.1 概要
D.7.2 インストール方法
D.7.3 使い方
付録E Packer(吉羽 龍太郎)
E.1 インストール
E.2 Vagrant用のBoxの作成
E.2.1 builders
E.2.2 provisioners
E.2.3 post-processors
E.3 仮想マシンテンプレートのビルド
E.4 Amazon EC2用のEBS-Backed AMIの作成
E.5 まとめ
付録F VagrantとAmazon EC2(伊藤 直也)
F.1 Vagrantとクラウドサービス
F.1.1 EC2をvagrant up
F.2 事前準備: 必要なもの
F.2.1 アクセスキーの作成
F.2.2 EC2キーペアの作成
F.2.3 vagrant-awsプラグインのインストール
F.2.4 dummy boxの追加
F.3 AWSプロバイダを利用する
F.3.1 Vagrantfile
F.3.2 EC2インスタンスの起動
F.3.3 インスタンスへのSSH
F.3.4 インスタンスの破棄
F.4 Synced Folders
F.4.1 sudoコマンドが失敗する原因を解決する
F.4.2 Synced Folderでファイルを共有する
F.5 VagrantでAmazon EC2を扱えると何が嬉しいか?
F.6 Vagrantfile内のセキュリティクレデンシャルを外部化する
F.7 VagrantでEC2インスタンスのプロビジョニング
F.7.1 vagrant-omnibusの利用
F.7.2 Chefのクックブックの作成
F.7.3 Vagrantfileでプロビジョナーを設定する
F.7.4 プロビジョニングを実行する
F.8 複数のEC2インスタンスをVagrantで起動する
F.9 VagrantfileをDRYに
F.9.1 マルチVMとプロビジョニング
F.10 落ち穂拾い
F.10.1 VPCへの対応
F.10.2 User Data
F.10.3 Packer
索引