vagrantの操作が楽になる便利なコマンドセレクター

少ないコマンドで簡単に仮想環境を構築・管理できるので
vagrant便利ですよね。

でも特にwindowsで使う場合、コピー＆ペーストさえも使いにくい
コマンドプロンプトの都合で使いやすいといいにくい場面が、
度々あります。

vagrant関連で使うコマンドをbatファイルにまとめて
セレクターにしてみました。

これを使うことで文字の入力等はほとんど必要なくなります。

また、下のほうに「Vagrantfile」ファイルの加工で、
よく使う設定を自動化するようにできるvbsファイルも記載しておきました。

下記のコメントアウトをコメントインにします
 config.vm.network "forwarded_port", guest: 80, host: 8080
 config.vm.network "private_network", ip: "192.168.33.10"




```bash:vagrant_menu.bat
@echo off

cd /d %~dp0

echo ************ 実行ディレクトリ ***********************************
cd 
echo;

rem ===【basic】======================================================
:basic

echo ************ アプリケーションメニュー ***************************
echo [1] : vagrant up
echo [2] : vagrant halt
echo [3] : vagrant reload
echo [4] : vagrant box list
echo [5] : vagrant plugin list
echo [6] : 【init】
echo [7] : 【other】
echo [8] : 【sahara】

echo *****************************************************************
set /p NUM="起動したいアプリケーションを選択してください >"
if "%NUM%"=="1" vagrant up
if "%NUM%"=="2" vagrant halt
if "%NUM%"=="3" vagrant reload
if "%NUM%"=="4" vagrant box list
if "%NUM%"=="5" vagrant plugin list
if "%NUM%"=="6" call :init
if "%NUM%"=="7" call :other
if "%NUM%"=="8" call :sahara

cmd /k
exit /b

rem ===【init】=====================================================
:init

echo ************ アプリケーションメニュー ***************************
echo [1] : 公式 centos-6.7 add
echo [2] : 公式 centos-6.7 init
echo [3] : bento
echo [4] : bentoにアップデート等最小限の設定を追加したもの
echo [5] : メイン
echo [6] : プロジェクト1
echo [7] : プロジェクト2

echo *****************************************************************
set /p NUM="起動したいアプリケーションを選択してください >"
if "%NUM%"=="1" vagrant box add vagrant-centos-6.7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box
if "%NUM%"=="2" vagrant init vagrant-centos-6.7
if "%NUM%"=="3" vagrant init bento/centos-6.7
if "%NUM%"=="4" echo "設定されていません。"
if "%NUM%"=="5" echo "設定されていません。"
if "%NUM%"=="6" echo "設定されていません。"
if "%NUM%"=="7" echo "設定されていません。"

cmd /k
exit /b

rem ===【other】=====================================================
:other

echo ************ アプリケーションメニュー ***************************
echo [1] : パッケージ化
echo [2] : VirtualBoxのGuest Additionsを再インストール
echo [3] : .vagrantディレクトリ削除
echo [4] : 同期フォルダを用意

echo *****************************************************************
set /p NUM="起動したいアプリケーションを選択してください >"
if "%NUM%"=="1" vagrant package
if "%NUM%"=="2" vagrant plugin install vagrant-vbguest & vagrant vbguest --status
if "%NUM%"=="3" rd /s /q directory .vagrant
if "%NUM%"=="4" mkdir ../data & mkdir html

cmd /k
exit /b

rem ===【sahara】=====================================================
:sahara

echo ************ アプリケーションメニュー ***************************
echo [1] : vagrant plugin list
echo [2] : vagrant plugin install sahara
echo [3] : vagrant sandbox status
echo [4] : vagrant sandbox on
echo [5] : vagrant sandbox off
echo [6] : vagrant sandbox rollback

echo *****************************************************************
set /p NUM="起動したいアプリケーションを選択してください >"
if "%NUM%"=="1" vagrant plugin list
if "%NUM%"=="2" vagrant plugin install sahara
if "%NUM%"=="3" vagrant sandbox status
if "%NUM%"=="4" vagrant sandbox on
if "%NUM%"=="5" vagrant sandbox off
if "%NUM%"=="6" vagrant sandbox rollback

cmd /k
exit /b

rem ===【main】===================================================
call :basic

cmd /k
pause


rem =======================================
rem vagrant トラブル 対応
rem =======================================
rem Linuxにsshログインして、ルート権限になって
rem 各種アップデートして、再起動させる。
rem
rem  sudo yum -y install update kernel-devel kernel-headers gcc gcc-c++ > LOG_Guest_Additions.txt; sudo reboot
rem
rem  ゲストOSにauthorized_keyを追加する
rem  wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys
rem
rem  パッケージングする前のゲストOSでMACアドレスとのマッピングを無効にします。
rem  sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
```

```bash:vagrant_rename_Vagrantfile.vbs
Dim MyFile 
Dim myRec
Dim FS

Dim VAGRANTFILE_DIR

Dim before_A
Dim after_A

Dim before_B
Dim after_B

Set objWshShell = CreateObject("WScript.Shell")

VAGRANTFILE_DIR = objWshShell.CurrentDirectory & "\Vagrantfile"

Set FS = CreateObject("Scripting.FileSystemObject")
Set MyFile = FS.OpenTextFile(VAGRANTFILE_DIR)
'テキストデータ読込
myRec = MyFile.ReadAll
'msgbox myRec
'テキスト変換
myRec = replace(myRec,"# config.vm.network ""forwarded_port"", guest: 80, host: 8080","config.vm.network ""forwarded_port"", guest: 80, host: 8080")
myRec = replace(myRec,"# config.vm.network ""private_network"", ip: ""192.168.33.10""", "config.vm.network ""private_network"", ip: ""192.168.33.10""")
'msgbox myRec
MyFile.Close

'書き込み
Set MyFile = FS.CreateTextFile(VAGRANTFILE_DIR)
MyFile.WriteLine (myRec)
MyFile.Close
```