LoginSignup
5
5

More than 5 years have passed since last update.

Vagrant+VirtualBoxでの環境構築を(半)自動化

Last updated at Posted at 2019-01-17

目的

面倒くさい環境構築を(半)自動化して楽しよう!というのが今回の目的です。

手順

VagrantとVirtualBoxのインストール

VagrantVirtualBoxをそれぞれインストールする。

ディレクトリの作成と初期化

VMを入れるフォルダを作り

$ mkdir project 

そこで初期化

$ cd project

$ vagrant init

Vagrantfileの編集

変更点のみ記述します。

.Vagrantfile
# 15行目
config.vm.box = "使いたいOS"

# 35行目(コメントを外す)
config.vm.network "private_network", ip: "192.168.33.10"

# 66行目
config.vm.provision "shell", :path => "provision.sh", :privileged => false

66行目の説明

この行を記述することにより、初回のvagrant upの際にprovision.shに記述されている内容を実行してくれます。
そのおかげでyum updateなどのゲストOS上で行うインストール作業などを自分で入力することなく終わらせることができます。
:pathはprovision.shファイルのある場所を指します。
:privilegedはデフォルトだとtrueで、管理者権限でコマンドを実行してしまいます。
yum updateなどは問題ないと思いますが、anyenvなどをインストールするする際は、設定を変える必要が出てくるので、falseにすることをおすすめします。

provision.shに関する注意点

1.provision.shをちゃんと作成すること。
作成しないと普通にvagrant upされるか、エラーが出てvagrant upできません。(未検証なので検証後正確な情報を書きます。)

2.インストールなどの許可
yum install ~~などのように書いてしまうと、y/nを問われ途中でシェルスクリプトが止まってしまうので-yをつけるか、echo y\nとしましょう。

3.PATHを記述するものの扱い
.bash_profileなどにPATHを記述するもの(anyenvなど)をインストールする場合、exec $SHELL -lとすることが多いですが、シェルスクリプトにこう書いてしまうと途中でプログラムが終わってしまうのでsource ~/.bash_profileのように書きましょう。
そうすることで最後までプログラムを実行してくれます。

さいごに

たぶんもっと楽な方法はあると思います。(自動化ツールなど)
ですがこの方法は手軽にできる点でおすすめです。
編集したVagrantfileやprovision.shを保存しておけばコピーして再度使えるので、もし環境を破壊してしまったとしてもやり直しが楽になります。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5