VirtualBox の Guest addtion のバージョンを自動で合わせてくれる
$ vagrant plugin install vagrant-vbguest
※手動でインストールしなくても vagrant up
時に自動的にインストールされます。
synced_folder で type: 'nfs' にした場合、uid、gid が変わってしまう問題を解消してくれる
$ vagrant plugin install vagrant-bindfs
※手動でインストールしなくても vagrant up
時に自動的にインストールされます。
ホストに通知を送信できるようになる
# vagrant-notify をインストール
$ vagrant plugin install vagrant-notify
# terminal-notifier をインストール(ターミナルから通知を送信できる)
$ brew install terminal-notifier
# terminal-notifier, notify-send のラッパースクリプトを作成(実行権限を与える)
$ vi /usr/local/bin/notify-send # 下記「notify-send スクリプト」参照
$ sudo chmod u+x /usr/local/bin/notify-send
# ゲストを起動して SSH 接続
$ vagrant up
$ vagrant ssh
# ゲストに notify-send がなければインストール
$ which notify-send
$ sudo yum install libnotify # CentOS
# 通知が送信されるか確認
$ notify-send "タイトル" "ゲストマシンからの送信です"
#!/usr/bin/env ruby
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Example OS X terminal-notifier notify-send wrapper script.
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.on('-u', '--urgency LEVEL') { |v| options[:u] = v } # Option gets removed
opts.on('-t', '--expire-time TIME') { |v| options[:t] = v } # Option gets removed
opts.on('-a', '--app-name APP_NAME') { |v| options[:a] = v } # TO DO: Set to -title
opts.on('-i', '--icon ICON[,ICON...]') { |v| options[:i] = v } # Option gets removed
opts.on('-c', '--category TYPE[,TYPE...]') { |v| options[:c] = v } # Option gets removed
opts.on('-h', '--hint TYPE:NAME:VALUE') { |v| options[:h] = v } # Option gets removed
opts.on('-v', '--version') { |v| options[:v] = v } # Option gets removed
end.parse!
if ARGV.length == 0
puts "No summary specified"
exit 1
elsif ARGV.length == 1
message = "-message '\\#{ARGV[0]}'"
elsif ARGV.length == 2
message = "-title '\\#{ARGV[0]}' -message '\\#{ARGV[1]}'"
else
puts "Invalid number of options."
exit 1
end
system("terminal-notifier -sound default #{message}")
以下、ホスト側で実行
$ git clone [email protected]:nekoyuu/vagrant.git {project_name}
$ cd {project_name}
$ cp settings.yaml.example settings.yaml
# プロビジョンの設定
# hostname, ip などプロビジョニングの設定を編集
# IP は同時に立ち上げている環境と被っていると正常に動作しないので注意
$ vi settings.yaml
# SSL の ServerName を設定した IP に合わせる
$ vi resources/apache/ssl.conf
# 最下部の設定を利用する SMTP サーバーに合わせて変更
$ vi resources/postfix/main.cf
# SMTP の設定に合わせて変更
$ vi resources/postfix/relay_password
# 116 - 137 行目辺りのオレオレ認証局設定も必要であれば変更
$ vi bootstrap.sh
# その他、PHP(php.ini) や MySQL(my.cnf) などの細かな設定は resources 内のファイルで行う
# ゲストの起動
$ vagrant up
ゲストに SSH 接続
$ vagrant ssh
以下、ゲスト側で実行
$ cd /vagrant/www
$ git init
$ git remote add origin [email protected]:nekoyuu/vagrant.git
# リモートのブランチを取得する
$ git fetch
$ git checkout -b master --track origin/master
$ git checkout -b develop --track origin/develop
$ git flow init -d
# 開発開始
$ git checkout develop
$ git flow feature start {task_name}
# composer で管理しているものがあれば実行
# カレントディレクトリの composer.json が実行される
$ composer install
# npm で管理しているものがあれば実行
# カレントディレクトリの package.json が実行される
$ npm install
現在ゲストに秘密鍵を設置していないので、ホスト側でしか pull できない…。
ホスト側の秘密鍵をゲスト側に scp で設置するか下記が必要がある。
対処: ssh-add
を利用してホスト側の秘密鍵を使用する。
# ホスト側で ssh-agent に秘密鍵を追加
# -K でキーチェーンに登録しないと再起動で解除される
$ ssh-add -K ~/.ssh/id_rsa
Vagrantfile に config.ssh.forward_agent = true
を追加(記述済)
特別な理由がない限り、下記コマンドにて行う(直接 json ファイルを操作しない)。
$ composer init # 初期設定(composer.json を生成)
$ composer [require|remove] phpunit/phpunit:3.7.* # require を対象に追加/削除
$ composer [require|remove] phpunit/phpunit:3.7.* --dev # require-dev を対象に追加/削除
$ npm init # 初期設定(package.json を生成)
$ npm [i|r] -S package # dependencies を対象に追加/削除
$ npm [i|r] -D package # devDependencies を対象に追加/削除
バージョンの明記のないものは最新バージョン
- CentOS 7.*
- Postfix + SASL
- ImageMagick 6.*
- Apache
- OpenSSL
- PHP: 7.4.*
- MySQL: 5.7.*
- phpMyAdmin
- URL: https://ip-address/phpmyadmin
- Root ID: root
- Root Password: FK7w!Zov3m
- Git
- git-flow
- Ruby(settings.yaml に記載のバージョン)
- Node.js
- npm
- Composer