経緯
インフラ系ツールの勉強会として始まったFukagawa.rb、次回の#02で、vagrantを扱う。
その予習も兼ねて、vagrantをアップデートしたら結構追加されていたので、まとめてみる。
(以前はv1.4.3を使用していました。)
環境:Mac OSX 10.9.2 / vagrant 1.5.4
※ これ違うな、と思われる記述がありましたらご指摘下さい。
新しい要素
開発環境向けの新要素。
- VAGRANT CLOUD: Vagrant Boxを外部に公開/非公開することのできるもの。
Boxのバージョン管理にも利用できる。
- BOXの共有(http共有/ssh共有/General Sharing)
参考記事:Vagrantが開発環境向けコラボレーションツールをリリース
コマンド
VAGRANT DOCS COMMAND-LINE INTERFACEと$ vagrant -h
、$ vagrant list-commands
を見ながら確認していきます。
box manages boxes: installation, removal, etc.
・add
: 予め作られているvagrant用のBoxを追加する。
例:$ vagrant box add ADDRESS
と使用する。
追加する方法は3つある。
1. VAGRANT CLOUD内のカタログからイメージを探し、"hashicorp/precise64"みたいに追加する。
例:$ vagrant box add hashicorp/precise64
2. VAGRANT CLOUD内のカタログからイメージを探し、ファイルパス or URLを指定して追加する。
この場合、ベーシック認証もサポートしているし、http_proxyでの環境変数でも利用できる。
当然(VAGRANT CLOUDでもそうだが)httpsもサポートしている。
例:$ vagrant box add https://vagrantcloud.com/hashicorp/precise64
3. BoxのURLを直接指定してダウンロードする。Vagrantbox.esを利用していた時の方法。
OPTION:
1.Boxファイルを直接指定しない場合(VAGRANT CLOUDを利用)・
--box-version VALUE
: 追加したいバージョンを指定する。
デフォルトでは、最新のバージョンが追加される。
例:$ vagrant box add hashicorp/precise64 --box-version "1.0.0"
例:$ vagrant box add hashicorp/precise64 --box-version ">=1.0.0,<1.1.0"
・--cacert CERTFILE
: ルート認証局での認証を使用しない場合に使用。
・--cert CERTFILE
: Boxをダウンロードする時にクライアント証明書を利用できる。
・-c, --clean
: Boxダウンロード時、(以前Boxをダウンロードした時に失敗した?)一時ファイルを削除してダウンロードを開始できる。
・-f, --force
: Box listに同名のBoxがある場合、使用。(上書きして追加する。)
・--insecure
: httpsのURLで、SSL証明書を検証せずにBoxをダウンロードする。
・--provider PROVIDER
: Virtual BOxなどのプロバイダを指定してダウンロードする。
デフォルトでは、プロバイダを自動検出(選択して)ダウンロードする。例:$ vagrant box add hashicorp/precise64 1) hyperv 2) virtualbox 3) vmware_fusion Enter your choice:
2.Boxファイルを直接指定する場合(VAGRANT CLOUDを利用しない)
--checksum VALUE
: check sumを利用できる。
--checksum-type TYPE
: check sumのタイプを指定する。
サポートしているのは、"md5", "sha1", "sha256"
checksumとchecksum-typeは併用利用する。
--name VALUE
: Boxの名前を指定する。
・list
: ローカル環境にあるBox listを表示する。
例:$ vagrant box list
と使用する。
・outdated
: VAGRANT CLOUDからダウンロードしたBoxが最新バージョンか確認できる。
OPTION:
--global
オプションを付けることで、全てのBoxのアップデートを確認可能。
・remove
: 追加したBoxを削除する。
OPTION:
--provider
オプションを付けることで、プロバイダを指定できる。
・repackage
: 現在の稼働状態で再配布できるよう、Boxを再構成する。
・update
: Boxをアップデートする。
OPTION:
--box VALUE
: 指定したBoxをアップデートする。
--provider VALUE
: 指定したプロバイダのBoxをアップデートする。
connect connect to a remotely shared Vagrant environment
vagrant share
されたVagrant環境に接続する。
例:vagrant connect NAME
と使用する。
OPTION:
--disable-static-ip
: SOCKS環境で利用。
--static-ip IP
: どのIPにアクセスするかを指定。
vagrant connectでは、172.16.0.0/16のIP郡を利用する。
--ssh
:vagrant share --ssh
と同様にsshで接続する。
destroy stops and deletes all traces of the vagrant machine
Vagrantで実行した仮想OSを破棄する。
OPTION:
-f, --force
: 破棄してよいかの確認を求めず、実行する。
halt stops the vagrant machine
Vagrantで実行した仮想OSを停止(shutdown)する。
OPTION:
-f, --force
: 端末の電源を抜くように、OSを停止する。
init initializes a new Vagrant environment by creating a Vagrantfile
今いるディレクトリで、VagrantのOS起動を設定する。
例:vagrant init [box-name] [box-url]
と使用する。
[box-name]
: 作成されたVagrantfileにconfig.vm.box
を指定する。
[box-url]
: 作成されたVagrantfileにconfig.vm.box_url
を指定する。
login log in to Vagrant Cloud
Vagrant Share等、特定の機能が必要な際、VAGRANT CLOUDにログインして利用する。
(注意:Vagrantを利用する大半のことでは利用しない。)
例:$ vagrant login
(中略)
Username or Email:
Password (will be hidden):
You're now logged in!
$ vagrant login --check
You are already logged in.
$ vagrant login --logout
You are logged out.
OPTION:
--check
: 今ログイン状態か確認する時に使用。
--logout
: ログアウトする時に使用。
package packages a running vagrant environment into a box
現在、VirtualBoxで稼働している環境を再利用可能な状態(Box)にする。
また、このバージョンでは、VirtualBoxのみサポートしているが、今後他のプロバイダにも対応予定。
OPTION:
--base NAME
: VirtualBoxで稼働している端末の名前を指定する。
--output NAME
: 生成されたBoxのファイル名を指定する。
デフォルトでは、package.box
と保存される。
--include x,y,z
: Boxとともにパッケージ化するファイルを指定する。
--vagrantfile FILE
: Boxファイルとともにパッケージ化するVagrantfileを指定する。
なお、詳細はVagrantfile load orderを確認して下さい。
plugin manages plugins: install, uninstall, update, etc.
・install
: プラグインの名前/ファイルパスからプラグインをインストールする。
プラグインの名前の場合、たいていRubyGemsからインストールされる。
例:vagrant plugin install <name>
と使用。
OPTION:
--entry-point ENTRYPOINT
: 利用するプラグインのエントリポイントを指定する場合に利用。
--plugin-source SOURCE
: インストールするプラグインのソース元を指定する。
--plugin-version VERSION
: インストールするプラグインのバージョン("1.2.3"や"> 1.0.2, < 1.1.0")を指定する。
・license
: プラグインのライセンスファイルをインストールする。
例:vagrant plugin license <name> <license-file>
と使用。
・list
: インストール済みのプラグインとそれぞれのバージョンの一覧を表示。
・uninstall
: 指定した名前のプラグインをアンインストールする。
例:vagrant plugin uninstall <name> [<name2> <name3> ...]
と使用。
・update
: 指定されたプラグインをアップデートする。
但し、バージョン指定でインストールされたプラグインはアップデートされない為、再インストールが必要。
インストールされていないプラグインは、インストールされない。
provision provisions the vagrant machine
vagrantで起動中のOSに対して、以下の設定を反映させる。
(詳細は、PROVISIONINGを確認して下さい。)
OPTION:
--provision-with x,y,z
: 指定されたprovisionerを実行する。
reload restarts vagrant machine, loads new Vagrantfile configuration
Vagrantで起動中のOSを再起動($ vagrant halt と $ vagrant up)する。
OPTION:
--provision
: provisionersを実行する。
--provision-with x,y,z
: 指定したprovisionerを実行する。
resume resume a suspended vagrant machine
Vagrantで稼働し、中断(vagrant suspend
)していたOSを再開させる。
share share your Vagrant environment with anyone in the world
Vagrantで稼働しているOSを共有する。
OPTION:
--disable-http
: HTTPアクセスを無効にする。
--http PORT
: HTTPポート番号を指定する。
但し、HTTPアクセスを無効(--disable-http
)にした場合、効果はない。
--https PORT
: HTTPSポート番号を指定する。
但し、HTTPアクセスを無効(--disable-http
)にした場合、効果はない。
--ssh
: ssh接続を有効にする。デフォルトでは無効。
--ssh-no-password
: ssh接続での鍵認証の暗号化を無効にする。
--ssh-port PORT
: ssh接続のポート番号を指定する。
--ssh-once
: 一度だけssh接続を許可する。最初の接続後、生成された鍵は破棄される。
ssh connects to machine via SSH
Vagrantで稼働しているOSにssh接続する。
OPTION:
-c COMMAND, --command COMMAND
: 指定したCOMMANDをssh接続して実行する。
-p, --plain
: ユーザに認証をさせてssh接続する。
ssh-config outputs OpenSSH valid configuration to connect to the machine
Vagrantで稼働しているOSにssh接続する為の設定情報を出力する。
OPTION:
--host NAME
: 出力する設定名を指定する。
status outputs status of the vagrant machine
Vagrantで稼働しているOSの状態を確認する。
suspend suspends the machine
Vagrantで稼働しているOSを中断の状態にする。
中断にはホスト側で追加容量が必要だが、メモリやCPUリソースを消費しない。
up starts and provisions the vagrant environment
Vagrantfileの設定を元にOSを起動する。
OPTION:
--[no-]destroy-on-error
:
予期しないエラーが発生した場合に、新しく作成されたOSを破棄(destroy)する。
これでデフォルトで設定されている。
--[no-]parallel
: プロバイダがサポートしている場合、並列でOSを起動する。
--provider x
: 使用するプロバイダを指定する。デフォルトでは、Virtualbox。
--provision
: provisionersを実行する。
--provision-with x,y,z
: 指定したprovisionerを実行する。
・VirtualBoxの共有フォルダやNFSが利用できない時に、rsyncで同期ができる。
rsync syncs rsync synced folders to remote machine
rsync-auto syncs rsync synced folders automatically when files change
詳細は、RSYNC、若しくはRSYNC-AUTOを確認して下さい。
以上です。
ご覧いただき、ありがとうございました。