LoginSignup
41

More than 5 years have passed since last update.

Vagrantを1.5系に上げたら色々追加されていたので確認する

Posted at

経緯

インフラ系ツールの勉強会として始まった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を確認して下さい。)

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、若しくはRSYNC-AUTOを確認して下さい。

以上です。
ご覧いただき、ありがとうございました。

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
41