Как я могу настроить команду Capistranos SSH?

Для развертывания в тюрьмах FreeBSD мне нужно, чтобы мои команды выглядели так:

ssh user@example.org "jexec 'web_jail' $THE_COMMAND_HERE"
ssh user@example.org "jexec 'db_jail' $ANOTHER_COMMAND_HERE"
...

Обратите внимание, что, хотя это технически возможно, я хочу избежать прямой активации SSH в тюрьмах!

Так как я могу сделать так, чтобы Capistrano работал так?

(Обратите внимание, что я в основном спрашиваю, что касается внесения изменений в стандартные задачи по ограничению.)

1 ответ

Есть бензопила?

Одна часть, которая нуждается в разъяснении, - кто определяет, является ли это web_jail или db_jail? Это роль с _jail добавлена ​​к нему?

Я бы взломал Capistrano::Command.replace_placeholder. Вы можете использовать alias_method_chain для подключения. Оригинал находится в lib/capistrano/command.rb.

Вы могли бы сделать некоторую сложную работу с помощью переменной "shell", но это может показаться довольно трудным делом.

Поскольку за вами наблюдают два человека, это может быть хорошим дополнением для представления людям из Capistrano.

Другие вопросы по тегам