手を出そうとして、なかなかやらなかったvagrantを使ってみました。

同じ構成で作り直せれば、検証環境をあっという間に作ることができます。

いずれはサクッとそんな構成が作れるようになるとして、まずは基本的なところからやってみようと思います。

今回はvagrantで仮想マシンをMacOSのローカル端末にインストールする所までです。

[利用環境]

MacOS 10.10

### Vagrantをダウンロードして、インストール

https://www.vagrantup.com/downloads.html
#ターミナルで
$ vagrant -v
Vagrant 1.7.2

バージョンが出ればインストールまで完了してると思います。

### sudo なしでvagrantを実行する

この辺は好みが分かれる所ですし、vagrantは一般ユーザーでも実行できるので不要かと思いますが、一応メモ的に残しておきます。

$ which vagrant
/usr/bin/vagrant
$ cd /etc/
$ sudo cp -p sudoers sudoers.`date +%Y%m%d`
$ visudo
ユーザー名 ALL=(ALL) NOPASSWD: /usr/bin/vagrant
$ sudo chown -R ユーザー名 ~/.vagrant.d

### Vagrant でBOXを追加する

ここからがvagrantで仮想マシンをインストールする手順です。

$ cd ~/
$ mkdir vagrant-test
$ cd vagrant-test

http://www.vagrantbox.es/

ここから必要なBOXファイルをダウンロード or 直接vox addします。結構色々なOSがあります。仮想マシンのテンプレートと、言っても過言ではないのではないでしょうか。

$ vagrant box add centos65-dev01 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

$ vagrant box list
centos65-dev01 (virtualbox, 0)
$ vagrant init centos65-dev01
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

この後で仮想マシンを起動しますが、途中で止めるとvmdkのイメージファイルが残ったりしますので、なにかの理由で止めた場合はゴミファイルを削除するようにしてください。

※削除はこの後の方法で。

$ vagrant up
Bringing machine ‘default’ up with ‘virtualbox’ provider…
==> default: Importing base box ‘centos65-dev01’…
==> default: Matching MAC address for NAT networking…
==> default: Setting the name of the VM: vagrant-test_default_1430196501082_97495
==> default: Clearing any previously set network interfaces…
==> default: Preparing network interfaces based on configuration…
default: Adapter 1: nat
==> default: Forwarding ports…
default: 22 => 2222 (adapter 1)
==> default: Booting VM…
==> default: Waiting for machine to boot. This may take a few minutes…
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Remote connection disconnect. Retrying…
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest…
default: Removing insecure key from the guest if its present…
default: Key inserted! Disconnecting and reconnecting using new SSH key…
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM…
==> default: Mounting shared folders…
default: /vagrant => /Users/ユーザー名/vagrant-test

$ vagrant global-status
id name provider state directory
————————————————————————
41ed76e default virtualbox running /Users/ユーザー名/vagrant-test

### Vagrant SSH

$ vagrant ssh
or
$ ssh -p 2222 vagrant@localost
パスワード:vagrant

ここで接続できればOKです。

virtualboxにも表示されてると思います。

 

### Vagrantの停止

$ vagrant global-status
id name provider state directory
————————————————————————
41ed76e default virtualbox running /Users/ユーザー名/vagrant-test

$ vagrant halt 41ed76e
==> default: Attempting graceful shutdown of VM…

$ vagrant global-status
id name provider state directory
————————————————————————-
41ed76e default virtualbox poweroff /Users/ユーザー名/vagrant-test

### Vagrantの削除

なにかしらの理由で仮想マシンのインストールが途中だった、もしくはdestroyで削除した場合、不要になったファイルが残ってしまいます。

そこで下記の手順で不要なファイルを削除します。

$ vagrant global-status
id name provider state directory
————————————————————————-
41ed76e default virtualbox poweroff /Users/ユーザー名/vagrant-test

$ vagrant destroy 41ed76e
default: Are you sure you want to destroy the ‘default’ VM? [y/N] y
==> default: Destroying VM and associated drives…

$ vagrant global-status
id name provider state directory
——————————————————————–

$ cd /Users/ユーザー名/.vagrant.d/boxes
$ ls -la
total 0
drwxr-xr-x 3 root staff 102 4 28 13:46 .
drwxr-xr-x 10 root staff 340 4 28 13:53 ..
drwxr-xr-x 3 root staff 102 4 28 13:46 centos65-dev01 <–vmdkファイルが残ってしまうので強制的に削除
$ sudo rm -rf centos65-dev01

vagrant-testディレクトリも作り直した方が良いかと思います。

 

 

ナレッジ Virtualboxでvagrantが表示されない場合

私の場合、一般ユーザーでvagrantを実行したところ、なぜがvirtualboxに仮想マシンが表示されませんでした。
~/.vagrant.dの所有者権限を実行ユーザーにしてあげれば解決したので、もし同じ事象になってしまった方はやってみてください。

$ sudo chown -R ユーザー名 ~/.vagrant.d

超基本的なことしかやってませんが、是非役に立つように色々やってみたいですね。

おしまい

カテゴリー: Tech