
Я относительно новичок в темах CD и DevOps и пытаюсь настроить автоматические развертывания с помощью capistrano, что хорошо работает в моей локальной тестовой среде add hoc. Мне интересно, однако, как бы в идеале хотелось настроить пользователей в будущей целевой среде.
Например, процедура установки Ubuntu Tomcat устанавливает пользователя tomcat(6|7), который владеет процессом tomcat. Однако, используя этого пользователя, невозможно войти в систему по ssh, а для capistrano вам нужен пользователь с доступом по ssh для запуска всех команд. Как люди обычно решают эту проблему? Конечно, я придумал свое собственное решение, но мне интересно услышать, есть ли для этого наилучшая практика.
В конечном итоге, мою целевую среду будет формировать другая сторона, но я могу иметь право голоса в этом вопросе, поэтому мне хотелось бы знать, чего я хочу в идеале.
решение1
Есть множество методов сделать это, но самый лучший — настроитьсудосистема, чтобы пользователь развертывания с поддержкой SSH (которого вам нужно будет настроить) мог выдавать себя за tomcat или root по мере необходимости для выполнения развертываний. Фактические каталоги кода могут принадлежать tomcat или пользователю развертывания с правами, установленными так, чтобы tomcat мог использовать файлы.
desc "Restarts the tomcast service"
task restart_tomcat do
set :user, "deployuser"
run "sudo service tomcat restart", :roles => :tomcat_servers
end
Или что-то в этом роде. Если sudo требует пароль, capistrano достаточно умен, чтобы запросить его.
решение2
Проверьте официальные рекомендации пакета о том, как настроить его. Посмотрите, как выбранный вами дистрибутив решает эту проблему в своем пакете. Возможно, есть некоторые HOWTO для дистрибутива или пакета, поищите их. Но будьте осторожны, читая о том, как это было решено в какой-то другой версии, часто бывает так, что конфигурация и возможности радикально меняются от одной версии к другой (и другие поддерживающие пакеты также могли измениться).