LoginSignup
18
22

More than 5 years have passed since last update.

[Vagrant+Ansible+VirtualBoxでlocal・本番構築自動化(Vagrant+Virtualbox編)] のおまけ

Last updated at Posted at 2015-05-10

前回投稿した
Vagrant+Ansible+VirtualBoxでlocal・本番構築自動化(Vagrant+Virtualbox編)

のおまけです。
Vagrant+VirtualBoxについてのおまけを記載します。


(toc)

・Vagrantコマンド頻出一覧

- vagrant作成
 vgrant init 
- 状態確認(起動中、停止など各インスタンスの状態を確認します。)
 vagrant status
- 一時停止
 vagrant suspend
- 起動
 vagrant up
- リロード
 vagrant reload
- 停止
 vagrant halt
- 削除(完全に削除されますのでbox化していない場合は注意)
 vagrant destroy

・box化して配布する場合。

今回はミドルウェアの用意、設定等はansibleで各環境で自動で行うためbox化しませんが、
ansibleのようなストラクチャ構築ツールを使わない場合は用意したインスタンスを配布するためにはboxファイルを作成し配布する必要があります。

まずvagrant ssh web01等で各インスタンス内に接続しミドルウェアのインストール、設定を行う。
そしてtotalディレクトリ(Vagrantfileを作成したディレクトリ)に戻り、下記コマンドでboxファイルを生成します。

vagrant package --output NAME.box(生成するbox名)

これを行うとNAME.boxが生成されます。
このboxファイルは容量が大きいためgitなどで管理する場合は.gitignoreに
下記を追加しましょう。

*.box

このboxを共有サーバなどに配置し、前編で用意したVagrantfileのbox指定部分でurl指定すると
他者のローカル環境でもそのまま再現が行えます。

config.vm.box_url = "http://~~~"

・ssh接続する場合

下記のようにssh接続したい場合,Vagrantfileでprivate_ipを設定した上で
下記のように接続できます。(defaultパスはvagrant)

ssh vagrant@192.168.20.10

・vagrant共有フォルダ設定

デフォルトはローカルのVagrantfile配置ディレクトリと、以下の仮想環境内のディレクトリが同期されています。
/vagrant

指定ディレクトリを共有フォルダにしたい場合はVagrantfileに下記のように設定します。
また同期対象から省く場合はrsync__excludeにファイル名を指定します。

config.vm.synced_folder "~/git/dummy/target",  "/usr/share/tomcat8/webapps", 
                        # ↑ローカルディレクトリパス    ↑仮想環境内のディレクトリパス
         type: "rsync", # 同期タイプ
         rsync__exclude: ["maven-archiver", "maven-status", "generated-sources",
                          "classes", "personal"] #同期する際に除きたいファイル名を指定。
18
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
22