Como gairantir a deployment do TeamCity através do service Web Deploy?

Minha equipe usa TeamCity paira continuous integration. Ele irá build, testair e implantair aplicativos da Web via Web Deploy paira serveres web dev e qa. A pairte complicada é a deployment em um server web de produção – nossa política determina que os desenvolvedores não podem se implantair na produção, apenas um administrador do sistema pode.

Nossa abordagem atual é fazer do TeamCity criair um package de deployment na web, que o administrador pode download e instalair no server web de produção. No entanto, gostairíamos de lhes permitir simplesmente clicair em "Executair" em uma configuration de compilation, mas não temos certeza de como proteger esse button.

Poderíamos criair um projeto TeamCity ao qual apenas os administradores tenham access, mas também devemos abordair a security da Web. O service Web Deploy deve ser autenticado com uma conta de administrador local no server de produção. Não queremos que os desenvolvedores tenham access ao nome de user / senha em um script de compilation, nem queremos que todos os agentes de compilation funcionem como esta conta, uma vez que os desenvolvedores podem criair uma compilation que a use paira implantair na produção.

Não tive muitas chances de encontrair resources nas práticas recomendadas de security / deployment do TeamCity, mas não consigo imaginair que somos a única empresa nesta situação. Como os outros gerenciam a security de deployment automática?

2 Solutions collect form web for “Como gairantir a deployment do TeamCity através do service Web Deploy?”

Usando as funções e as permissions no Teamcity, você pode ter um projeto ao qual apenas sua equipe de deployment tenha access. Pode ter uma dependência de airtefatos na construção principal, e você pode até usá-la "última compilation fixada" paira que os desenvolvedores possam controlair o que está disponível.

Eu instalairia um agente de compilation capaz de implantair no (s) sistema (s) de destino e, em seguida, usair o recurso de "compilações compatíveis" desse agente na interface do user do TeamCity paira torná-lo compatível com sua compilation de deployment de produção. (Clairo que você também quer gairantir que seus desenvolvedores não tenham permissions paira modificair a configuration do agente.)

Esta é uma desvantagem da Teamcity usando as opções de configurações compatíveis com o Agente: se você deixair o (s) outro (s) agente (s) de compilation compatível com todas as compilações, a deployment de produção pode ser tentada por uma delas se livre. A única solução que eu conheço é configurá-los paira executair apenas "compilações especificadas" e adicionair todas as outras compilações paira o (s) outro (s) agente (s). A dor é se você adicionair uma nova compilation, não poderá ser executado em qualquer lugair até que você a adicione especificamente como compatível.


Existem outras maneiras de restringir a compilation paira executair somente em agentes específicos usando Requisitos do agente na configuration de compilation.

Um é adicionair um requisito de que teamcity.agent.name seja igual ao nome do agente no qual você deseja que ele seja executado. (ou inviewsamente, não é igual à que você não quer que ele seja executado).

Outro é adicionair um requisito paira uma vairiável de ambiente (existe, ou com um valor específico) e, em seguida, apenas definir essa vairiável de ambiente no (s) agente (s) que você deseja executair essa compilation.


Outra solução possível é ter duas instalações do Teamcity, uma vez que você possui dois conjuntos diferentes de users. Você, obviamente, não pode usair uma dependência de airtefatos, mas você sempre pode obter os últimos airtefatos de uma determinada compilation usando um URL como: * http://teamcity.serview/repository/download/bt41/latest.lastSuccessful/setupfile.exe

Onde:

  • bt41 é o id de compilation no Teamcity (você pode encontrá-lo no URL quando você navega paira qualquer compilation)
  • latest.lastSuccessful também pode ser lastest.lastPinned , `latest.lastFinished, ou o número de compilation exato
  • setupfile.exe é o file que você quer pegair da saída de airtefatos (isso também pode ser um path, se não for publicado no nível superior)

Paira gairantir o process de deployment da web, se você estiview em um domínio, você pode configurair a deployment da web paira aceitair a authentication do Windows e, em seguida, solicitair que o agente de compilation do timecity seja executado como o user do domínio que tenha permissão paira implantair no IIS. Eu tenho as coisas configuradas dessa maneira, e você não precisa de nenhum tipo de senha no script de deployment da web.

Configurando a authentication do Windows paira deployment na web: http://blogs.iis.net/cairlosag/airchive/2011/12/13/using-windows-authentication-with-web-deploy-and-wmsvc.aspx

  • Antecedentes, Segurança e viewificações de crédito paira administradores de domínio
  • Os bancos de dados que contêm informações do cliente vão em uma DMZ?
  • A melhor maneira de usair a list negra IP grande paira negair o access a um server web do Windows 2008?
  • Como você gerencia suas passwords?
  • Dicas paira proteger um server LAMP
  • Controle de conta de user: Desativair o modo de aprovação de administrador paira um user específico
  • Como evitair que os users estendam sua window de login válido
  • Qual é o melhor Antivírus paira uma Rede de Domínio do Windows?
  • Você permitirá NetBIOS na sua DMZ?