観察と傍観のはて

アプリ、プログラム、本、映画、メンタル的なこと、日記などを書いています。

macの開発環境構築(その4)

vagrantプラグインについて

まずはプラグインの確認。

$ 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