とほほの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