Domanda

Sto utilizzando un modello di gestione temporanea con MSDeploy per distribuire un paio dei nostri siti in una web farm.I siti vengono configurati in IIS solo nelle caselle di staging, quindi MSDeploy viene utilizzato per creare da zero i server Web di destinazione.

La casella di staging utilizza i propri collegamenti (ovvero nessuna voce di intestazione, IP/porte diverse e nessuna intestazione host) per i siti che saranno attivi.Quando li distribuisco ho prima un file xml utilizzato per preparare un pacchetto parametrizzato (utilizzando il file -declareParamFile switch) che dichiara i parametri come segue:

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

Quindi nell'XML sopra puoi vedere che il sito organizzato è ospitato sulla porta 17000 come file match l'attributo è impostato per corrispondere a un'associazione con tale valore.

Quando quindi eseguo la distribuzione su ciascun sito live, utilizzo un XML di parametri diversi che specifica l'intestazione host e l'IP corretti per quella macchina: lo applico utilizzando l'opzione -setParamFile.Ecco un esempio di uno di essi.

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

Pertanto, poiché il parametro originale è dichiarato in modo che corrisponda a uno dei collegamenti noti, posso sostituire tale collegamento con ciò che desidero effettivamente che sia su ciascun server live.

Quello che voglio fare ora è distribuire il sito e aggiungere nuovo collegamenti di destinazione ad esso che incorporano i diversi TLD che abbiamo, ad es.site.com, site.co.uk, site.ca ecc., tutti legati allo stesso indirizzo IP e porta.

Le ragioni per volerlo fare sono:

  • Abbiamo un nuovo sito che vogliamo implementare che avrà bisogno di un nome host diverso, ma non vogliamo dargli il proprio indirizzo IP (a corto di IP qui!) ma fare in modo che condivida l'IP di un sito esistente sul i server lo hanno già.
  • Ciò significa aggiungere specifici collegamenti al nome host al sito già presente, invece di farlo rispondere a qualsiasi nome host.
  • Abbiamo quattro nomi di dominio che attualmente puntano all'IP bilanciato del carico del sito esistente (.com, .us, .ca, .com.au).Al momento funziona perché il server web non si preoccupa dell'intestazione dell'host, ma quando il nuovo sito avrà lo stesso IP, lo farà e gli altri nomi di dominio non funzioneranno più.

Il problema è che non credo che ci sia alcun modo per aggiungere tali informazioni.Ho provato ad aggiungerne più di uno setParameter elementi nel secondo XML, ma ciò ha semplicemente l'effetto di sovrascrivere ripetutamente l'associazione, con l'ultima come eventuale vincitore.

Una soluzione consiste nell'aggiungere collegamenti "segnaposto" per ciascuno dei siti nella casella di staging, che rappresentano i collegamenti esterni di destinazione per ciascun nome di dominio, porta, ecc.;e poi modifico i due file di parametri per sostituire quei collegamenti con quelli reali.

Ma per me questo sembra completamente sbagliato: sarebbe modellare la scatola di scena abito la distribuzione dal vivo;dovrebbe essere il contrario.

È possibile davvero? aggiungere associazioni del sito con MSDeploy (se sì, come?) o supporta solo la sostituzione?

È stato utile?

Soluzione

Dopo molte discussioni, sembra che non ci sia modo di aggiungere nuovi collegamenti utilizzando l'operazione DestinationBinding con msdeploy.

Ciò che sarebbe possibile sarebbe allegare uno script da eseguire dopo la distribuzione che aggiunga ogni volta i collegamenti utilizzando appcmd.

Pertanto, la sincronizzazione iniziale tramite msdeploy rimuoverebbe tali collegamenti (perché non si trovano sul server di staging) ma lo script appcmd li aggiungerebbe nuovamente.

Non proprio una soluzione ideale, però, dato che è ancora un altro script che deve essere mantenuto aggiornato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top