
Sou relativamente novo nos tópicos de CD e DevOps e estou tentando configurar implantações automáticas com capistrano, que funciona bem em meu ambiente de teste add hoc local. Gostaria de saber, no entanto, como seria ideal configurar os usuários no futuro ambiente de destino.
Por exemplo, o procedimento de instalação do Ubuntu Tomcat configura um usuário tomcat(6|7) que possui o processo tomcat. Porém, não é possível fazer ssh na caixa usando este usuário, e para capistrano você precisa de um usuário com acesso ssh para executar todos os comandos. Como as pessoas normalmente resolvem esse problema? É claro que pensei em minha própria solução, mas estou interessado em saber se existe uma prática recomendada para isso.
No final, haverá outra parte configurando meu ambiente-alvo, mas posso ter uma palavra a dizer sobre isso, então gostaria de saber o que idealmente quero aqui.
Responder1
Existem vários métodos para fazer isso, mas o principal é configurar osudosistema para que o usuário de implantação habilitado para SSH (que você precisará configurar) possa representar o Tomcat ou root conforme necessário para fazer implantações. Os diretórios de código reais podem pertencer ao Tomcat ou ao usuário de implantação com direitos definidos para que o Tomcat possa usar os arquivos.
desc "Restarts the tomcast service"
task restart_tomcat do
set :user, "deployuser"
run "sudo service tomcat restart", :roles => :tomcat_servers
end
Ou algo parecido. Se o sudo exigir uma senha, o capistrano é inteligente o suficiente para solicitá-la.
Responder2
Verifique a recomendação oficial do pacote sobre como configurá-lo. Veja como a distribuição escolhida gerencia o problema em seu pacote. Pode haver algum HOWTO para a distribuição ou pacote, procure por eles. Mas tenha cuidado ao ler sobre como isso foi resolvido em alguma outra versão, muitas vezes acontece que a configuração e os recursos mudam radicalmente de uma versão para outra (e outros pacotes de suporte também podem ter mudado).