Upload
shinichiro-ohhara
View
1.136
Download
1
Embed Size (px)
DESCRIPTION
Vagrantとは何かということから始めて、Vagrantの使い方まで学習します。
Citation preview
自己紹介
大原 慎一郎 https://twitter.com/ohhara_shiojiri
(有)トラストネットワークス 塩尻インキュベーションプラザ108号室
サーバーやルーター、スイッチなどのインフラ系のシステム構築、運用、管理、監視、保守を行っています。
・長野県塩尻市に活動拠点を置く、市内プログラマー有志による団体・「オープンな環境でオープンな活動を目指す」を合言葉に集う・CoderDojo Shiojiri 開催 ・小学生高学年向けRuby教室開催・オープンソースCMS ZOMEKIを使ったサイト構築・塩尻市と東京都三鷹市で交互にOSS勉強会開催・IT技術書をリブライズで貸し出し、また市立図書館と協力
http://shiojiri-osslabo.com/
本日のアジェンダ
・自分専用のサーバーが欲しい!
・Vagrantとは何か?
・仮想マシン環境(Provider)・Vagrantインストール
・Boxファイル用イメージ
・Vagrantコマンド
・Vagrantプラグイン
・ネットワーク設定
・次回 プロビジョニング(Provisioning)
自分専用のサーバーが欲しい!
・共有サーバーでは自由に使えない。
・複数案件でサーバーが複雑化(VirtualHost)・webサーバーのport80番を使いたい!
・XAMPP入れたけど、うまく動かない!
・自分の環境だけor以外で動かない!
・開発学習する自分専用のサーバーが欲しい!
・でもサーバーを準備するお金が無いorz・ネットが使えない場所でも開発学習したい!
Vagrantとは何か?
・仮想サーバー環境の自動化ツール
・自分のPCに仮想サーバーを複数作成出来る。
・仮想サーバーは自分専用で自由に使える。
・作成や起動停止など、コマンド1つで完結
・サンドボックス機能で、過去に戻れる!
・クラウド対応で、そのまま本番へ展開出来る。
・Chef+Gitでサーバー構築手順を自動化
・Windows,MacOSX,Linuxに対応
仮想マシン環境(Provider)
・対応している仮想マシン環境(Provider) VirtualBox,VMWare,AWS(EC2)
・今回はVirtualBoxをインストールします。
https://www.virtualbox.org/wiki/Downloads 最新版4.3.4でも動作しますが、4.2系を選択。
各OSに合わせてインストールして下さい。
Vagrantインストール
・Vagrantをインストールします。
http://downloads.vagrantup.com/ ※2013年12月13日時点の最新版v1.3.5
各OSに合わせてインストールします。
・インストール後、bash端末画面で確認します。
vagrant -v
Boxファイル用イメージ
・仮想サーバーのイメージファイル
・公開されているVagrantイメージ
http://www.vagrantbox.es/ 動作するProviderに合わせて選択します。
今回はCentOS6.4のURLをCopyします。 CentOS 6.4 x86_64 Minimal (VirtualBox Guest Additions 4.2.16, Chef 11.6.0, Puppet 3.2.3) http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box
Vagrantコマンド
・Boxファイルの作成
イメージファイルをダウンロードしてBOXファイルを作成します。
1度作成されたBoxファイルは流用出来ます。
分かりやすい[BOXファイル名]を付けましょう。
例 vagrant box add [BOXファイル名] [URL]
vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box
Vagrantコマンド
・Vagrantfileの作成
仮想サーバー環境の初期設定ファイルを作成します。
作成したBoxファイル名を指定します。
コマンドを実行したディレクトリ配下に作成されるので、事前に適切なディレクトリを作成して移動します。
例 vagrant init [BOXファイル名]
vagrant init centos64
Vagrantコマンド
・起動
Vagrantfileを作成したディレクトリで実行します。
・状態表示
仮想サーバーの状態を確認出来ます。
vagrant up
vagrant status
Vagrantコマンド
・サスペンド
仮想サーバーを一時停止します。
・シャットダウン
仮想サーバーをシャットダウンします。
vagrant suspend
vagrant halt
Vagrantコマンド
・破棄
仮想サーバーを破棄します。
中身は消えますが、Vagrantfileから再度、仮想サーバーを
新規作成することができます。
vagrant destroy
Vagrantコマンド
・SSHクライアントのインストール sshクライアントを使用して仮想サーバーへログインします。
コマンドライン操作する為、各OSに応じてインストールします。
Windowsの場合
Git bash(MINGW32) http://git-scm.com Linuxの場合(インストール済みの場合が多い)
RedHat(CentOS)系 → yum install openssh-clients Debian(Ubuntu)系 → apt-get install ssh MacOSXの場合
標準でインストール済み
Vagrantコマンド
・SSHクライアントの設定 SSH接続設定ファイルを作成します。
Vagrantに自動作成コマンドがあります。
ユーザーディレクトリ配下へ.ssh/configファイルが出来ます。
vagrant ssh-config --host centos64 >> ~/.ssh/config
例 vagrant ssh-config --host [ホスト名] >> ~/.ssh/config
Vagrantコマンド
・仮想サーバーへログインします。 Vagrantfileファイルのあるディレクトリにて実行
または、SSHクライアントから直接ログイン出来ます。
vagrant ssh
ssh centos64
例 ssh [ホスト名]
Vagrantプラグイン
・Vagrantプラグイン プラグインを追加することで、Vagrantの機能が拡張します。
インストール済みのプラグイン表示
例 vagrant plugin install [プラグイン名]
vagrant plugin list
Vagrantプラグイン
・サンドボックス機能 過去のある時点の状態にサーバーを戻す機能です。
サンドボックスを有効にする。
サンドボックスの状態確認
vagrant plugin install sahara
vagrant sandbox on
vagrant sandbox status
Vagrantプラグイン
・サンドボックス機能(つづき) サーバーの状態を戻すロールバックを実行する。
サーバーの状態をコミットして更新を実行する。
サンドボックスを無効にする。
vagrant sandbox rollback
vagrant sandbox commit
vagrant sandbox off
ネットワーク設定
・Vagrantfileの標準設定では、仮想サーバーの中からネットワークには接続出来ますが、外部から仮想サーバーへssh以外は接続が出来ません。
・ネットワーク設定状態を確認してみます。
vagrant upvagrant sshifconfigroutecat /etc/resolv.conf
ネットワーク設定
・Vagrantfileを編集して、外部から接続出来るように設定します。
・起動中の仮想サーバーを停止します。
・Vagrantfileを編集します。
vi Vagrantfile
vagrant halt
ネットワーク設定
・Vagrantfileのネットワーク設定をします。
・#を消して、IPアドレス番号を適切に変更します。
config.vm.network :private_network, ip: “192.168.56.10”
・再度、仮想サーバーを起動してログインします。
・ネットワーク設定状態を確認してみます。
vagrant upvagrant sshifconfigroute
ネットワーク設定
・追加されたeth1に、設定したIPアドレス番号が割り当てられています。
・ホスト側から接続を確認してみます。
ping 192.168.56.10
・この一連の設定は、ホストオンリーネットワーク設定で、VirtualBoxマネージャーのメニューから[ファイル]-[環境設定]-[ネットワーク]で設定確認することが出来ます。
・状況に合わせてネットワーク設定を変更します。
ネットワーク設定
・設定されたIPアドレスで接続できる様に変更します。
vi ~/.ssh/config
Host centos64 HostName 192.168.56.10 User vagrant Port 22
・HostNameにIPアドレスを設定します。
・Portをsshの22に変更します。
ネットワーク設定
・仮想サーバーへログインして確認します。
設定されたIPアドレスでログイン出来れば、このIPアドレスをホスト側から利用することが出来ます。
webサービスの場合、ホスト側からブラウザで確認出来ます。
http://192.168.56.10/
ssh centos64
例 ssh [ホスト名]
次回 プロビジョニング(Provisioning)
・サーバー構築の手順を自動化するツール
Chef,Puppet,ShellScript 等・バージョン管理はGitにお任せ
・次回の勉強会では、Chefをテーマにします。
・Vagrant+Chef+Gitのセットで
開発学習環境が完成します!
・本日の勉強会、お疲れ様でした。