2020年11月11日 • ☕️ 2 min read

Vagrantはプロジェクトを参加する全員に同じ開発環境を提供できる上、ホストにも汚染しない仮想技術となります。HomesteadはVagrantの上でさらに一般開発に必要なものを全部組み込んでいる特殊なVagrantとなります。人気の高いMySQL, docker, Mailhog, Rabbitmq, Golangなど、homestead.ymlを編集するだけでプロビジョニング(インストール)してくれます。削除したいときも、Vagrantイメージを削除すればホストに影響しないし、逆に再構築もvagrant upだけでいけるので、かなり便利なツールとも言えるでしょう。 では、早速MacOSにVagrant環境構築してみましょう。

ソフトウェアのインストール

  1. Vagrantをダウンロードしてインストール

https://www.vagrantup.com/downloads.html

  1. Virtualboxをダウンロードしてインストール

https://www.virtualbox.org/wiki/Downloads

Homesteadの導入

基本的にLaravel/Homesteadに載せている手順を参照すればいいです。

VagrantボックスーーHomesteadのダウンロード

Copy
vagrant box add laravel/homestead

※はまるポイント:下記のエラーが出た場合の対策

Copy
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'laravel/homestead' (v0) for provider: 
    box: Downloading: https://vagrantcloud.com/laravel/homestead
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

SSL certificate problem: self signed certificate in certificate chain

原因はvagrantclound.comがウイルスソフトにブロックされることです、ウイルスソフトウェアの許可リストに追加すれば通ります。

Homesteadのインストール

Vagrantファイルを特定なフォルダに置くのが管理に良いでしょう。今回もユーザフォルダ直下のVagrantフォルダに置きます。

Copy
mkdir ~/Vagrant
cd ~/Vagrant
git clone https://github.com/laravel/homestead.git

cd ~/Vagrant/homestead
git checkout release
bash init.sh

Homesteadの設定

Vagrantfileの代わりに、Homestead.ymlの編集となります。

具体的な設定方法ならLaravelのオフィシャルサイトを参照してください。

自分のHomestead.ymlはこちらです。

Homestead.yml
Copy
ip: "192.168.10.10"
memory: 4048
cpus: 4
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Code
      to: /home/vagrant/Code

databases:
    - homestead

features:
    - mysql: true
    - docker: true

Vagrant用のSSH Keysの生成

Vagrantの使用は初めてであれば、ログインするためのSSHキーが必要となります。

※SSHキーなしでVagrantを起動しようとすると、the path to your private key does not exist.が表示されます。

Copy
ssh-keygen -t rsa

Enter file in which to save the keyEnter passphraseが聞かれると、全部デフォルトのまま(Enterキーを押す)でいいです。

Homesteadをグローバルで起動できるように設定

Homesteadを起動、ログインするために、毎回 cd ~/Vagrant/homestead vagrant xxx では不便でしょう。どこでもHomesteadにアクセスするように設定しましょう。

Copy
vim ~/.zshrc

下記のスクリプトを追加しましょう。

Copy
function homestead() {
    ( cd ~/Vagrant/homestead && vagrant $* )
}

Homesteadを起動

これからどこでもHomesteadを起動できるでしょう。

Copy
homestead up
homestead ssh

完了

~/Vagrant/homesteadの中身をプロジェクト全員に共有したら、同じ環境を簡単に構築できるでしょう。では。


関連投稿

Dockerのコンテナー再起動(すべて、名前指定、Vagrant中のコンテナーの名前指定)

2018年6月26日

ThunderMiracle

Blog part of ThunderMiracle.com