04 use1 basic
仮想マシン初期化
仮想マシンごとにディレクトリを作成する。
以下では、MyCentOSVM
というフォルダを作成し、そのフォルダにて実行しました。
vagrant init <box名>
Vagrantfileという設定ファイルが作成される。
テキストエディタで内容を確認できる。
内容の詳細については公式サイトを参照。
仮想マシンを起動
Vagrantfileが存在するフォルダにて、以下を実行。
vagrant up
virtualboxを立ち上げると、仮想マシンが起動中であることを確認できる。
詳細メッセージ付きで起動(起動エラー原因の調査などに)
vagrant up --debug
仮想マシンの状態確認
vagrant status
仮想マシンのスリープ
vagrant suspend
スリープからの復帰
vagrant resume
仮想マシンの終了
vagrant halt
vagrant halt --force # 強制的に終了
vagrant global-status
vagrant halt <id>
再度、立ち上げたい場合、vagrant up
仮想マシン再起動
vagrant reload
仮想マシンの削除
vagrant destroy
Vagrantfileは残っているので、仮想マシンを削除しても、同じ設定で再作成できる。
仮想マシンへの接続
vagrant ssh
ユーザ名は「vagrant」となる
ホストから仮想マシンへの接続
Vagrantfileにて、以下のコメントアウトを解除(以下の内容があるので、先頭の「#」を削除)
# config.vm.network "private_network", ip: "192.168.33.10"
この例だと、192.168.33.10 でアクセスできる。
設定変更後は、vagrant reload
で再起動。
プロビジョン設定
仮想マシンを起動した時に、一連の処理を自動的に実行できる。
Vagrantfileに以下を追記することで設定できる。
<Vagrantfileに直接スクリプトを書く場合>
config.vm.provision :shell, :inline => "script xxxx"
<作成したスクリプトファイルを読む場合>
config.vm.provision :shell, :path => "provision.sh"
【スクリプトファイル(上記では provision.sh)記述例】
sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on
仮想マシンが起動中の場合、vagrant provision
と実行することで、プロビジョンのみを実行できる。
その他メモ
デフォルトで、「~/.ssh」に、公開鍵と秘密鍵が存在する?