Skip to content

Latest commit

 

History

History
63 lines (49 loc) · 2.83 KB

54393516c94e56414d2d.md

File metadata and controls

63 lines (49 loc) · 2.83 KB
title tags author slide
Vagrant+VirtualBoxでの環境構築を(半)自動化
Vagrant VirtualBox シェルスクリプト
sayuprc
false

目的

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

手順

VagrantとVirtualBoxのインストール

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

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

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

$ mkdir project 

そこで初期化

$ cd project

$ vagrant init

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を保存しておけばコピーして再度使えるので、もし環境を破壊してしまったとしてもやり直しが楽になります。