Добрый день!
Я хочу подключить несколько узлов с помощью DHCP. Но я также хочу получить ip-адреса этих узлов и записать их в файл. Документы Vagrant говорят: «IP-адрес можно определить, используя бродячий ssh для SSH на машине и используя соответствующий инструмент командной строки для поиска IP, например, ifconfig».
Поэтому я создал простой 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
Но он срабатывает, когда работает один из узлов, а не оба.