Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

Vagrant: произвольные команды

#vagrant


Я продолжаю пилить идеальный бутстрап репозитория с использованием vagrant, хочется
функционала маппинга команд vagrant, которые позволили бы исполнять произвольные команды
внутри машины (простейший пример: vagrant test → /var/www/project/bin/codecept run
Unit --env=vagrant). Пока что натолкнулся только на плагин exec, который позволит пробрасывать
команды, но не подменять их короткими алиасами, и вот на эту штуку, которая превратит
vagrantfile в бардак. Есть ли какое-нибудь готовое решение, которое позволит мне осуществить
задуманное без излишней костыльности? vagrant-exec был бы идеальным решением, если
бы позволял маппить команды.

upd прочитал про binstubs в том же vagrant-exec, уже куда ближе к цели, но не хотелось
бы мусорить в проекте файлами.

upd 2 пока что решил через 

config.exec.commands 'test', directory: synced_folder,
    prepend: 'bin/codecept run --env=vagrant #'


но это дьявольский костыль
    


Ответы

Ответ 1



Внедрение произвольных команд для vagrant я сделал следующим образом. Создал скрипт, в котором будут храниться команды для provision. Например проброс своих ключей. #!/bin/bash cat /vagrant/ssh_keys/id_rsa > /home/vagrant/.ssh/id_rsa cat /vagrant/ssh_keys/id_rsa.pub > /home/vagrant/.ssh/id_rsa.pub echo "test" >> /home/vagrant/.ssh/authorized_keys В Vagranfile добавить следующую строку: config.vm.provision :shell, path: "scripts/setup.sh", run: "always", privileged: true Опцию privileged нужно указывать, если необходимо запустить скрипт в привилигерованном режиме, т.е sudo. Опция always указывает на то, как часто нужно выполнять скрипт. В моем случае всегда. Если нужно один раз, укажите once.

Комментариев нет:

Отправить комментарий