macの開発環境構築(その4)
まずはプラグインの確認。
$ vagrant plugin list No plugins installed.
プラグインのインストールコマンド
$ vagrant plugin install (プラグイン名)
■vagrant-vbguest
GitHub - dotless-de/vagrant-vbguest: A Vagrant plugin to keep your VirtualBox Guest Additions up to date
vagrant up で起動した際に、VirtualBox Guest Additionsのバージョンをチェックして、
新しいバージョンが必要であれば自動でインストールするプラグイン。
■vagrant-hostmanager
GitHub - devopsgroup-io/vagrant-hostmanager: A Vagrant plugin that manages hosts files within a multi-machine environment.
ホストOSと仮想マシンの/etc/hostsを自動で書き換えてくれるプラグイン。
プラグインはvagrant upおよびvagrant destroyコマンドに自動的にフックします。
マシンがrunning状態になるか、exitすると、
同じプロバイダーを持つすべてのアクティブなマシンのhostsファイルがそれに応じて更新されます。
# この動作をアクティブにするには、Vagrantfileでhostmanager.enabled属性をtrueに設定します。 config.hostmanager.enabled = true # ホストのhostsファイルを更新するには、hostmanager.manage_host属性をtrueに設定します。 config.hostmanager.manage_host = true # ゲストのhostsファイルを更新するには、hostmanager.manage_guest属性をtrueに設定します。 config.hostmanager.manage_guest = true # マシンのIPアドレスは、プライベートネットワーク構成の静的IPまたはSSHホスト構成のいずれかによって定義されます。 # プライベートネットワークIPアドレスの使用を無効にするには、config.hostmanager.ignore_private_ipをtrueに設定します。 config.hostmanager.ignore_private_ip = false # hostmanager.include_offline属性がtrueに設定されている場合、 # 稼働中のボックス、またはプライベートIPが構成されているボックスがホストファイルに追加されます。 config.hostmanager.include_offline = true # マシンのホスト名は、config.vm.hostnameによって定義されます。 # これが設定されていない場合、Vagrantfileでマシンを定義するシンボルにフォールバックします。 config.vm.define 'example-box' do |node| node.vm.hostname = 'example-box-hostname' node.vm.network :private_network, ip: '192.168.42.42' # hostmanager.aliases構成属性を使用して、ホスト名のエイリアスを提供できます。 node.hostmanager.aliases = %w(example-box.localdomain example-box-alias) end
■ vagrant-hostsupdater
GitHub - cogitatio/vagrant-hostsupdater
ホストシステム上の/ etc / hostsファイルにエントリを追加するプラグイン。
up、resume、reloadコマンドで、hostsファイルに情報がまだ存在していない場合は、情報を追加する
その際、sudoを使用してファイルを編集するため、管理者パスワードの入力を求められる。
停止、破棄、および一時停止すると、それらのエントリは再び削除されます。
config.hostsupdater.remove_on_suspend = falseを設定すると、一時停止および停止しても削除されません。
設定方法としては、必要なホスト名と、固定IPアドレスを持つprivate_networkネットワークをVagrantfileに記述すればOK。
config.vm.network :private_network, ip: "192.168.3.10" config.vm.hostname = "www.testing.de" config.hostsupdater.aliases = ["alias.testing.de", "alias2.somedomain.com"]
■vagrant-vbox-snapshot
→使おうと思ったが、公式に以下の内容が。
「2015年第4四半期の時点で、vagrant snapshotコマンドはVagrantによって提供されています。
このプラグインよりも優先して使用することを検討してください。」とあった。
https://github.com/dergachev/vagrant-vbox-snapshot
そのためプラグインは入れずに以下のコマンドを実行する。
# スナップショット作成 $ vagrant snapshot save (スナップショット名) # 作成したスナップショットは vagrant snapshot list コマンドで確認 $ vagrant snapshot list # スナップショットを復元 $ vagrant snapshot restore (スナップショット名) # スナップショットの削除 $ vagrant snapshot delete (スナップショット名) ※スナップショットを1つしか作らないで良い場合はpushで保存、 pop で復元をすることができる $ vagrant snapshot push $ vagrant snapshot
■vagrant-sahara
GitHub - jedi4ever/sahara: a plugin for vagrant that allows you manage a sandbox state
仮想マシンのロールバック機能をvagrantから実行できるプラグイン。
Provider に VirtualBox を利用している時のみ使用できます。
vagrant snapshotコマンドあるので、不要かな。
# sandbox開始 $ vagrant sandbox on # status確認 $ vagrant sandbox status # rollback $ vagrant sandbox rollback # 変更を反映(commit) $ vagrant sandbox commit # sandbox停止 $ vagrant sandbox off