Synchronisez deux configurations de serveur IIS 8.5 à l'exclusion des liaisons uniquement

12

Nous avons deux serveurs Web IIS 8.5, Server 2012 R2

Server1

Server2

J'essaie de trouver une commande powershell qui synchronisera uniquement les modifications apportées sur Server1 à Server2

J'ai toutefois essayé des configurations partagées qui synchroniseront également les liaisons et je ne le veux pas car elles sont équilibrées en charge. J'essaie également d'éviter d'ajouter des liaisons inutiles aux serveurs pour le faire fonctionner.

J'ai trouvé quelques commandes WebDeploy PowerShell mais qui semble vouloir également synchroniser les fichiers, nous utilisons DFS pour synchroniser les fichiers.

Tout ce que je veux faire, c'est synchroniser les modifications de l'application Server1 applicationhost.config ou web.config vers Server2

Anthony Fornito
la source

Réponses:

12

Je l'ai (Assurez-vous que vous utilisez CMD ADMIN et Powershell ADMIN)

En utilisant CMD, cela ne fonctionnera pas en PowerShell, je ne sais pas pourquoi il ne fonctionne pas.

msdeploy -verb:sync -source:webserver,computerName=acd-pv01 -dest:webserver,computerName=acd-pv02 -skip:skipAction=Delete,objectName=binding -skip:skipAction=AddChild,objectName=binding

Un petit aperçu

Il y a quelques articles en ligne sur un remplacement de règle personnalisé

Cependant le type n'est pas valide, c'est un bug qui n'a pas encore été corrigé.

Vous devez donc ajouter -skip: skipAction à la ligne de commande pour le faire fonctionner et utiliser la liaison objectName =

1 problème est que si vous avez créé un nouveau site, la configuration est apportée, mais les informations de liaison ne sont pas parce que vous lui avez dit de ne pas

Donc, le correctif qui utilise PowerShell

Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.applicationHost/sites/site[@name='SITENAME']/bindings" -name "." -value @{protocol='http';bindingInformation='IPADDRESS:80:SITENAME'}
Anthony Fornito
la source