Sdílet prostřednictvím


Nasazení webových balíčků

Jason Lee

Toto téma popisuje, jak můžete publikovat balíčky nasazení webu na vzdálený server pomocí Nástroje pro nasazení webu Internetové informační služby (IIS) 2.0.

Webový balíček můžete na vzdálený server nasadit dvěma hlavními způsoby:

  • Můžete použít MSDeploy.exe nástroj příkazového řádku přímo.
  • Můžete spustit soubor [název projektu].deploy.cmd , který vygeneruje proces sestavení.

Konečný výsledek je stejný bez ohledu na to, jaký přístup použijete. V podstatě vše, co soubor .deploy.cmd dělá, je spustit MSDeploy.exe s určitými předem určenými hodnotami, abyste nemuseli zadávat tolik informací, abyste mohli balíček nasadit. To zjednodušuje proces nasazení. Na druhou stranu vám přímé použití MSDeploy.exe poskytuje mnohem větší flexibilitu, pokud jde o přesný způsob nasazení balíčku.

To, jaký přístup použijete, bude záviset na různých faktorech, včetně toho, jakou kontrolu budete potřebovat nad procesem nasazení a jestli cílíte na službu Nasazení vzdáleného agenta webu nebo na obslužnou rutinu nasazení webu. Toto téma vysvětluje, jak jednotlivé přístupy používat, a identifikuje, kdy je každý z nich vhodný.

Úlohy a názorné postupy v tomto tématu předpokládají, že:

Nejjednodušší způsob nasazení webového balíčku je spuštění souboru [název projektu].deploy.cmd . Konkrétně použití souboru .deploy.cmd nabízí tyto výhody oproti přímému použití MSDeploy.exe:

  • Nemusíte zadávat umístění balíčku pro nasazení webu – soubor .deploy.cmd už ví, kde se nachází.
  • Nemusíte zadávat umístění souboruSetParameters.xml – soubor .deploy.cmd už ví, kde se nachází.
  • Nemusíte zadávat zprostředkovatele zdroje a cíle MSDeploy – soubor .deploy.cmd už ví, které hodnoty se mají použít.
  • Nemusíte zadávat nastavení operace MSDeploy – soubor .deploy.cmd automaticky přidá do příkazu MSDeploy.exe běžně požadované hodnoty.

Než použijete soubor .deploy.cmd k nasazení webového balíčku, měli byste se ujistit, že:

  • Soubor .deploy.cmd , [název projektu]. SetParameters.xml soubor a webový balíček ([název projektu].zip) jsou ve stejné složce.
  • Nasazení webu (MSDeploy.exe) se nainstaluje do počítače, na kterém běží soubor .deploy.cmd .

Soubor .deploy.cmd podporuje různé možnosti příkazového řádku. Když soubor spustíte z příkazového řádku, jedná se o základní syntaxi:

[project name].deploy.cmd [/T | /Y]
                          [/M:<computer name>]
                          [/A:<Basic | NTLM>]
                          [/U:<user name>]
                          [/P:<password>]
                          [/L]
                          [/G:<true | false>]
                          [Additional MSDeploy.exe flags]

Musíte zadat příznak /T nebo /Y , abyste určili, jestli chcete provést zkušební spuštění nebo nasazení za provozu (nepoužívejte oba příznaky ve stejném příkazu). Tato tabulka vysvětluje účel každého z těchto příznaků.

Příznak Popis
/T Volá MSDeploy.exe s příznakem –whatif , který označuje zkušební spuštění. Místo nasazení balíčku vytvoří sestavu toho, co by se stalo, kdybyste balíček nasadili.
/Y Volá MSDeploy.exe bez příznaku –whatif . Tím se balíček nasadí do místního počítače nebo na zadaný cílový server.
/M Určuje název cílového serveru nebo adresu URL služby. Další informace o hodnotách, které můžete zadat, najdete v části Důležité informace o koncových bodech v tomto tématu. Pokud vynecháte příznak /M , balíček se nasadí do místního počítače.
/A Určuje typ ověřování, který MSDeploy.exe použít k provedení nasazení. Možné hodnoty jsou NTLM a Basic. Pokud vynecháte příznak /A , typ ověřování se pro nasazení do služby Nasazení webu vzdáleného agenta nastaví jako výchozí typ ověřování NTLM a základní pro nasazení do obslužné rutiny nasazení webu.
/U Určuje uživatelské jméno. To platí jenom v případě, že používáte základní ověřování.
/P Určuje heslo. To platí jenom v případě, že používáte základní ověřování.
/L Označuje, že balíček by měl být nasazen do místní instance IIS Express.
/G Určuje, že se balíček nasadí pomocí nastavení zprostředkovatele tempAgent. Pokud vynecháte příznak /G , výchozí hodnota bude false.

Poznámka

Pokaždé, když proces sestavení vytvoří webový balíček, vytvoří také soubor s názvem [název projektu].deploy-readme.txt , který vysvětluje tyto možnosti nasazení.

Kromě těchto příznaků můžete zadat nastavení operace Nasazení webu jako další parametry .deploy.cmd . Všechna další nastavení, která zadáte, se jednoduše předají podkladovému příkazu MSDeploy.exe. Další informace o těchto nastaveních najdete v tématu Nastavení operace nasazení webu.

Předpokládejme, že chcete nasadit projekt webové aplikace ContactManager.Mvc do testovacího prostředí spuštěním souboru .deploy.cmd . Testovací prostředí je nakonfigurované tak, aby používalo službu Nasazení webu Vzdálený agent, jak je popsáno v tématu Konfigurace webového serveru pro publikování nasazení webu (vzdálený agent). Pokud chcete nasadit webovou aplikaci, musíte provést další kroky.

Nasazení webové aplikace pomocí souboru .deploy.cmd

  1. Sestavte a zabalte projekt webové aplikace, jak je popsáno v tématu Sestavování a balení projektů webových aplikací.

  2. Upravte souborContactManager.Mvc.SetParameters.xml tak, aby obsahoval správné hodnoty parametrů pro vaše testovací prostředí, jak je popsáno v tématu Konfigurace parametrů pro nasazení webového balíčku.

  3. Otevřete okno příkazového řádku a přejděte do umístění souboru ContactManager.Mvc.deploy.cmd .

  4. Zadejte tento příkaz a stiskněte klávesu Enter:

    ContactManager.Mvc.deploy.cmd /Y /M:TESTWEB1 /A:NTLM
    

V tomto příkladu:

  • Příznak /Y označuje, že chcete balíček skutečně nasadit místo zkušebního spuštění.
  • Příznak /M označuje, že chcete balíček nasadit na server TESTWEB1. Z této hodnoty se MSDeploy.exe pokusí nasadit balíček do služby Nasazení webu vzdáleného agenta na adrese http://TESTWEB1/MSDeployAgentService.
  • Příznak /A označuje, že chcete použít ověřování protokolem NTLM. Proto nemusíte zadávat uživatelské jméno a heslo.

Chcete-li ilustrovat, jak použití souboru .deploy.cmd zjednodušuje proces nasazení, podívejte se na příkaz MSDeploy.exe, který se vygeneruje a spustí při spuštění ContactManager.Mvc.deploy.cmd pomocí výše uvedených možností.

msdeploy.exe 
-source:package='C:\Users\matt.FABRIKAM\Desktop\ContactManager-03\ContactManager\
 Publish\Out\_PublishedWebsites\ContactManager.Mvc_Package\ContactManager.Mvc.zip' -dest:auto,computerName='TESTWEB1.fabrikam.net', authtype='NTLM',
 includeAcls='False' 
-verb:sync 
-disableLink:AppPoolExtension 
-disableLink:ContentExtension 
-disableLink:CertificateExtension 
-setParamFile:"C:\Users\matt.FABRIKAM\Desktop\ContactManager-03\ContactManager\
 Publish\Out\_PublishedWebsites\ContactManager.Mvc_Package\
 ContactManager.Mvc.SetParameters.xml"

Další informace o použití souboru .deploy.cmd k nasazení webového balíčku najdete v tématu Postupy: Instalace balíčku pro nasazení pomocí souboru deploy.cmd.

Použití MSDeploy.exe

I když použití souboru .deploy.cmd obecně zjednodušuje proces nasazení, existují situace, kdy je vhodnější použít MSDeploy.exe přímo. Příklad:

  • Pokud chcete provést nasazení do obslužné rutiny nasazení webu jako uživatel bez oprávnění správce, nemůžete použít soubor .deploy.cmd . Důvodem je chyba v nasazení webu 2.0, jak je popsáno v části Důležité informace o koncovém bodu.
  • Pokud chcete ručně přepínat mezi různými SetParameters.xml soubory v různých umístěních, můžete raději použít MSDeploy.exe přímo.
  • Pokud chcete přepsat několik MSDeploy.exe argumentů příkazového řádku, můžete MSDeploy.exe použít přímo.

Při použití MSDeploy.exe musíte zadat tři klíčové informace:

  • Parametr –source , který označuje, odkud data pocházejí.
  • Parametr –dest , který označuje, kam vaše data míří.
  • Parametr příkazu – , který označuje operaci , kterou chcete provést.

MSDeploy.exe ke zpracování zdrojových a cílových dat spoléhá na poskytovatele nasazení webu . Nasazení webu zahrnuje mnoho zprostředkovatelů, kteří představují rozsah aplikací a zdrojů dat, se kterými může pracovat– existují například poskytovatelé pro SQL Server databáze, webové servery služby IIS, certifikáty, sestavení GAC (Global Assembly Cache), různé různé konfigurační soubory a spoustu dalších typů dat. Parametr –source i parametr –dest musí určovat zprostředkovatele ve tvaru –source:[název_poskytovatele]=[umístění]. Při nasazování webového balíčku na web služby IIS byste měli použít tyto hodnoty:

  • Poskytovatel –source je vždy zabalený. Příklad:

    -source:package='[path to web package]'
    
  • Zprostředkovatel –dest je vždy automatický. Příklad:

    -dest:auto='[server name or service URL]'
    
  • Příkaz se vždy synchronizuje.

    -verb:sync
    

Kromě toho budete muset zadat různá další nastavení specifická pro zprostředkovatele a obecná nastavení operací. Předpokládejme například, že chcete nasadit webovou aplikaci ContactManager.Mvc do přípravného prostředí. Nasazení bude cílit na obslužnou rutinu nasazení webu a musí používat základní ověřování. Pokud chcete nasadit webovou aplikaci, musíte provést další kroky.

Nasazení webové aplikace pomocí MSDeploy.exe

  1. Sestavte a zabalte projekt webové aplikace, jak je popsáno v tématu Sestavování a balení projektů webových aplikací.

  2. Upravte souborContactManager.Mvc.SetParameters.xml tak, aby obsahoval správné hodnoty parametrů pro pracovní prostředí, jak je popsáno v tématu Konfigurace parametrů pro nasazení webového balíčku.

  3. Otevřete okno příkazového řádku a přejděte do umístění MSDeploy.exe. Obvykle se nachází v umístění %PROGRAMFILES%\IIS\Microsoft Web Deploy V2\msdeploy.exe.

  4. Zadejte tento příkaz a stiskněte Enter (ignorujte konce řádků):

    MSDeploy.exe
      -source:package="[path]\ContactManager.Mvc.zip"
      -dest:auto,
            computerName="https://stageweb1:8172/MSDeploy.axd?site=DemoSite",
            username="FABRIKAM\stagingdeployer",
            $CREDENTIAL_PLACEHOLDER$,
            authtype="Basic",
            includeAcls="False"
      -verb:sync
      -disableLink:AppPoolExtension
      -disableLink:ContentExtension
      -disableLink:CertificateExtension
      -setParamFile:"[path]\ContactManager.Mvc.SetParameters.xml"
      -allowUntrusted
    

V tomto příkladu:

  • Parametr –source určuje poskytovatele balíčku a označuje umístění webového balíčku.
  • Parametr –dest určuje zprostředkovatele auto . Nastavení computerName poskytuje adresu URL služby obslužné rutiny nasazení webu na cílovém serveru. Nastavení typu ověřování označuje, že chcete použít základní ověřování, a proto musíte zadat uživatelské jméno a heslo. Nakonec nastavení includeAcls="False" znamená, že nechcete kopírovat seznamy řízení přístupu (ACL) souborů ve zdrojové webové aplikaci na cílový server.
  • Argument –verb:sync označuje, že chcete replikovat zdrojový obsah na cílovém serveru.
  • Argumenty –disableLink označují, že na cílovém serveru nechcete replikovat fondy aplikací, konfiguraci virtuálního adresáře nebo certifikáty SSL (Secure Sockets Layer). Další informace najdete v tématu Web Deploy Link Extensions.
  • Parametr –setParamFile poskytuje umístění souboruSetParameters.xml .
  • Přepínač –allowUntrusted označuje, že nasazení webu by mělo přijímat certifikáty SSL, které nebyly vydány důvěryhodnou certifikační autoritou. Pokud nasazujete do obslužné rutiny nasazení webu a k zabezpečení adresy URL služby jste použili certifikát podepsaný svým držitelem, musíte tento přepínač zahrnout.

Automatizace nasazení webového balíčku

V mnoha podnikových scénářích budete chtít webové balíčky nasadit jako součást rozsáhlejšího jednokrokového nebo automatizovaného nasazení. Bez ohledu na to, zda se rozhodnete nasadit webové balíčky spuštěním souboru .deploy.cmd nebo přímým použitím MSDeploy.exe, můžete příkazy parametrizovat a volat je z cíle v souboru projektu Microsoft Build Engine (MSBuild).

V ukázkovém řešení Contact Manageru se podívejte na cíl PublishWebPackages v souboru Publish.proj . Tento cíl se spustí jednou pro každý soubor .deploy.cmd identifikovaný seznamem položek s názvem PublishPackages. Cíl používá vlastnosti a metadata položky k vytvoření úplné sady hodnot argumentů pro každý soubor .deploy.cmd a pak použije úlohu Exec ke spuštění příkazu.

<Target Name="PublishWebPackages" Outputs="%(PublishPackages.Identity)">
  ...
  <PropertyGroup>
    <_WhatIfSwitch>/Y</_WhatIfSwitch>
    <_WhatIfSwitch Condition=" '$(_WhatIf)'=='true' ">/T</_WhatIfSwitch>
    <_Cmd>
      %(PublishPackages.FullPath) $(_WhatifSwitch) /M:$(MSDeployComputerName) 
      /U:$(MSDeployUsername) /P:$(Password) /A:$(MSDeployAuth) 
      %(PublishPackages.AdditionalMSDeployParameters)
    </_Cmd>
  </PropertyGroup>
  <Exec Command="$(_Cmd)"/>
</Target>

Poznámka

Širší přehled modelu souborů projektu v ukázkovém řešení a obecný úvod k vlastním souborům projektu najdete v tématech Principy souboru projektu a Principy procesu sestavení.

Důležité informace o koncových bodech

Bez ohledu na to, jestli webový balíček nasadíte spuštěním souboru .deploy.cmd nebo přímým použitím MSDeploy.exe, budete muset zadat název počítače nebo koncový bod služby pro vaše nasazení.

Pokud je cílový webový server nakonfigurovaný pro nasazení pomocí služby Vzdálený agent nasazení webu, zadáte jako cíl adresu URL cílové služby.

http://[server name]/MSDeployAgentService

Případně můžete jako cíl zadat samotný název serveru a nasazení webu odvozí adresu URL služby vzdáleného agenta.

[server name]

Pokud je cílový webový server nakonfigurovaný pro nasazení pomocí obslužné rutiny nasazení webu, musíte jako cíl zadat adresu koncového bodu Služby webové správy služby IIS (WMSvc). Ve výchozím nastavení má tento formát:

https://[server name]:8172/MSDeploy.axd

Na libovolný z těchto koncových bodů můžete cílit buď pomocí souboru .deploy.cmd , nebo přímo MSDeploy.exe. Pokud ale chcete provést nasazení do obslužné rutiny nasazení webu jako uživatel bez oprávnění správce, jak je popsáno v tématu Konfigurace webového serveru pro publikování nasazení webu (obslužná rutina nasazení webu), musíte k adrese koncového bodu služby přidat řetězec dotazu.

https://[server name]:8172/MSDeploy.axd?site=[IIS website name]

Důvodem je to, že uživatel bez oprávnění správce nemá přístup na úrovni serveru ke službě IIS; má přístup pouze ke konkrétnímu webu služby IIS. V době psaní tohoto článku nemůžete kvůli chybě v kanálu publikování na webu (WPP) spustit soubor .deploy.cmd pomocí adresy koncového bodu, která obsahuje řetězec dotazu. V tomto scénáři je potřeba nasadit webový balíček pomocí MSDeploy.exe přímo.

Poznámka

Další informace o službě Nasazení vzdáleného agenta webu a obslužné rutině nasazení webu najdete v tématu Volba správného přístupu k nasazení webu. Pokyny ke konfiguraci souborů projektu specifických pro prostředí pro nasazení do těchto koncových bodů najdete v tématu Konfigurace vlastností nasazení pro cílové prostředí.

Důležité informace o ověřování

Bez ohledu na to, zda webový balíček nasadíte spuštěním souboru .deploy.cmd nebo přímým použitím MSDeploy.exe, musíte zadat typ ověřování. Nasazení webu přijímá dvě možné hodnoty: NTLM nebo Basic. Pokud zadáte základní ověřování, musíte zadat také uživatelské jméno a heslo. Při výběru typu ověřování je potřeba mít na paměti různé faktory:

  • Pokud nasazujete do služby Vzdáleného agenta nasazení webu, musíte použít ověřování NTLM. Služba vzdáleného agenta nepřijímá přihlašovací údaje základního ověřování.
  • Pokud nasazujete do obslužné rutiny nasazení webu, můžete použít protokol NTLM nebo základní ověřování. Výchozí nastavení je základní ověřování. I když základní ověřování závisí na přenosu uživatelských jmen a hesel ve formátu prostého textu, vaše přihlašovací údaje jsou chráněny, protože obslužná rutina nasazení webu vždy používá šifrování SSL.
  • Pokud webový balíček obsahuje databázi a webový server a databázový server jsou samostatné počítače, nebudete moct databázi nasadit pomocí ověřování NTLM kvůli omezení dvojitého směrování protokolu NTLM. Musíte buď použít SQL Server přihlašovací údaje v připojovacím řetězci nasazení, nebo zadat přihlašovací údaje základního ověřování pro nasazení webu. Tento problém je podrobněji popsaný v tématu Nasazení databází členství do podnikových prostředí.

Závěr

Toto téma popisuje, jak můžete nasadit webový balíček spuštěním souboru .deploy.cmd nebo přímým použitím MSDeploy.exe. Vysvětluje, kdy může být každý přístup vhodný, a popisuje, jak můžete parametrizovat a spustit příkaz pro nasazení v rámci rozsáhlejšího procesu sestavení s jedním krokem nebo automatizovaného procesu sestavení.

Další čtení

Pokyny k vytvoření a parametrizaci balíčku pro nasazení webu najdete v tématech Sestavení a balení projektů webových aplikací a Konfigurace parametrů pro nasazení webového balíčku. Pokyny k sestavení a nasazení webových balíčků z instance sady Team Foundation Server (TFS) najdete v tématu Konfigurace Team Foundation Serveru pro automatizované nasazení webu. Informace o přizpůsobení a řešení potíží s procesem nasazení najdete v tématu Vyloučení souborů a složek z nasazení.