経緯
インフラ系ツールの勉強会として始まった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つある。
-
VAGRANT CLOUD内のカタログからイメージを探し、"hashicorp/precise64"みたいに追加する。
例:$ vagrant box add hashicorp/precise64
-
VAGRANT CLOUD内のカタログからイメージを探し、ファイルパス or URLを指定して追加する。
この場合、ベーシック認証もサポートしているし、http_proxyでの環境変数でも利用できる。
当然(VAGRANT CLOUDでもそうだが)httpsもサポートしている。
例:$ vagrant box add https://vagrantcloud.com/hashicorp/precise64
- 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
- hyperv
- virtualbox
- 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](http://docs.vagrantup.com/v2/vagrantfile/index.html#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](http://docs.vagrantup.com/v2/provisioning/)を確認して下さい。)
| provisioners |URL|
|:--:|:--|
|Basic Usage|http://docs.vagrantup.com/v2/provisioning/basic_usage.html|
|File|http://docs.vagrantup.com/v2/provisioning/file.html|
|Shell|http://docs.vagrantup.com/v2/provisioning/shell.html|
|Ansible|http://docs.vagrantup.com/v2/provisioning/ansible.html|
|CFEngine|http://docs.vagrantup.com/v2/provisioning/cfengine.html|
|Chef Solo|http://docs.vagrantup.com/v2/provisioning/chef_solo.html|
|Chef Client|http://docs.vagrantup.com/v2/provisioning/chef_client.html|
|Docker|http://docs.vagrantup.com/v2/provisioning/docker.html|
|Puppet Apply|http://docs.vagrantup.com/v2/provisioning/puppet_apply.html|
|Puppet Agent|http://docs.vagrantup.com/v2/provisioning/puppet_agent.html|
|Salt|http://docs.vagrantup.com/v2/provisioning/salt.html|
>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](http://docs.vagrantup.com/v2/synced-folders/rsync.html)、若しくは[RSYNC-AUTO](http://docs.vagrantup.com/v2/cli/rsync-auto.html)を確認して下さい。
以上です。
ご覧いただき、ありがとうございました。