Přidání runbooků Azure Automation do plánů obnoveníAdd Azure Automation runbooks to recovery plans

V tomto článku popisujeme, jak Azure Site Recovery se integruje s Azure Automation, aby vám pomohla rozšířit plány obnovení.In this article, we describe how Azure Site Recovery integrates with Azure Automation to help you extend your recovery plans. Plány obnovení můžete orchestrovat obnovení virtuálních počítačů, které jsou chráněné pomocí služby Site Recovery.Recovery plans can orchestrate recovery of VMs that are protected with Site Recovery. Plány obnovení fungovat i pro replikaci do sekundárního cloudu a pro replikaci do Azure.Recovery plans work both for replication to a secondary cloud, and for replication to Azure. Plány obnovení také pomoci, ujistěte se, obnovení přesné, opakovatelné, a automatizované.Recovery plans also help make the recovery consistently accurate, repeatable, and automated. Pokud převzetí služeb při selhání virtuálních počítačů do Azure, rozšiřuje integrace s Azure Automation plánech obnovení.If you fail over your VMs to Azure, integration with Azure Automation extends your recovery plans. Můžete ho použít ke spuštění sady runbook, který nabízí výkonné automatizaci úkolů.You can use it to execute runbooks, which offer powerful automation tasks.

Pokud jste ještě Azure Automation, můžete zaregistrovat a stáhnout ukázkové skripty.If you are new to Azure Automation, you can sign up and download sample scripts. Další informace a zjistěte, jak orchestrovat obnovení do Azure s použitím plány obnovení, naleznete v tématu Azure Site Recovery.For more information, and to learn how to orchestrate recovery to Azure by using recovery plans, see Azure Site Recovery.

V tomto článku popisujeme, jak integrovat Azure Automation. runbooky plány obnovení.In this article, we describe how you can integrate Azure Automation runbooks into your recovery plans. Příklady použít k automatizaci základní úkoly, které dříve vyžadovaly ručního zásahu.We use examples to automate basic tasks that previously required manual intervention. Také zjistíte, jak převést více kroky obnovení na akci obnovení jedním kliknutím.We also describe how to convert a multi-step recovery to a single-click recovery action.

Přizpůsobit plán obnoveníCustomize the recovery plan

  1. Přejděte Site Recovery okno prostředku plánu obnovení.Go to the Site Recovery recovery plan resource blade. V tomto příkladu plán obnovení obsahuje dva virtuální počítače přidat do něj pro obnovení.For this example, the recovery plan has two VMs added to it, for recovery. Chcete-li začít přidávat sady runbook, klikněte na tlačítko vlastní kartu.To begin adding a runbook, click the Customize tab.

    Klikněte na tlačítko Přizpůsobit

  2. Klikněte pravým tlačítkem na skupiny 1: Starta pak vyberte přidat akci po.Right-click Group 1: Start, and then select Add post action.

    Klikněte pravým tlačítkem na skupinu 1: Spuštění a přidat akci po

  3. Klikněte na tlačítko vyberte skript.Click Choose a script.

  4. Na akce aktualizace okna, název skriptu Hello World.On the Update action blade, name the script Hello World.

    Okno Akce aktualizace

  5. Zadejte název účtu služby Automation.Enter an Automation account name.

    Poznámka

    Účet Automation může být v libovolné oblasti Azure.The Automation account can be in any Azure region. Účet Automation musí být ve stejném předplatném jako trezor Azure Site Recovery.The Automation account must be in the same subscription as the Azure Site Recovery vault.

  6. Ve vašem účtu Automation vyberte sadu runbook.In your Automation account, select a runbook. Tato sada runbook je skript, který se spustí při spuštění plánu zotavení po obnovení do první skupiny.This runbook is the script that runs during the execution of the recovery plan, after the recovery of the first group.

  7. Pokud chcete uložit skript, klikněte na tlačítko OK.To save the script, click OK. Skript se přidá do 1. skupina: kroky prováděné po zpracování.The script is added to Group 1: Post-steps.

    Akce po skupiny 1:Start

Důležité informace týkající se přidání skriptuConsiderations for adding a script

  • Možnosti odstranit krok nebo aktualizujte skript v, klikněte pravým tlačítkem na skript.For options to delete a step or update the script, right-click the script.

  • Skript můžete spustit v Azure během převzetí služeb při selhání z místního počítače do Azure.A script can run on Azure during failover from an on-premises machine to Azure. Je také můžete spustit v Azure jako primární lokality skript před vypnutím, během navrácení služeb po obnovení z Azure do místního počítače.It also can run on Azure as a primary-site script before shutdown, during failback from Azure to an on-premises machine.

  • Po spuštění skriptu vkládá kontextu plánu obnovení.When a script runs, it injects a recovery plan context. Následující příklad ukazuje kontextové proměnné:The following example shows a context variable:

            {"RecoveryPlanName":"hrweb-recovery",
    
            "FailoverType":"Test",
    
            "FailoverDirection":"PrimaryToSecondary",
    
            "GroupId":"1",
    
            "VmMap":{"7a1069c6-c1d6-49c5-8c5d-33bfce8dd183":
    
                    { "SubscriptionId":"7a1111111-c1d6-49c5-8c5d-111ce8dd183",
    
                    "ResourceGroupName":"ContosoRG",
    
                    "CloudServiceName":"pod02hrweb-Chicago-test",
    
                    "RoleName":"Fabrikam-Hrweb-frontend-test",
    
                    "RecoveryPointId":"TimeStamp"}
    
                    }
    
            }
    

    Následující tabulka uvádí název a popis každou proměnnou v kontextu.The following table lists the name and description of each variable in the context.

    Název proměnnéVariable name PopisDescription
    RecoveryPlanNameRecoveryPlanName Název plánu spuštěn.The name of the plan being run. Tato proměnná umožňuje provést různé akce na základě názvu plánu obnovení.This variable helps you take different actions based on the recovery plan name. Také můžete znovu použít skript.You also can reuse the script.
    FailoverTypeFailoverType Určuje, zda je převzetí služeb při selhání testu, plánované nebo neplánované.Specifies whether the failover is a test, planned, or unplanned.
    FailoverDirectionFailoverDirection Určuje, zda probíhá obnovení do primární nebo sekundární lokality.Specifies whether recovery is to a primary or secondary site.
    ID skupinyGroupID Označuje číslo skupiny v plánu obnovení při spuštění plánu.Identifies the group number in the recovery plan when the plan is running.
    VmMapVmMap Pole všech virtuálních počítačů ve skupině.An array of all VMs in the group.
    Klíč VMMapVMMap key Jedinečný klíč (GUID) pro každý virtuální počítač.A unique key (GUID) for each VM. Je stejný jako Azure Virtual Machine Manager (VMM) ID virtuálního počítače, kde je to možné.It's the same as the Azure Virtual Machine Manager (VMM) ID of the VM, where applicable.
    SubscriptionIdSubscriptionId ID předplatného Azure, ve kterém byl virtuální počítač vytvořen.The Azure subscription ID in which the VM was created.
    RoleNameRoleName Název virtuálního počítače Azure, který se obnovuje.The name of the Azure VM that's being recovered.
    CloudServiceNameCloudServiceName Název služby Azure cloud v rámci které se vytvoří virtuální počítač.The Azure cloud service name under which the VM was created.
    ResourceGroupNameResourceGroupName Název skupiny prostředků Azure v rámci které se vytvoří virtuální počítač.The Azure resource group name under which the VM was created.
    RecoveryPointIdRecoveryPointId Časové razítko pro při obnovení virtuálního počítače.The timestamp for when the VM is recovered.
  • Zkontrolujte, zda má účet služby Automation tyto moduly:Ensure that the Automation account has the following modules:

    • AzureRM.profileAzureRM.profile
    • AzureRM.ResourcesAzureRM.Resources
    • AzureRM.AutomationAzureRM.Automation
    • AzureRM.NetworkAzureRM.Network
    • AzureRM.ComputeAzureRM.Compute

Všechny moduly musí být kompatibilní verzí.All modules should be of compatible versions. Snadný způsob, jak zajistit, že jsou kompatibilní všechny moduly, je použití nejnovější verze všech modulů.An easy way to ensure that all modules are compatible is to use the latest versions of all the modules.

Přístup k všechny virtuální počítače z VMMap ve smyčceAccess all VMs of the VMMap in a loop

Použijte následující kód k vytvoření smyčky ve všech virtuálních počítačích z VMMap společnosti Microsoft:Use the following code to loop across all VMs of the Microsoft VMMap:

$VMinfo = $RecoveryPlanContext.VmMap | Get-Member | Where-Object MemberType -EQ NoteProperty | select -ExpandProperty Name
$vmMap = $RecoveryPlanContext.VmMap
 foreach($VMID in $VMinfo)
 {
     $VM = $vmMap.$VMID                
             if( !(($VM -eq $Null) -Or ($VM.ResourceGroupName -eq $Null) -Or ($VM.RoleName -eq $Null))) {
         #this check is to ensure that we skip when some data is not available else it will fail
 Write-output "Resource group name ", $VM.ResourceGroupName
 Write-output "Rolename " = $VM.RoleName
     }
 }

Poznámka

Zdroj skupiny název role název hodnoty a jsou prázdné po před akcí pro skupinu spouštěcí skript.The resource group name and role name values are empty when the script is a pre-action to a boot group. Hodnoty se vyplní pouze v případě, že virtuální počítač z této skupiny převzetí služeb při selhání úspěšně.The values are populated only if the VM of that group succeeds in failover. Skript je akce po spuštění skupiny.The script is a post-action of the boot group.

Použít stejnou sadu runbook Automation ve více plánů obnoveníUse the same Automation runbook in multiple recovery plans

Jeden skript můžete použít ve více plánů obnovení pomocí externích proměnných.You can use a single script in multiple recovery plans by using external variables. Můžete použít proměnné služeb automatizace Azure k uložení parametrů, které můžete předat pro spuštění plánu obnovení.You can use Azure Automation variables to store parameters that you can pass for a recovery plan execution. Tak, že přidáte název plánu obnovení jako předpona k proměnné, můžete vytvořit jednotlivé proměnné pro každý plán obnovení.By adding the recovery plan name as a prefix to the variable, you can create individual variables for each recovery plan. Potom použijte proměnné jako parametry.Then, use the variables as parameters. Změna parametru bez úpravy skriptu, ale stále změnit způsob, jakým funguje skriptu.You can change a parameter without changing the script, but still change the way the script works.

Použití jednoduché řetězcové proměnné ve skriptu sady runbookUse a simple string variable in a runbook script

V tomto příkladu skript přijímá vstup ze skupiny zabezpečení sítě (NSG) a použije ho k virtuálním počítačům z plánu obnovení.In this example, a script takes the input of a Network Security Group (NSG) and applies it to the VMs of a recovery plan.

Pro skript k detekci obnovení, který je spuštěn plán, použijte kontextu plánu obnovení:For the script to detect which recovery plan is running, use the recovery plan context:

workflow AddPublicIPAndNSG {
    param (
          [parameter(Mandatory=$false)]
          [Object]$RecoveryPlanContext
    )

    $RPName = $RecoveryPlanContext.RecoveryPlanName

Chcete-li použít existující skupině NSG, musíte znát název skupiny zabezpečení sítě a název skupiny prostředků skupiny zabezpečení sítě.To apply an existing NSG, you must know the NSG name and the NSG resource group name. Tyto proměnné můžete použijte jako vstupy pro skripty plánu obnovení.Use these variables as inputs for recovery plan scripts. K tomu vytvořte dvě proměnné v prostředků účtu Automation.To do this, create two variables in the Automation account assets. Přidejte název plánu obnovení, kterou vytváříte parametry jako předpony názvu proměnné.Add the name of the recovery plan that you are creating the parameters for as a prefix to the variable name.

  1. Vytvořte proměnnou pro uložení názvu skupiny zabezpečení sítě.Create a variable to store the NSG name. Přidáte předponu názvu proměnné pomocí názvu plánu obnovení.Add a prefix to the variable name by using the name of the recovery plan.

    Vytvořte proměnnou pro název skupiny zabezpečení sítě

  2. Vytvořte proměnnou pro uložení skupin zabezpečení sítě a název skupiny prostředků.Create a variable to store the NSG's resource group name. Přidáte předponu názvu proměnné pomocí názvu plánu obnovení.Add a prefix to the variable name by using the name of the recovery plan.

    Vytvoření skupiny zabezpečení sítě názvu skupiny prostředků

  3. Ve skriptu použijte následující kód odkaz k získání hodnoty proměnných:In the script, use the following reference code to get the variable values:

    $NSGValue = $RecoveryPlanContext.RecoveryPlanName + "-NSG"
    $NSGRGValue = $RecoveryPlanContext.RecoveryPlanName + "-NSGRG"
    
    $NSGnameVar = Get-AutomationVariable -Name $NSGValue
    $RGnameVar = Get-AutomationVariable -Name $NSGRGValue
    
  4. Použití proměnné v runbooku použít skupinu zabezpečení sítě k síťovému rozhraní virtuálního počítače převzetím služeb při selhání:Use the variables in the runbook to apply the NSG to the network interface of the failed-over VM:

    InlineScript {
    if (($Using:NSGname -ne $Null) -And ($Using:NSGRGname -ne $Null)) {
            $NSG = Get-AzureRmNetworkSecurityGroup -Name $Using:NSGname -ResourceGroupName $Using:NSGRGname
            Write-output $NSG.Id
            #Apply the NSG to a network interface
            #$vnet = Get-AzureRmVirtualNetwork -ResourceGroupName TestRG -Name TestVNet
            #Set-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name FrontEnd `
            #  -AddressPrefix 192.168.1.0/24 -NetworkSecurityGroup $NSG
        }
    }
    

Pro každý plán obnovení vytvořte nezávislých proměnných, takže můžete znovu použít skript.For each recovery plan, create independent variables so that you can reuse the script. Přidáte předponu pomocí název plánu obnovení.Add a prefix by using the recovery plan name. Kompletní a začátku do konce skript v tomto scénáři najdete v tématu přidání veřejné IP adresy a skupiny zabezpečení sítě pro virtuální počítače během testovacího převzetí služeb při selhání plánu obnovení Site Recovery.For a complete, end-to-end script for this scenario, see Add a public IP and NSG to VMs during test failover of a Site Recovery recovery plan.

Použít komplexní proměnné k ukládání Další informaceUse a complex variable to store more information

Představte si třeba situaci, ve kterém chcete jednoho skriptu zapnout veřejnou IP adresu na konkrétní virtuální počítače.Consider a scenario in which you want a single script to turn on a public IP on specific VMs. V jiném případě můžete chtít použít různé skupiny zabezpečení sítě v různých virtuálních počítačů (ne pro všechny virtuální počítače).In another scenario, you might want to apply different NSGs on different VMs (not on all VMs). Můžete vytvořit skript, který je opakovaně použitelný pro všechny plánu obnovení.You can make a script that is reusable for any recovery plan. Každý plán obnovení může mít proměnný počet virtuálních počítačů.Each recovery plan can have a variable number of VMs. Například obnovení služby SharePoint obsahuje dva front-endů.For example, a SharePoint recovery has two front ends. Základní-obchodní (LOB) aplikace má pouze jeden front-endu.A basic line-of-business (LOB) application has only one front end. Nelze vytvořit samostatné proměnné pro každý plán obnovení.You cannot create separate variables for each recovery plan.

V následujícím příkladu jsme pomocí nové techniky a vytvořit komplexní proměnné v prostředků účtu služby Azure Automation.In the following example, we use a new technique and create a complex variable in the Azure Automation account assets. To provedete tak, že zadáte více hodnot.You do this by specifying multiple values. Pomocí Azure Powershellu musíte provést následující kroky:You must use Azure PowerShell to complete the following steps:

  1. V prostředí PowerShell Přihlaste se ke svému předplatnému Azure:In PowerShell, sign in to your Azure subscription:

    Connect-AzureRmAccount
    $sub = Get-AzureRmSubscription -Name <SubscriptionName>
    $sub | Select-AzureRmSubscription
    
  2. Pokud chcete uložit parametry, vytvořte proměnnou komplexní pomocí názvu plánu obnovení:To store the parameters, create the complex variable by using the name of the recovery plan:

    $VMDetails = @{"VMGUID"=@{"ResourceGroupName"="RGNameOfNSG";"NSGName"="NameOfNSG"};"VMGUID2"=@{"ResourceGroupName"="RGNameOfNSG";"NSGName"="NameOfNSG"}}
        New-AzureRmAutomationVariable -ResourceGroupName <RG of Automation Account> -AutomationAccountName <AA Name> -Name <RecoveryPlanName> -Value $VMDetails -Encrypted $false
    
  3. V této proměnné komplexní VMDetails je ID virtuálního počítače pro chráněný virtuální počítač.In this complex variable, VMDetails is the VM ID for the protected VM. Chcete-li získat ID virtuálního počítače na webu Azure Portal, zobrazte vlastnosti virtuálního počítače.To get the VM ID, in the Azure portal, view the VM properties. Následující snímek obrazovky ukazuje proměnná, která uchovává podrobnosti dva virtuální počítače:The following screenshot shows a variable that stores the details of two VMs:

    Použít jako identifikátor GUID ID virtuálního počítače

  4. Pomocí této proměnné v runbooku.Use this variable in your runbook. Pokud je zadaný identifikátor GUID virtuálního počítače v rámci plánu obnovení, vztahují skupiny zabezpečení sítě na virtuálním počítači:If the indicated VM GUID is found in the recovery plan context, apply the NSG on the VM:

    $VMDetailsObj = (Get-AutomationVariable -Name $RecoveryPlanContext.RecoveryPlanName).ToObject([hashtable])
    
  5. V sadě runbook projděte virtuální počítače kontextu plánu obnovení.In your runbook, loop through the VMs of the recovery plan context. Zkontrolujte, zda virtuální počítač existuje v $VMDetailsObj.Check whether the VM exists in $VMDetailsObj. Pokud existuje, přístup k vlastnostem proměnné, chcete-li použít skupinu zabezpečení sítě:If it exists, access the properties of the variable to apply the NSG:

        $VMinfo = $RecoveryPlanContext.VmMap | Get-Member | Where-Object MemberType -EQ NoteProperty | select -ExpandProperty Name
        $vmMap = $RecoveryPlanContext.VmMap
    
        foreach($VMID in $VMinfo) {
            $VMDetails = $VMDetailsObj[$VMID].ToObject([hashtable]);
            Write-output $VMDetails
            if ($VMDetails -ne $Null) { #If the VM exists in the context, this will not be Null
                $VM = $vmMap.$VMID
                # Access the properties of the variable
                $NSGname = $VMDetails.NSGName
                $NSGRGname = $VMDetails.NSGResourceGroupName
    
                # Add code to apply the NSG properties to the VM
            }
        }
    

Stejný skript můžete použít pro plány obnovení jinou.You can use the same script for different recovery plans. Zadejte jiné parametry uložením hodnota, která odpovídá plánu obnovení v jiné proměnné.Enter different parameters by storing the value that corresponds to a recovery plan in different variables.

Ukázkové skriptySample scripts

Ukázky skriptů nasazení do vašeho účtu Automation, klikněte na tlačítko nasadit do Azure tlačítko.To deploy sample scripts to your Automation account, click the Deploy to Azure button.

Nasazení do AzureDeploy to Azure

Další příklad najdete v následujícím videu.For another example, see the following video. Ukazuje, jak obnovit dvouvrstvé aplikace WordPress na Azure:It demonstrates how to recover a two-tier WordPress application to Azure:

Další zdroje informací:Additional resources

Další postupNext steps

Další informace o spuštění převzetí služeb při selhání.Learn more about running failovers.