Pergunta

Estou usando um modelo de estadiamento com o MSDeploy para implantar alguns de nossos sites em uma fazenda na web. Os sites são configurados apenas no IIS nas caixas de estadiamento e, em seguida, o MSDeploy é usado para criar os servidores da Web de destino a partir do zero.

A caixa de preparação usa suas próprias encadernas (ou seja, entradas de cabeçalho, IPS/portas diferentes e sem cabeçalhos de host) para os sites que estarão ao vivo. Quando os implanto, primeiro tenho um arquivo XML usado para preparar um pacote parametrizado (usando o -declareParamFile switch) que declara parâmetros da seguinte forma:

<parameters>
  <parameter name="site1">
    <parameterEntry kind="DestinationBinding" scope="Site1" match=":17000:" />
  </parameter>
</parameters>

Então, no XML acima, você pode ver que o site encenado está hospedado na porta 17000 como o match O atributo está definido para corresponder a uma ligação que possui esse valor.

Quando implanto em cada site ao vivo, uso um XML de parâmetros diferentes que especifica o cabeçalho e o IP do host corretos para essa máquina - aplico isso usando o interruptor -setParamfile. Aqui está um exemplo de um deles.

<parameters>
  <setParameter name="site1" value="[ip_addr]:[port]:[host_header]"/>
</parameters>

Portanto, porque o parâmetro original é declarado para corresponder a uma das ligações conhecidas - posso substituir essa ligação pelo que realmente quero que seja em cada servidor vivo.

O que eu quero fazer agora é implantar o site e adicionar novo As ligações de destino que incorporam os diferentes TLDs que temos - ou seja, site, site.co.uk, site.ca etc, todos vinculados ao mesmo endereço IP e porta.

As razões para querer fazer isso são:

  • Temos um novo site que queremos implantar que precisará de um nome de host diferente, mas não queremos dar seu próprio endereço IP (ficando sem IPS aqui!), Mas faça com que ele compartilhe o IP que um site existente no Servidores já possuem.
  • Isso significa adicionar ligações específicas do nome do host ao site que já está lá, em vez de respondê -lo a qualquer nome de host.
  • Temos quatro nomes de domínio atualmente apontando para o IP de carga de carga do site existente (.com, .us, .ca, .com.au). No momento, ele funciona porque o servidor da Web não se importa com o cabeçalho do host - mas quando o novo site entra no mesmo IP, ele irá e os outros nomes de domínio não funcionarão mais.

O problema é que eu não acho que parece haver alguma maneira de adicionar essas informações. Eu tentei adicionar múltiplos setParameter Elementos no segundo XML, mas isso simplesmente tem o efeito de substituir repetidamente a ligação, com o último como o eventual vencedor.

Uma solução é para eu adicionar ligações de 'espaço reservado' para cada um dos sites na caixa de estadiamento, que representam as ligações externas de destino para cada nome de domínio, porta etc; E então eu modifico os dois arquivos de parâmetros para substituir essas ligações pelas reais.

Mas para mim isso parece completamente errado - isso seria modelar a caixa de estadiamento para Traje a implantação ao vivo; Deveria ser o contrário.

É possível realmente adicionar As ligações do site com o msDeploy (em caso afirmativo, como?), Ou ele suporta apenas a substituição?

Foi útil?

Solução

Depois de muita pancada, parece que não há como adicionar novas ligações usando a operação de encadernação de destino com o MSDEPLAPE.

O que seria possível seria anexar um script a ser executado após a implantação que adiciona as ligações usando o APPCMD todas as vezes.

Portanto, a sincronização inicial via MSDeploy remove essas ligações (porque elas não estão no servidor de estadiamento), mas o script APPCMD as adicionaria novamente.

Não é realmente uma solução ideal, pois é mais um script que deve ser mantido atualizado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top