MacでVagrant上のVMを自動起動する方法

VM上にある開発サーバとかを自動起動したいのでやってみました。

~/Library/LaunchAgentsに好きな名前のplistファイルを作成します(ここではvagrant.startup.plist)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin</string>
    </dict>
    <key>Label</key>
    <string>vagrant.startup</string>
    <key>ProgramArguments</key>
    <array>
        <string>sh</string>
        <string>[Shell script名]</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/vagrant.startup.agent.stderr</string>
    <key>StandardOutPath</key>
    <string>/tmp/vagrant.startup.agent.stdout</string>
    <key>UserName</key>
    <string>[ユーザー名]</string>
    <key>WorkingDirectory</key>
    <string>[Shell scriptを配置したディレクトリ]</string>
</dict>
</plist>

Shell script

cd [VMのディレクトリ] && vagrant up
cd [VMのディレクトリ] && vagrant up
# 必要な数だけ起動

ポイントは

  • PATHを明示的に指定
  • Shell Scriptを叩いてvagrantのVMを起動
  • ユーザーを指定

StandardErrorPathとStandardOutPathはデバック時に役に立ちますがなくても良いです。

Macを再起動すれば自動的にplistが読み込まれますので、VMが起動していればokです。


気になるのは、VM起動したまま再起動すると起動時にVMが中断の状態になってしまうことです。

shutdown時にVMを安全にshutdownさせたいので調べてみると

など幾つか情報がでてきますが、今のところうまくいっていません。

とりあえず、中断状態からでも正常に起動してるみたいなのでこれでいいかという感じです。

Show comments

Adsense

Share

  • このエントリーをはてなブックマークに追加

About

どこにでもいる平凡なプログラムを書く人間のログ。

Tags

-->