再会!
我想使用 dhcp 增加几个节点。但我也想获取这个节点的 IP 地址并将它们写入文件。Vagrant 文档说“可以通过使用 vagrant ssh SSH 进入机器并使用适当的命令行工具(例如 ifconfig)来查找 IP 地址来确定 IP 地址”。
所以我为master创建了一个简单的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
但它会在其中一个节点启动时触发,而不是同时启动。