Question

J'utilise un modèle de mise en scène avec MSDeploy de déployer deux de nos sites à une batterie de serveurs Web. Les sites sont configurés dans IIS sur les boîtes de mise en scène uniquement, puis MSDeploy est utilisé pour construire les serveurs Web cible à partir de zéro.

La boîte de mise en scène utilise ses propres liaisons (c.-à-pas entrées d'en-tête, adresses IP différentes / ports et aucun en-tête d'hôte) pour les sites qui seront en direct. Quand je les ai déployer I première un fichier XML utilisé pour préparer un ensemble paramétré (en utilisant le commutateur de -declareParamFile) qui déclare paramètres comme suit:

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

dans le fichier XML ci-dessus, vous pouvez voir que le site est hébergé sur scène 17000 du port que l'attribut est match défini pour correspondre à une liaison qui a cette valeur.

Quand je Déployez ensuite à chaque site en direct, j'utilise un XML de paramètres différents qui spécifie l'en-tête d'hôte correct et IP pour cette machine - je demande ce en utilisant l'interrupteur -setParamFile. Voici un exemple de l'un d'entre eux.

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

, car le paramètre d'origine est déclarée correspondre à l'une des liaisons connues -. Je peux remplacer que la liaison avec ce que je veux réellement être sur chaque serveur en direct

Ce que je veux faire maintenant est de déployer le site et ajouter nouveau les liaisons de destination à ce qui intègrent les différents TLDs que nous avons - c.-à-site.com, le site .co.uk, site.ca etc, tous liés à la même adresse IP et le port.

Les raisons de vouloir le faire sont:

  • Nous avons un nouveau site que nous voulons déployer qui aura besoin d'un nom d'hôte différent, mais nous ne voulons pas donner sa propre adresse IP (à court d'adresses IP ici!), Mais faites-le partager la propriété intellectuelle qu'une existante site sur les serveurs a déjà.
  • Cela signifie ajouter des liaisons de nom d'hôte spécifiques au site qui est déjà là-bas, au lieu de l'avoir répondu à tout nom d'hôte.
  • Nous avons quatre noms de domaine pointant actuellement à la charge IP équilibrée du site existant (.com, .fr, .ca, .com.au). Pour le moment cela fonctionne parce que le serveur Web ne se soucient pas de l'en-tête d'hôte -. Mais quand le nouveau site va sur la même adresse IP, il, et les autres noms de domaine ne fonctionnera plus

Le problème est que je ne pense pas qu'il semble y avoir aucune façon d'ajouter de telles informations. J'ai essayé d'ajouter plusieurs éléments setParameter dans la deuxième XML, mais qui a tout simplement l'effet d'écraser à plusieurs reprises la liaison, avec le dernier comme le vainqueur final.

Une solution est pour moi d'ajouter des liaisons « espace réservé » pour chacun des sites sur la zone de mise en scène, qui représentent les liaisons externes cibles pour chaque nom de domaine, le port etc; puis-je modifier les deux fichiers de paramètres pour remplacer les liaisons avec les vrais.

Mais pour moi, cela se sent tout à fait tort - ce serait la modélisation de la boîte de mise en scène costume le déploiement en direct; il devrait être l'inverse.

Est-il possible de réellement ajouter liaisons de site avec MSDeploy (si oui, comment?), Ou soutient-il que le remplacement?

Était-ce utile?

La solution

Après beaucoup de se frapper la tête, il semble qu'il n'y a pas moyen d'ajouter de nouvelles liaisons à l'aide de l'opération DestinationBinding avec msdeploy.

Quelle serait possible serait d'attacher un script à exécuter après le déploiement qui ajoute les liaisons à l'aide appcmd à chaque fois.

Ainsi, la synchronisation initiale par l'intermédiaire msdeploy supprimerait ces fixations (parce qu'ils ne sont pas sur le serveur de mise en scène), mais le script appcmd alors les ajouter à nouveau.

Pas vraiment une solution idéale, mais, comme il est encore un autre script qui doit être tenu à jour.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top