
Procuro boas práticas para implantar com capistrano.
Gostaria de começar com uma breve descrição de como costumava fazer a implantação.
capistrano é instalado localmente no computador do desenvolvedor. Eu implanto o gateway de pensamento com a opção capistrano :gateway
. Primeiramente, pensei que com :gateway
a opção eu preciso ter conexão ssh apenas com o host do gateway, mas acontece que preciso de conexão ssh (chave pública) para todos os hosts onde desejo implantar.
Gostaria de encontrar uma maneira conveniente e segura de implantar aplicativos.
Por exemplo, caso um novo desenvolvedor comece a trabalhar, é muito mais conveniente colocar seuchave públicaapenas no servidor gateway e não em todos os servidores de aplicativos. Por outro lado não quero que ele tenha nenhuma conexão com servidores em particularsshpara gateway, só porque ele é desenvolvedor, ele precisa fazer apenas implantações.
Se você conhece boas práticas de implantação com capistrano, informe-nos.
Responder1
Capistrano foi projetado desde o início, partindo do pressuposto de que o ssh é a base para todo o gerenciamento. A máquina usada como gateway deve aceitar e emitir conexões ssh. Não há como escapar disso. Seus desenvolvedores terão acesso ssh ao gateway.
Você tem alguns requisitos:
- Facilidade de adicionar novos desenvolvedores à lista de chaves autorizadas dos seus destinos de implantação
- Não quero dar aos desenvolvedores um terminal completo na caixa do gateway
Você precisa decidir como lidará com a codificação em seus destinos de implantação. Você tem duas opções principais aqui:
- Use uma chave genérica, todos recebem uma e ela é inserida na imagem/destinos.
- Use chaves específicas, cada um recebe as suas e você gerencia a lista de chaves_autorizadas através de algo comofantocheouchefe de cozinha.
A segunda opção é a mais segura, mas funciona melhor se você tiver um sistema de gerenciamento de configuração instalado. Você realmente deveria usar um, e ele pode até fornecer o arquivoauthorized_keys para o servidor gateway.
Você tem algumas opções para restringir o que os desenvolvedores podem fazer quando fizerem ssh em seu sistema.
- Restringindo o acesso do shell SSH ao servidor Debian
- Shell Openssh personalizado
- Como restringir o shell dos usuários permitindo a execução de programas shell
Dependendo de como o Capistrano realmente funciona com um gateway, alguns deles podem impedir que ele funcione, portanto, os testes são necessários. Pode ser que seja necessário um shell completo para funcionar.