【Vagrantドキュメント意訳】16.その他

# はじめに

本文章は、Vagrant公式サイト内のドキュメント内の[OTHER](https://www.vagrantup.com/docs/other/)に記載されている内容を意訳に近い形で日本語化したものである。
誤訳が含まれている可能性が十分にあることを踏まえて、参考いただきたい。

# その他

このセクションでは、これまでのカテゴリにやや当てはまらない、その他の情報について示す。

* [Atlas](https://www.vagrantup.com/docs/other/atlas.html)
* [デバッグ](https://www.vagrantup.com/docs/other/debugging.html)
* [環境変数](https://www.vagrantup.com/docs/other/environmental-variables.html)

# Atlas

Atlasは企業向けのHashiCorpスイートであるが、コミュニティ向けの機能も提供している。Vagrantの共有機能の能力と同じように、[Vagrant Boxの公開レポジトリ](https://atlas.hashicorp.com/boxes/search)を提供する。

VagrantエンタープライズはAtlas経由で提供され、プライベートなBoxに対してホストすることを可能とし、あなたのチームに配布することを可能とする。

## Atlasへのサイン・アップ

[ここ](https://atlas.hashicorp.com/account/new)から無料のAtlasアカウントにサイン・アップできる。

# デバッグ

Vagrantを安定させ、バグが無いように維持することに努めるのと同じぐらい、問題が発生したり、Vagrantが予期せぬ動きをしたりするのは避けられない。これらのケースの場合、Vagrantは、あなたを手助けすることができる素晴らしい[サポート](https://www.vagrantup.com/support.html)チャンネルをもっている。

これらのサポート・チャンネルを使用する際、通常、どのようなエラー・リポートとともにデバッグ・ログを含むことは、役に立ちます。これらのログはよく、あなたが出会った問題の解決に役立つ。

> **繊細な情報がないか細かく調べておくこと!**Vagrantのデバッグ・ログは、その環境変数やユーザ情報など、システムの情報を含みます。もし、環境やユーザ・アカウントに繊細な情報をもっているのであれば、公のインターネットへ中身をアップロードする前に、この情報のデバッグ・ログを細かく調べたり、余計なものを削り落としたりしておくこと。

> **GitHubのGistを使用してデバッグ・ログを提出すること。**もし、バグ・リポートやデバッグ・レベルのログを含む問題を提出するのであれば、Gistなどのサービスを使用してほしい。情報をスクロールしたり解析したりするのを非常に難しくしてしまうので、そのままのデバッグ・ログをIssueに張り付けないこと。

詳細なログを記録する為に、環境変数の`VAGRANT_LOG`を、`debug`(大量)、`info`(通常)、`warn`(少量)、`error`(ごく少量)の中から、望ましいログ・レベルの名前に設定すること。サポートに質問する際は、これを`debug`に設定すること。自分の問題をトラブル・シューティングする場合は、`info`から始めるのがよいだろう。これは、より少量のログであるが、Vagrantの動作に関する重要な情報を含んでいる。

LinuxやMacのシステムにおいて、`vagrant`コマンドに環境変数の定義をその前につけることで実行できる。

```bash
$ VAGRANT_LOG=info vagrant up
```

Windowsでは、2つの段階を踏む必要がある。

```bash
$ set VAGRANT_LOG=info
$ vagrant up
```

コマンド・ライン・オプションに`--debug`を使用することで、デバッグ・レベルの出力を得ることもできる。例を示す。

```bash
$ vagrant up --debug
```

出力にファイルを保存する場合、`&>`を使用してstderrとstdoutをリダイレクトする必要がある。

```bash
$ vagrant up --debug &> vagrant.log
```

# 環境変数

Vagrantは包括的な方法で、設定や制御を行うことができる環境変数を持っている。

## VAGRANT_DEBUG_LAUNCHER

パフォーマンス的な理由で、特にWindowsユーザにとって、Vagrantは実際のVagrantのプロセスを起動するのに静的バイナリを使用する。もし、公式のインストーラからVagrantを起動するときの早い段階での問題であれば、起動プロセスに関するデバッグ情報を出力する為に`VAGRANT_DEBUG_LAUNCHER`環境変数を指定することができる。

## VAGRANT_DEFAULT_PROVIDER

Vagrantが使用するデフォルトのプロバイダを設定する。

通常、Vagrantはデフォルト・プロバイダの検出方法に関して非常に賢いので、設定する必要はない。設定することで、新しいVagrant環境に対してこのプロバイダを強制的に使用させることができる。既存のVagrant環境は`up`で起動した場合、そのままそのプロバイダを使い続ける。ただし、一度、既存環境を`vagrant destroy`したら、この設定が効果を発揮する。

## VAGRANT_BOX_UPDATE_CHECK_DISABLE

デフォルトでVagrantは、ダウンロードできるより新しいBoxがあるかを確認する為に、メタデータAPIサーバに問い合わせる。このオプションは、`config.vm.box_check_update`でVagrantfile単位で無効化することができるが、`VAGRANT_BOX_UPDATE_CHEC_DISABLE`を空でない値に設定することで、グローバルな範囲で無効化することができる。

このオプションは`vagrant box update`のような、グローバルなBox機能には影響しない。

## VAGRANT_CHECKPOINT_DISABLE

Vagrantは、ローカルで稼働しているVagrantのバージョンが古くなっていないかどうか、時折ネットワークを呼び出す。いずれにせよインターネットを介してリモート・コールをしているソフトウェアが好ましくないと、我々は考えている。この呼び出しを抑制する為に、`VAGRANT_CHECKPOINT_DISABLE`環境変数を空でない値に設定する。

もし、PackerなどそのほかのHashiCorpツールを使用して、この設定を一度だけ設定したいのであれば、その代わりに`CHECKPOINT_DISABLE`で設定することができる。.

## VAGRANT_CWD

`VAGRANT_CWD`はVagrantの作業用ディレクトリを変更する為に設定することができる。デフォルトでは、Vagrantはあなたがいるカレント・ディレクトリを使用する。作業用ディレクトリは、VagrantがVagrantfileを探すので重要である。また、Vagrantfileが見つかった場所に対して相対関係を拡張するので、Vagrantfileの中の相対パスをどのように拡張するかかも定義する。

この環境変数は、Vagrantをスクリプト環境から稼働したとき、Vagrantが参照するディレクトリを設定する為に、最も一般的に設定される。

## VAGRANT_DOTFILE_PATH

`VAGRANT_DOTFILE_PATH`は、VagrantがVirtualBox VM UUIDなどのVM特有の状態を格納するディレクトリを変更する為に設定することができる。デフォルトでは、これは`.vagrant`である。もし、(例えば)デスクトップとラップトップの間のフォルダを共有する為に、あなたのVagrantfileをDropboxフォルダに維持したい場合、Vagrantはこのディレクトリのファイルを、最も最近に使用されたホスト上のVMの詳細で上書きする。これを避けるために、`VAGRANT_DOTFILE_PATH`をそれぞれのマシンの`.vagrant-laptop`と`.vagrant-desktop`に設定することができる(`.gitignore`をアップデートするのを忘れないこと)。

## VAGRANT_HOME

`VAGRANT_HOME`は、Vagrantがグローバルな状態を格納するためのディレクトリを変更するために設定することができる。デフォルトでは、これは`~/.vagrant.d`に設定されている。Vagrantのホーム・ディレクトリは、Boxが格納されるような場所であり、実際にはディスク上でやや大きくなる。

## VAGRANT_LOG

`VAGRANT_LOG`はVagrantからのログ・メッセージの詳細さを指定する。デフォルトでは、Vagrantはいかなるログメッセージを積極的には表示しない。

ログ・メッセージは、問題をトラブル・シューティングしたり、バグを報告したり、サポートを受けるときにとても有益である。最も詳細なレベルでは、Vagrantは基本的にすべてを出力する。

使用できるログ・レベルは"debug"、"info"、"warn"、そして、"error"である。"warn"と"error"の両方は、これらのケースは非常にまれであり、Vagrantは一般的には通常の出力で報告されるので、ほとんど使用されることはない。

"info"は、通常の出力よりは詳細で、まだ人間が読むことのでき、問題を確かに識別することのできるので、問題があるときに開始するときに適切なレベルである。

"debug"出力はきわめて詳細であり、Vagrantの内部について多少の知識がないと、読むことが難しい。しかしながら、サポートを求めるときやバグを報告するときに添付するのには元雄も適切な出力である。

## VAGRANT_NO_COLOR

これが何らかの値に設定された場合、Vagrantは出力にいかなる色も使用しない。これは、ログをファイルに出力したり、色をサポートしないシステム上で有益である。

同じようなふるまいは、コマンド毎に`--no-color`フラグを使用することで行える。この環境変数は、このフラグをグローバルに設定する際に有益である。

## VAGRANT_FORCE_COLOR

これが何らかの値に設定された場合、たとえ、TTYがないと検出されたり、現在の環境がサポートしていなかったとしても、Vagrantは強制的に色付きで出力する。

同じようなふるまいは、コマンド毎に`--color`フラグを使用することで行える。この環境変数は、このフラグをグローバルに設定する際に有益である。

## VAGRANT_NO_PLUGINS

これが何らかの値に設定された場合、Vagrantはいかなるサード・パーティ・プラグインをロードしない。もしプラグインをインストールし、それがVagrantに不安定さをもたら素かもしれない場合や、特定のVagrant環境にプラグインをロードしたくない場合、これは有益である。

`vagrant plugin`コマンドは、いかなるプラグインも自動的にロードしない点に注意すること。そのため、不安定なプラグインをインストールしても、常に安心して`vagrant plugin`を使用することができる。

## VAGRANT_NO_PARALLEL

これが設定された場合、Vagrantはいかなるパラレル操作(パラレルBoxプロビジョニングなど)を行わない。すべての操作は、シリアルで行われる。

## VAGRANT_SKIP_SUBPROCESS_JAILBREAK

Vagrant 1.7.3では、Vagrantは、インストーラ内で稼働していたり、Bundlerをかいして　稼働しているかを適切に検出しようとする。公式なサポートではないが、Vagrantは、Bundlerを介して実行されたとき、最適に動作しようとする。VagrantがVagrantのインストーラの外部にあるサブ・プロセスから派生したことを検出した場合、Vagrantはサブ・プロセスで保持した環境をリセットする為にベストを尽くす。

もし、Vagrantが、公式なインストーラの外部で起動していることを検出した場合、もともとの環境はつねに復旧される。この自動的なジェイル・ブレイクは、`VAGRANT_SKIP_SUBPROCESS_JAILBREAK`を設定することで無効とすることができる。

## VAGRANT_VAGRANTFILE

これは、Vagranが探すVagrantfileのファイル名を指定する。デフォルトではこれは"Vagrantfile"である。これはファイル・パスでは*ない*点に注意すること。単なるファイル名である。

この環境変数は、一つのフォルダが異なる設定を記載している複数のVagrantfileを含むようなスクリプト環境で共通的に使用される。

# 関連記事

* 前の記事：[【Vagrantドキュメント意訳】15.プッシュ](http://qiita.com/ringo0321/items/ab162e6786a0e30685d4)