#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.
Комментариев нет:
Отправить комментарий