26
SOLA勉強会 第2回目 Vagrant入門

Sola勉強会 vagrant入門 ver.2

Embed Size (px)

DESCRIPTION

Vagrantとは何かということから始めて、Vagrantの使い方まで学習します。

Citation preview

Page 1: Sola勉強会 vagrant入門 ver.2

SOLA勉強会 第2回目

Vagrant入門

Page 2: Sola勉強会 vagrant入門 ver.2

自己紹介

大原 慎一郎 https://twitter.com/ohhara_shiojiri

(有)トラストネットワークス 塩尻インキュベーションプラザ108号室

サーバーやルーター、スイッチなどのインフラ系のシステム構築、運用、管理、監視、保守を行っています。

・長野県塩尻市に活動拠点を置く、市内プログラマー有志による団体・「オープンな環境でオープンな活動を目指す」を合言葉に集う・CoderDojo Shiojiri 開催 ・小学生高学年向けRuby教室開催・オープンソースCMS ZOMEKIを使ったサイト構築・塩尻市と東京都三鷹市で交互にOSS勉強会開催・IT技術書をリブライズで貸し出し、また市立図書館と協力

http://shiojiri-osslabo.com/

Page 3: Sola勉強会 vagrant入門 ver.2

本日のアジェンダ

・自分専用のサーバーが欲しい!

・Vagrantとは何か?

・仮想マシン環境(Provider)・Vagrantインストール

・Boxファイル用イメージ

・Vagrantコマンド

・Vagrantプラグイン

・ネットワーク設定

・次回 プロビジョニング(Provisioning)

Page 4: Sola勉強会 vagrant入門 ver.2

自分専用のサーバーが欲しい!

・共有サーバーでは自由に使えない。

・複数案件でサーバーが複雑化(VirtualHost)・webサーバーのport80番を使いたい!

・XAMPP入れたけど、うまく動かない!

・自分の環境だけor以外で動かない!

・開発学習する自分専用のサーバーが欲しい!

・でもサーバーを準備するお金が無いorz・ネットが使えない場所でも開発学習したい!

Page 5: Sola勉強会 vagrant入門 ver.2

Vagrantとは何か?

・仮想サーバー環境の自動化ツール

・自分のPCに仮想サーバーを複数作成出来る。

・仮想サーバーは自分専用で自由に使える。

・作成や起動停止など、コマンド1つで完結

・サンドボックス機能で、過去に戻れる!

・クラウド対応で、そのまま本番へ展開出来る。

・Chef+Gitでサーバー構築手順を自動化

・Windows,MacOSX,Linuxに対応

Page 6: Sola勉強会 vagrant入門 ver.2

仮想マシン環境(Provider)

・対応している仮想マシン環境(Provider) VirtualBox,VMWare,AWS(EC2)

・今回はVirtualBoxをインストールします。

 https://www.virtualbox.org/wiki/Downloads 最新版4.3.4でも動作しますが、4.2系を選択。

 各OSに合わせてインストールして下さい。

Page 7: Sola勉強会 vagrant入門 ver.2

Vagrantインストール

・Vagrantをインストールします。

 http://downloads.vagrantup.com/ ※2013年12月13日時点の最新版v1.3.5

 各OSに合わせてインストールします。

・インストール後、bash端末画面で確認します。

vagrant -v

Page 8: Sola勉強会 vagrant入門 ver.2

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

Page 9: Sola勉強会 vagrant入門 ver.2

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

Page 10: Sola勉強会 vagrant入門 ver.2

Vagrantコマンド

・Vagrantfileの作成

仮想サーバー環境の初期設定ファイルを作成します。

作成したBoxファイル名を指定します。

コマンドを実行したディレクトリ配下に作成されるので、事前に適切なディレクトリを作成して移動します。

例 vagrant init [BOXファイル名]

vagrant init centos64

Page 11: Sola勉強会 vagrant入門 ver.2

Vagrantコマンド

・起動

 Vagrantfileを作成したディレクトリで実行します。

・状態表示

 仮想サーバーの状態を確認出来ます。

vagrant up

vagrant status

Page 12: Sola勉強会 vagrant入門 ver.2

Vagrantコマンド

・サスペンド

 仮想サーバーを一時停止します。

・シャットダウン

 仮想サーバーをシャットダウンします。

vagrant suspend

vagrant halt

Page 13: Sola勉強会 vagrant入門 ver.2

Vagrantコマンド

・破棄

 仮想サーバーを破棄します。

 中身は消えますが、Vagrantfileから再度、仮想サーバーを

 新規作成することができます。

vagrant destroy

Page 14: Sola勉強会 vagrant入門 ver.2

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の場合

  標準でインストール済み

 

Page 15: Sola勉強会 vagrant入門 ver.2

Vagrantコマンド

・SSHクライアントの設定 SSH接続設定ファイルを作成します。

 Vagrantに自動作成コマンドがあります。

 ユーザーディレクトリ配下へ.ssh/configファイルが出来ます。

 

vagrant ssh-config --host centos64 >> ~/.ssh/config

例 vagrant ssh-config --host [ホスト名] >> ~/.ssh/config

Page 16: Sola勉強会 vagrant入門 ver.2

Vagrantコマンド

・仮想サーバーへログインします。 Vagrantfileファイルのあるディレクトリにて実行

 または、SSHクライアントから直接ログイン出来ます。

 

vagrant ssh

ssh centos64

例 ssh [ホスト名]

Page 17: Sola勉強会 vagrant入門 ver.2

Vagrantプラグイン

・Vagrantプラグイン プラグインを追加することで、Vagrantの機能が拡張します。

 インストール済みのプラグイン表示

例 vagrant plugin install [プラグイン名]

vagrant plugin list

Page 18: Sola勉強会 vagrant入門 ver.2

Vagrantプラグイン

・サンドボックス機能 過去のある時点の状態にサーバーを戻す機能です。

 サンドボックスを有効にする。

 サンドボックスの状態確認

vagrant plugin install sahara

vagrant sandbox on

vagrant sandbox status

Page 19: Sola勉強会 vagrant入門 ver.2

Vagrantプラグイン

・サンドボックス機能(つづき) サーバーの状態を戻すロールバックを実行する。

 サーバーの状態をコミットして更新を実行する。

 サンドボックスを無効にする。

vagrant sandbox rollback

vagrant sandbox commit

vagrant sandbox off

Page 20: Sola勉強会 vagrant入門 ver.2

ネットワーク設定

・Vagrantfileの標準設定では、仮想サーバーの中からネットワークには接続出来ますが、外部から仮想サーバーへssh以外は接続が出来ません。

・ネットワーク設定状態を確認してみます。

vagrant upvagrant sshifconfigroutecat /etc/resolv.conf

Page 21: Sola勉強会 vagrant入門 ver.2

ネットワーク設定

・Vagrantfileを編集して、外部から接続出来るように設定します。

・起動中の仮想サーバーを停止します。

・Vagrantfileを編集します。

vi Vagrantfile

vagrant halt

Page 22: Sola勉強会 vagrant入門 ver.2

ネットワーク設定

・Vagrantfileのネットワーク設定をします。

・#を消して、IPアドレス番号を適切に変更します。

config.vm.network :private_network, ip: “192.168.56.10”

・再度、仮想サーバーを起動してログインします。

・ネットワーク設定状態を確認してみます。

vagrant upvagrant sshifconfigroute

Page 23: Sola勉強会 vagrant入門 ver.2

ネットワーク設定

・追加されたeth1に、設定したIPアドレス番号が割り当てられています。

・ホスト側から接続を確認してみます。

ping 192.168.56.10

・この一連の設定は、ホストオンリーネットワーク設定で、VirtualBoxマネージャーのメニューから[ファイル]-[環境設定]-[ネットワーク]で設定確認することが出来ます。

・状況に合わせてネットワーク設定を変更します。

Page 24: Sola勉強会 vagrant入門 ver.2

ネットワーク設定

・設定されたIPアドレスで接続できる様に変更します。

vi ~/.ssh/config

Host centos64 HostName 192.168.56.10 User vagrant Port 22

・HostNameにIPアドレスを設定します。

・Portをsshの22に変更します。

Page 25: Sola勉強会 vagrant入門 ver.2

ネットワーク設定

・仮想サーバーへログインして確認します。

設定されたIPアドレスでログイン出来れば、このIPアドレスをホスト側から利用することが出来ます。

webサービスの場合、ホスト側からブラウザで確認出来ます。

 http://192.168.56.10/

ssh centos64

例 ssh [ホスト名]

Page 26: Sola勉強会 vagrant入門 ver.2

次回 プロビジョニング(Provisioning)

・サーバー構築の手順を自動化するツール

 Chef,Puppet,ShellScript 等・バージョン管理はGitにお任せ

・次回の勉強会では、Chefをテーマにします。

・Vagrant+Chef+Gitのセットで

 開発学習環境が完成します!

・本日の勉強会、お疲れ様でした。