Install
仮想環境をエミュレートするツール
VirtualBox
VirtualBox などの仮想環境エミュレータをコマンドライン上から操作するツール
Vargrant
Add box
Vagrant は仮想イメージを box とよばれるフォーマットで扱う。
box を手っ取り早く入手するには virtualbox が公式で提供しているbox を Atlas のサイトからダウンロードする。こちら
実際には Web ブラウザからダウンロードするのではなく
$ vagrant box add ubuntu/trusty64
というコマンドを実行することで、ローカルの vagrant box の一覧にダウンロードされ追加される。ubuntu/trusty64 という部分が、追加するboxの名前を指定する部分になる。この名前を Atlas のサイトに登録されているかどうか確認し、該当するものがあれば、ローカルにダウンロードされる。
コマンド実行後は
$ vagrant box list
でローカルに登録されたbox のリストを確認することができる。
Activate Linux
box を登録したら仮想マシンを作成し立ち上げる。仮想マシンはディレクトリ毎に管理される。
- 適当なディレクトリを作成し、その中に入る
-
$ vagrant init ubuntu/trusty64で、ubuntu/trusty64のboxを指定した初期化を行う -
$ lsでVagrantfileが作成されていることを確認する。Windows ならdir -
$ vagrant upでVagrantfileを元に仮想マシンを作成し起動する -
$ vagrant sshで起動したマシンに login する。デフォルトではユーザ名とパスワードはvagrant- Windows の場合は TeraTerm などから、ホスト
127.0.0.1、ポート2222でログインする
- Windows の場合は TeraTerm などから、ホスト
Tips : Vagrantfile が box名を管理している。
config.vm.box = "ubuntu/trusty64"マシンの
box名を設定する部分。vagrant init <box名>で指定したものが記載される。
vagrant upの際に、このbox名を参照し、ローカルのbox一覧にあれば、そのboxを使用する。なければatlasに探しに行く。
Control VirtualMachine
-
$ vagrant upマシンの作成と起動 -
$ vagrant haltマシンのシャットダウン -
$ vagrant reloadhalt と up を行う -
$ vagrant destroyマシンを削除する
Configure Network
Vagrantfile に仮想マシンの設定が記載されている。マシンのネットワークの設定もそこで行える。
NAT
デフォルトの状態ではNAT接続になっており、仮想マシンから外のネットワークには接続できるが、外から仮想マシンには接続できない。
PortFoward
config.vm.network "forwarded_port", guest: 80, host: 8080
NAT接続の状態で、特定のポートに外からの接続を受け付けたい場合にはポートフォワードで対応できる。guest: に仮想マシン(ゲストマシン) のポートを指定し、host: にホストマシンのポートを指定する。ホストマシンに対して指定したポートにアクセスがあると、そのままゲストマシンに指定したポートにアクセスを投げてもらう設定
Private
config.vm.network "private_network", ip: "192.168.33.10"
ホストマシン内に閉じたネットワークを形成する。仮想マシン(ゲストマシン)は一切外のネットワークに繋がらない
Public
config.vm.network "public_network"
ホストマシンと同列のLAN内に仮想マシンがあるにようする。ブリッジ接続を行う。
Provisioning
$ vagrant up 実行と同時に環境構築を行うことできる。いくつかやり方があるが、Vagrantfile 内に shell プログラムを書いて、up 時に実行されるようにできる。
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install -y git
SHELL
こうすることで、up 時に
sudo apt-get updatesudo apt-get install -y git
の2つのコマンドが実行され、自動的に git がインストールされた環境を手に入れることができる。
$ vagrant provision コマンドを実行しても、実行される。
Provisioning は shell 以外にも chef や puppet を利用できる。