Publicação IIS

Web Deploy backups automáticos

Introdução

Em V3, Web Deploy é a introdução de um recurso de backup automático do lado do servidor para o IIS 7 e acima. Quando backups automáticos são configurados no servidor e um usuário publica a seu site usando Web Deploy, que vai primeiro fazer um backup do site ao vivo e armazená-lo no servidor antes de cometer quaisquer alterações ao site. Se a publicação falhou por algum motivo ou se o usuário quer restaurar uma versão anterior de seu site, ele será capaz de restaurar esses backups sem envolver um administrador do servidor. Este recurso precisa ser habilitado e configurado por um administrador do servidor antes de um usuário final pode tirar vantagem disso.

Quando os backups são criados

Quando o Web Deploy detecta que um usuário está publicando com um contentPath, iisapp ou prestador appHostConfig, ele vai iniciar automaticamente uma cópia de segurança (se habilitado no servidor). Em muitos casos, esses provedores também estão incluídos no publica usando Web Matrix e Visual Studio. Aqui está um exemplo de linha de comando de uma sincronia que irá iniciar um backup em “RemoteComputerName” usando o agente de implantação da Web.

msdeploy.exe verbo: sync-source: iisapp = <SiteName>-dest: automático, computername <remoteComputerName> =

Se o provedor de origem é um manifesto, o n Web Deploy irá inspecionar todos os fornecedores no manifesto para determinar se qualquer um dos fornecedores no manifesto é um contentPath, iisapp ou prestador appHostConfig. Se for, então ele irá iniciar um backup de todos os fornecedores (ver a seção “Problemas conhecidos e limitações” excepções a este) no manifesto. No entanto, se há caminhos provedor conflitantes (como está a apontar para um site “foo”, enquanto o outro está apontando para “barra” do site, Web Deploy não vai ter um backup.

O que um backup contém

Por padrão, o Web Deploy vão usar o que provedores de você especificou para sua publicação (exceto para setacl que nunca está incluído), a fim de criar o backup. Então, se eu publicar com um provedor iisapp e dbFullSql, Web Deploy terá um backup do seu iisapp e prestadores de dbFullSql no servidor. Isto incluirá todo o conteúdo e configuração pertencente a aplicação web, juntamente com o roteiro de banco de dados que pode ser usado para publicar o aplicativo web. Você pode alterar esse comportamento padrão, modificando a configuração de backup ExcludedProviders, ou especificando pular regras antes de fazer uma publicação.

Esses backups são válidos Implantar pacotes da Web que pode ser copiado e utilizado com Web Deploy contra qualquer servidor IIS compatível.

Configurando recurso de backup automático no Servidor (para administradores de servidor)

A fim de proporcionar o recurso de backup automático para os usuários, um administrador de servidor precisa de espaço prestação no servidor onde esses backups podem ser armazenados. Este espaço pode ser quer fisicamente localizado no servidor ou pode estar em um compartilhamento de rede acessível a partir do servidor.

A quantidade de espaço necessário dependerá de como grandes aplicações individuais são eo número de backups que você está planejando para armazenar no servidor. Se você quer controlar o espaço ocupado por backups você deve usar criar uma pasta separada para cada site e usar o Windows File Server Resource Manager (FSRM) para limitar cotas de pastas individuais. Como uma prática recomendada de segurança, você deve também ACL essas pastas para que cada usuário tenha acesso leitura / gravação somente para a pasta dele.

Backups pode ser habilitado globalmente no servidor, de modo que todos os sites podem tirar proveito dela ou estes podem ser configurados na base por site.

DEFININDO AS CONFIGURAÇÕES DE BACKUP NO SERVIDOR PARA USO GLOBAL AUTOMATICAMENTE USANDO POWERSHELL

O script PowerShell para configurar o recurso de backup no nível do servidor pode ser encontrado em “% programfiles% \ IIS \ Microsoft Web Deploy V3 \ scripts \ BackupScripts.ps1”. Para carregá-lo, basta navegar para o diretório em PowerShell e execute:

. . \ BackupScripts.ps1

Isso irá carregar as seguintes funções para a sessão que você pode usar para configurar backups.

  1.  Turnon backups: Liga / backups off para todo o servidor.
  2.  Configurar-Backups: Define o padrão do servidor ou configurações específicas do site de backup.
  3.  Configure-BackupSettingsProvider: controla as configurações de servidor para controlar o quanto um administrador do site terá sobre o seu comportamento de backup.
  4.  Get-BackupSettings: Consultas servidor ou configurações específicas do local de backup
  5.  Reset-BackupSettings: Repõe servidor ou configurações específicas do local de backup

Turnon-Backups Função:

Permite que um administrador do servidor para ligar ou desligar os backups em um escopo de servidor, sem overwritting configurações específicas do local. Por padrão, os backups são desligados. Mesmo depois de virar backups, cópias de segurança ainda deve ser “ativado” no servidor ou nível local, a fim de backups a serem tomadas.

# Desliga todas as funcionalidades de backup 
Turnon-Backups-On $ true 

# Acontece em todas as funcionalidade de backup 
Turnon-Backups-On $ false

Configurar-Backups:

Permite que um administrador do servidor para configurar o comportamento padrão de backup no servidor ou o âmbito localespecífico. Se um administrador especifica uma configuração no escopo do servidor e um site já especificou uma configuração específica do local, Web Deploy vai preferir o site definições específicas sobre as configurações do servidor. Se um administrador de servidor gostaria que as configurações do servidor ter prioridade, ele / ela deve redefinir as configurações do site de backup que fariam com que o site para herdar automaticamente as configurações do servidor.

# Muda o comportamento padrão global de backup para habilitado 
Configuram-Backups-Enabled $ true 

# Muda o comportamento padrão de backup para o site “foo” para habilitado 
Configuram-Backups-SiteName “foo”-Enabled $ true 

# Altera o caminho de onde os backups são armazenados em um diretório irmão chamado “siteName_snapshots”. 
# Para mais informações sobre as variáveis ​​de caminho, consulte o “backuppath” atributo na seção 
# “Configuração de backup no servidor para uso global manualmente no IIS Config” 
Configure-Backups-backuppath “{} \ SitePathParent {SITENAME} _snapshots” 

# Configura limite de backup padrão para 5 backups 
Configurar backups-NumerOfBackups 5 

# Configura comportamento de sincronização para falhar se uma sincronização falhar por qualquer motivo 
Configuram-Backups-ContinueSyncOnBackupFailure $ false 

# Adiciona fornecedores para pular ao executar um backup 
Configurar backups-AddExcludedProviders @ (“dbmysql”, “dbfullsql”)

Configure-BackupSettingsProvider:

Os administradores do site podem modificar suas configurações de site de backup específicas usando o BackupSettingsProvider com o Web Deploy. Esta função permite que um administrador de servidor para controlar exatamente quais as configurações de um administrador do site pode configurar.

# Permite que um administrador do site para permitir backups e definir o número de cópias de segurança ao nível do site 
Configure-BackupSettingsProvider-CanSetEnabled $ true-CanSetNumBackups $ true 

# Permite que um administrador do site para controlar os fornecedores que querem pular em um backup, como
# Bem como se podem continuar uma sincronização após uma falha de backup 
Configure-BackupSettingsProvider-CanSetContinueSyncOnBackupFailure $ true-CanAddExcludedProviders $ true

Get-BackupSettings

Consulta o servidor ou um sites de configurações de backup específicas.

# Pega as configurações de backup globais padrão 
Get-BackupSettings 

# Pega um definições de locais específicos de backup 
Get-BackupSettings-SiteName “foo”

Reset-BackupSettings

Reinicia o servidor ou uma configuração de sites de backup. Se você redefinir uma configuração de sites de backup, ele será automaticamente herdam as configurações de servidores de backup.

# Redefine as configurações de backup global padrão 
Reset-BackupSettings 

# Restaura uma configuração de Sites de backup 
Reset-BackupSettings-SiteName “foo”

DEFININDO AS CONFIGURAÇÕES DE BACKUP NO SERVIDOR PARA USO GLOBAL MANUALMENTE NO IIS CONFIGURAÇÃO

Globais configurações de backup

As seguintes configurações de backup globais podem ser configurados diretamente no sistema de configuração do IIS em% windir% \ system32 \ inetsrv \ config \ applicationhost.config.

  • habilitado – (Default = “false”) Controla se os backups são ligados ou não.
  • backuppath – (default = “{} \ sitePathParent {} siteName _snapshots”) onde no servidor de backups serão armazenados. Ele também upports variáveis ​​de substituição de caminho para “{sitePathParent}” e “{} siteName”, que são determinados em tempo de execução.
    • sitePathParent – O caminho de arquivo físico do pai do seu conteúdo sites. Por exemplo, se a aplicação do seu site vive sob “c: \ inetpub \ wwwroot \ siteName”, então sitePathParent seria “c: \ inetpub \ wwwroot \”.
    • siteName – O nome do seu site.

Exemplo: O esquema padrão define este caminho para “{sitePathParent} \ {} siteName _snapshots”, de modo que cada backup será colocado em uma pasta irmão do conteúdo do seu site, em vez de dentro dela.

AVISO: Certifique-se de que o seu backuppath não vive sob o seu caminho de conteúdo sites ou seus backups serão eliminados em cada publicação.

  • numberOfBackups – (Default = “4”) O número de backups por site que será armazenado no servidor. Quando o número máximo de backups foi criado, o backup mais antigo será apagado.
  • continueSyncOnBackupFailure – (Default = “true”) Permite que os usuários, ou falham uma sincronização ou continuar uma sincronização se um backup não concluir por qualquer motivo.
  • excludedProviders – (Default = conjunto vazio) Uma lista de provedores Web Deploy para sempre exclui a partir de um backup. Por exemplo, se os backups de banco de dados são gerenciados separadamente em seu ambiente, você usar essa configuração para excluir backups de banco de dados como parte de backups Web Deploy, excluindo dbFullSQLProvider Para mais detalhes, consulte a seção “Controle o que é um backup contém”

NOTA: Embora tecnicamente Web Deploy vai permitir que você faça backup quase todo fornecedor, existem alguns provedores que não podem ser restaurados de forma significativa devido à natureza de tais prestadores. Basicamente todos os fornecedores que são “apenas” set-prestadores de serviços e não de “sincronização” provedores se enquadram nesta categoria. Aqui está uma lista de provedores internos que são recomendados para ser adicionado aos ExcludedProviders configuração:

  • appHostAuthOverride
  • appPoolEnable32Bit
  • appPoolNetFx
  • appPoolPipeline
  • createApp
  • setacl
  • DBSqlPackage (Não instalado por padrão com o Web Deploy, mas está aqui porque não é suportado com o recurso de backup)
  • backupSettingsProvider – (Default: Todas as configurações de atributos são “falsas”) Dá um controle de administrador do sistema sobre o qual as configurações de backup pode ser definida por um administrador do site. Você pode permitir que os administradores de sites da web para controlar qualquer uma das configurações acima “habilitado”, “numberOfBackups”, “continueOnBackupFailure”, e “excludedProviders” para o seu site. Isto pode ser feito através da criação de propriedades “canSetEnabled”, “canSetNumberOfBackups” etc como verdadeiro, conforme especificado em seguir o exemplo.

Os detalhes completos sobre essas configurações e não permitiu valores podem ser encontrados em BackupManagerSchema (% windir% \ system32 \ inetsrv \ config \ esquema BackupManagerSchema.xml \) no sistema de configuração do IIS.

Abaixo está um exemplo de configuração que pode ser adicionado em <system.webServer> (veja o esquema completo para mais detalhes). Você não tem que especificar todas as definições abaixo como todos eles têm configurações padrão especificados no esquema, mas eles são especificados aqui para mostrar como um exemplo.

<Wdeploy>
<De backup enabled = “true”
numberOfBackups = “2”
backuppath = “{} \ sitePathParent {SITENAME} _siteBackups”
continueSyncOnBackupFailure = “false”>
<ExcludedProviders>
Provedor < name = “dbFullSql” />
</ ExcludedProviders>
<BackupSettingsProvider
canSetEnabled = “true”
canSetNumberOfBackups = “true”
canSetContinueSyncOnBackupFailure = “true”
canSetExcludedProviders = “true” />
<Backup />
<Wdeploy />

Digamos que temos um site com o nome “foo” que vive sob “c: \ foo \ wwwroot” no servidor. A configuração acima diz Deploy Web para:

  1.  Ligue o featureKeep backup um máximo de dois backups.
  2.  Armazenar cada backup em uma pasta em “C: \ foo \ foo_siteBackups”.
  3.  Falhar uma publicação se uma operação de backup falhar por qualquer motivo.
  4.  Excluir o backup de bancos de dados SQL com o provedor dbFullSql.
  5.  Permitir que os administradores do site web para usar o backupSettingsProvider para configurar as definições de “habilitado”, “numberOfBackups”, “continueOnBackupFailure”, e “excludedProviders” para o seu site.

DEFININDO AS CONFIGURAÇÕES DE BACKUP NO SERVIDOR PARA SITES ESPECÍFICOS

O recurso de backup automático também permite que você defina as configurações específicas do local, especificando cada configuração de backup usando uma marca <location> no arquivo applicationHost.config. Se uma configuração não é especificado na etiqueta de localização, então ele vai ser herdadas das configurações do servidor. Aqui está um exemplo do que uma configuração de sites de backup podem parecer:

Localização < path = “siteName”>
<System.webServer>
<Wdeploy>
<De backup enabled = “true” numberOfBackups = “4”>
<ExcludedProviders>
</ Clara>
Provedor < name = “dbfullsql” />
</ ExcludedProviders>
<Backup />
<Wdeploy />
</ System.webServer>
</ Location>

Se você gostaria de permitir que os administradores do site para ser capaz de definir suas configurações de site próprio, você precisa configurar os “canSet *” atributos do elemento BackupSettingsProvider nas configurações de backup do servidor (não as configurações de backup do site).

CONSIDERAÇÕES DE SEGURANÇA PARA BACKUPS AUTOMÁTICOS

Ao armazenar esses backups no servidor, deve ser assegurado que cada usuário só tem acesso a seu próprio conteúdo. Web Deploy por padrão (durante uma instalação completa) configura BackupManager regra delegação para garantir que ele está representando como o usuário que está publicando ao criar backups. Isto implica que a conta de usuário editora também vai precisar ter “escrever” privilégios de arquivo para o diretório de backup.

Se você não quiser usar o final de identidade aos usuários criar seus backups, você pode simplesmente excluir essa regra delegação e Deploy Web usará a identidade do serviço WMSVC para escrever para o diretório de backup.

Nota:

  • Regras de delegação só se aplica para usuários não-administrativos que se conectam através WMSvc. Para os administradores (agente de ligação através da Web Deploy), a sua própria identidade é usado.
  • Se você deseja configurar regras de delegação manualmente, executar nosso script AddDelegationRules.ps1 .
  • O recurso Backup vem com duas regras novo provedor de delegação (BackupSettings e BackupManager) como mostrado abaixo.

Configurar as definições em nível de site de backup no servidor (para o site / servidor de administradores)

Os administradores do servidor pode optar por delegar a administração de backup para os administradores do site. Se for permitido, os administradores podem configurar o comportamento de backup para seus próprios sites.

Nota: msdeploy.exe está localizado em “% programfiles% \ IIS \ Microsoft Web Deploy V3

Configurações listagem de sites de backup: Faça um “dump” operação enquanto passando o nome do seu site no provedor backupSettings. A bandeira xml também vai listar se a configuração é gravável ou não.

msdeploy.exe verbo: dump-source: backupSettings = <SiteName>-xml

Configurar as definições de backup: Execute uma “sincronização” operação durante a passagem no nome do seu site, além de quaisquer configurações que você gostaria de mudar.

msdeploy.exe-verbo: sync-source: backupSettings-dest: = backupSettings <SiteName>, enabled = “true”, numberOfBackups = 3

Nota: O administrador do servidor deve permitir a delegação de essas configurações para que você possa mudá-los.

Controlar o comportamento de falha: Você pode controlar o comportamento de saber se você gostaria que a publicar continuar ou não em caso de falha de backup, modificando o “continueSyncOnBackupFailure” configuração de backup. Se “continueSyncOnBackupFailure” é definido como falso e um backup falhar, a publicação irá falhar e não o conteúdo do site ou bancos de dados será modificado.

Adicionando um fornecedor à lista de fornecedores para excluir um backup: Especifique uma lista delimitada por ponto e vírgula de fornecedores. Você pode usar a opção de acrescentar addExcludedProviders fornecedores para a lista global.

msdeploy.exe verbo: sync-source: backupSettings-dest: = backupSettings <SiteName>, addExcludedProviders = “dbFullSql; dbMySql”

Redefinir as configurações de backup do site para padrões do servidor: Execute uma “exclusão” a operação.

msdeploy.exe verbo: delete-dest: = backupSettings <SiteName>

Publicando em um servidor de backup-Enabled (para desenvolvedores web)

Automaticamente a criação de backup

Quando um usuário publica para um servidor de backup habilitado usando um dos provedores suportados (iisapp, appHostConfig, contentPath), um backup será feito automaticamente antes de qualquer dado é aplicado, desde que o backup não é ignorado. Não há nenhuma ação específica necessária por parte do usuário final.

Criando um backup manualmente

Um usuário pode forçar manualmente um backup a ser criado usando o provedor BackupManager, desde que os backups são configurados e habilitados para o site que está sendo publicado. Há dois métodos de criação de um backup manual.

  1.  Especificar um caminho local de destino – Isso vai levar um backup iisapp simples de seu local de destino.
    •  msdeploy.exe verbo: sync-source: BackupManager-dest: = BackupManager siteName
  2.  Especificando um arquivo de manifesto fonte – Isso vai permitir que você faça um backup de vários provedores (ou seja iisapp, dbFullSql, etc ..)
    •  msdeploy.exe verbo: sync-source: BackupManager = manifest.xml-dest: = BackupManager siteName

Um exemplo de um arquivo de manifesto simples para a segunda opção poderia ser algo como isto:

  <? Xml    version = "1.0"    encoding = "UTF-8">
 <M>
 <Iisapp    path = "siteName" />
 <DbFullSql    path = "connectionString" />
 </ M>

Pulando de backup durante Publicar

Se um cliente quer evitar que um backup de serem presos, eles podem desativar os backups no servidor como uma configuração persistiu usando o provedor backupSettings, ou desativar a regra de backup de ser executado no servidor para cada publicação individual. Aqui está um exemplo de como desativar a regra de backup seja executado durante uma publicação:

msdeploy.exe verbo: sync-source: iisapp = <SiteName>-dest: automático, computername = <remoteComputerName>-disablerule: BackupRule

Backups de gestão (para desenvolvedores web / administradores do site)

O provedor BackupManager oferece aos clientes a capacidade de listar, restaurar e excluir backups. Aqui estão alguns exemplos de como isso é feito:

Backups de Listagem para um site: Executar um “dump” operação para ver todos os backups para um site

msdeploy.exe verbo: dump-source: BackupManager = <SiteName>

A restauração de um backup específico para um site: Executa uma “sincronia” operação para aplicar um backup

msdeploy.exe verbo: sync-source: BackupManager-dest: = BackupManager <SiteName> / <backupFileName>

Restaurar o backup mais recente de um site:

msdeploy.exe verbo: sync-source: BackupManager-dest: = BackupManager <SiteName>, useLatest = true

Restaurar o backup mais recente de um site que também contém um banco de dados: Assume que o último backup também acontece para conter um backup de banco de dados. A definição de fornecedor connectionString é usado para conectar ao banco de dados que você está restaurando e é necessária para restaurar qualquer backup com um banco de dados, a menos que você aplicar uma regra saltar para pular restauração banco de dados.

msdeploy.exe verbo: sync-source: BackupManager-dest: = BackupManager <SiteName>, useLatest = true, connectionString <connectionString> =

Restaurar o backup mais recente de um site sem substituir App_Data usando Salta:

msdeploy.exe verbo: sync-source: BackupManager-dest: = BackupManager <SiteName>, uselatst = true-skip: xpath = dirPath [@ caminho = ‘App_Data’]

Excluir um backup para um site:

msdeploy.exe-verbo: delete-dest: = BackupManager <SiteName> / <backupFileName>

Problemas conhecidos e Limitações-

Há vários cenários em que o Web Deploy não terá automaticamente uma cópia de segurança para você, mesmo se ele estiver habilitado no servidor:

  1.  O cliente está publicando usando uma versão anterior do Web Deploy de V3 RC.
  2.  O servidor não tem pelo menos Web Deploy V3 RC instalado.
  3.  Mais do que um banco de dados é especificado em um manifesto – Web Deploy suporta apenas fazer um backup de um banco de dados único por publicar.
  4.  O caminho do provedor que você está usando não é um caminho local relativo – O provedor contentPath aceita caminhos de arquivos físicos, bem como os caminhos do site relativos. Se um caminho físico é especificado, Web Deploy não vai contar o provedor para iniciar o backup. O provedor apphostConfig aceita um caminho vazio. Se um caminho vazio for especificado, Web Deploy não vai ter um apoio em tudo.
  5.  Conflitantes caminhos relativos em um manifesto – Se há vários fornecedores em um manifesto que têm caminhos conflitantes local relativos, em seguida, Web Deploy não vai ter um backup. Por exemplo, se você está publicando com provedores iisapp vários locais diferentes – um apontando para o site “foo”, enquanto o outro, apontando para “barra” site – Web Deploy não vai ter um backup.

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *