1

良い一日!
dhcp を使用していくつかのノードを起動したい。しかし、このノードの IP アドレスも取得してファイルに書き込みたいと考えています。Vagrant のドキュメントには、「IP アドレスは、vagrant ssh を使用してマシンに SSH で接続し、ifconfig などの適切なコマンド ライン ツールを使用して IP を見つけることで特定できます」と記載されています。

そこで、マスター用の簡単なbashスクリプトを作成しました

`vagrant ssh master -c 'ifconfig | grep -oP "inet addr:\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | grep -oP "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | tail -n 2 | head -n 1'`

別のノードの同じスクリプト。

このスクリプトを Vagrantfile に入れたいです。どのプラグインを使用すればよいですか? https://github.com/emyl/vagrant-triggersを試します。

config.trigger.after :up do
   ipAddr = `vagrant ssh master -c 'ifconfig | grep -oP "inet addr:\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | grep -oP "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | tail -n 2 | head -n 1'`
   puts "master ipAddr #{ipAddr}"
   ipAddr = `vagrant ssh slave01 -c 'ifconfig | grep -oP "inet addr:\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | grep -oP "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" | tail -n 2 | head -n 1'`
   puts "slave01 ipAddr #{ipAddr}"
end

ただし、両方ではなく、ノードの 1 つが起動したときに起動します。

4

1 に答える 1