とほほのVagrant入門
目次
- 環境
- Vagrant とは
- インストール
- ボックスを追加する
- VMを作成する
- SSHでログインする
- VM操作のいろいろ
- パッケージング
- フォルダ共有
- プロビジョニング
- アドレス割り当て
- ポートマッピング
環境
- 実施日: 2016年6月26日
- ホストOS: Windows 10
- ハイパーバイザ: VirtualBox 5.0.22
- Vagrant 1.8.4
Vagrant とは
- 仮想マシン(VM)管理ツール。
- VirtualBox, VMware などのハイパーバイザのフロントエンドとして機能する。
- VMイメージ、メモリ使用量、ネットワーク設定などを Vagrantfile というファイルで定義しておく。
インストール
下記から Vagrant をインストールする。
ボックスを追加する
C:\> vagrant box add centos67 https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box C:\> vagrant box list C:\> vagrant box update centos67 C:\> vagrant box remove centos67
下記のサイトで様々な box が公開されています。
VMを作成する
C:\> mkdir centos67a
C:\> cd centos67a
C:\centos67a> vagrant init --minimal centos67
C:\centos67a> type Vargrantfile
Vagrant.configure("2") do |config|
config.vm.box = "centos67"
end
C:\centos67a> vagrant up
SSHでログインする
ssh-config を実行すると SSH に関する情報が表示される。下記では、起動した VM の SSH ポート(22番)が、127.0.0.1 の 2222 番にマッピングされていることがわかる。Tera Term Pro などの SSH クライアントで、127.0.0.1 の 2222番ポートに SSH ログインし、ユーザID vagrant、パスワード vagrant でログインできる。
C:\centos67a> vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
:
VM操作のいろいろ
C:\centos67a> vagrant up ... 起動する C:\centos67a> vagrant halt ... シャットダウンする C:\centos67a> vagrant status ... 状態を表示する C:\centos67a> vagrant suspend ... 一時停止する(復帰はup) C:\centos67a> vagrant destroy ... VMを削除する
パッケージング
現在のゲストOS をパッケージ化し、それを box に加える。
C:\centos67a> vagrant package C:\centos67a> vagrant box add centos67-httpd package.box C:\centos67a> vagrant box list
フォルダ共有
ホストOS の C:\centos67a は、ゲストOS の /vagrant にマウントされている。
プロビジョニング
下記の様に、プロビジョニング時に初期インストールスクリプトを指定することができる。
C:\centos67a> notepad bootstrap.sh
#!/bin/sh
yum -y install httpd
chkconfig httpd on
service start httpd
C:\centos67a> notepad Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "centos67"
config.vm.provision :shell, :path => "bootstrap.sh"
end
もしくは、Vagrantfile に直接記述することもできる。
Vagrant.configure("2") do |config|
config.vm.box = "centos67"
config.vm.provision "shell", inline: <<-SHELL
yum -y install httpd
chkconfig httpd on
service start httpd
SHELL
end
アドレス割り当て
C:\centos67a> notepad Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "centos67"
config.vm.network "private_network", ip: "192.168.56.120"
end
ポートマッピング
C:\centos67a> notepad Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "centos67"
config.vm.network :forwarded_port, host: 8080, guest: 80
end
Copyright (C) 2016 杜甫々
初版:2016年10月23日 最終更新:2016年10月23日
https://www.tohoho-web.com/ex/vagrant.html