Show / Hide Table of Contents

Namespace Pulumi.Azure.SiteRecovery

Classes

Fabric

Manages a Azure Site Recovery Replication Fabric within a Recovery Services vault. Only Azure fabrics are supported at this time. Replication Fabrics serve as a container within an Azure region for other Site Recovery resources such as protection containers, protected items, network mappings.

Example Usage

using Pulumi;
using Azure = Pulumi.Azure;

class MyStack : Stack
{
public MyStack()
{
    var primary = new Azure.Core.ResourceGroup("primary", new Azure.Core.ResourceGroupArgs
    {
        Location = "West US",
    });
    var secondary = new Azure.Core.ResourceGroup("secondary", new Azure.Core.ResourceGroupArgs
    {
        Location = "East US",
    });
    var vault = new Azure.RecoveryServices.Vault("vault", new Azure.RecoveryServices.VaultArgs
    {
        Location = secondary.Location,
        ResourceGroupName = secondary.Name,
        Sku = "Standard",
    });
    var fabric = new Azure.SiteRecovery.Fabric("fabric", new Azure.SiteRecovery.FabricArgs
    {
        ResourceGroupName = secondary.Name,
        RecoveryVaultName = vault.Name,
        Location = primary.Location,
    });
}

}

FabricArgs

FabricState

NetworkMapping

Manages a site recovery network mapping on Azure. A network mapping decides how to translate connected netwroks when a VM is migrated from one region to another.

Example Usage

using Pulumi;
using Azure = Pulumi.Azure;

class MyStack : Stack
{
public MyStack()
{
    var primaryResourceGroup = new Azure.Core.ResourceGroup("primaryResourceGroup", new Azure.Core.ResourceGroupArgs
    {
        Location = "West US",
    });
    var secondaryResourceGroup = new Azure.Core.ResourceGroup("secondaryResourceGroup", new Azure.Core.ResourceGroupArgs
    {
        Location = "East US",
    });
    var vault = new Azure.RecoveryServices.Vault("vault", new Azure.RecoveryServices.VaultArgs
    {
        Location = secondaryResourceGroup.Location,
        ResourceGroupName = secondaryResourceGroup.Name,
        Sku = "Standard",
    });
    var primaryFabric = new Azure.SiteRecovery.Fabric("primaryFabric", new Azure.SiteRecovery.FabricArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        Location = primaryResourceGroup.Location,
    });
    var secondaryFabric = new Azure.SiteRecovery.Fabric("secondaryFabric", new Azure.SiteRecovery.FabricArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        Location = secondaryResourceGroup.Location,
    });
    // Avoids issues with crearing fabrics simultainusly
    var primaryVirtualNetwork = new Azure.Network.VirtualNetwork("primaryVirtualNetwork", new Azure.Network.VirtualNetworkArgs
    {
        ResourceGroupName = primaryResourceGroup.Name,
        AddressSpaces = 
        {
            "192.168.1.0/24",
        },
        Location = primaryResourceGroup.Location,
    });
    var secondaryVirtualNetwork = new Azure.Network.VirtualNetwork("secondaryVirtualNetwork", new Azure.Network.VirtualNetworkArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        AddressSpaces = 
        {
            "192.168.2.0/24",
        },
        Location = secondaryResourceGroup.Location,
    });
    var recovery_mapping = new Azure.SiteRecovery.NetworkMapping("recovery-mapping", new Azure.SiteRecovery.NetworkMappingArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        SourceRecoveryFabricName = "primary-fabric",
        TargetRecoveryFabricName = "secondary-fabric",
        SourceNetworkId = primaryVirtualNetwork.Id,
        TargetNetworkId = secondaryVirtualNetwork.Id,
    });
}

}

NetworkMappingArgs

NetworkMappingState

ProtectionContainer

Manages a Azure Site Recovery protection container. Protection containers serve as containers for replicated VMs and belong to a single region / recovery fabric. Protection containers can contain more than one replicated VM. To replicate a VM, a container must exist in both the source and target Azure regions.

Example Usage

using Pulumi;
using Azure = Pulumi.Azure;

class MyStack : Stack
{
public MyStack()
{
    var primary = new Azure.Core.ResourceGroup("primary", new Azure.Core.ResourceGroupArgs
    {
        Location = "West US",
    });
    var secondary = new Azure.Core.ResourceGroup("secondary", new Azure.Core.ResourceGroupArgs
    {
        Location = "East US",
    });
    var vault = new Azure.RecoveryServices.Vault("vault", new Azure.RecoveryServices.VaultArgs
    {
        Location = secondary.Location,
        ResourceGroupName = secondary.Name,
        Sku = "Standard",
    });
    var fabric = new Azure.SiteRecovery.Fabric("fabric", new Azure.SiteRecovery.FabricArgs
    {
        ResourceGroupName = secondary.Name,
        RecoveryVaultName = vault.Name,
        Location = primary.Location,
    });
    var protection_container = new Azure.SiteRecovery.ProtectionContainer("protection-container", new Azure.SiteRecovery.ProtectionContainerArgs
    {
        ResourceGroupName = secondary.Name,
        RecoveryVaultName = vault.Name,
        RecoveryFabricName = fabric.Name,
    });
}

}

ProtectionContainerArgs

ProtectionContainerMapping

Manages a Azure recovery vault protection container mapping. A protection container mapping decides how to translate the protection container when a VM is migrated from one region to another.

Example Usage

using Pulumi;
using Azure = Pulumi.Azure;

class MyStack : Stack
{
public MyStack()
{
    var primaryResourceGroup = new Azure.Core.ResourceGroup("primaryResourceGroup", new Azure.Core.ResourceGroupArgs
    {
        Location = "West US",
    });
    var secondaryResourceGroup = new Azure.Core.ResourceGroup("secondaryResourceGroup", new Azure.Core.ResourceGroupArgs
    {
        Location = "East US",
    });
    var vault = new Azure.RecoveryServices.Vault("vault", new Azure.RecoveryServices.VaultArgs
    {
        Location = secondaryResourceGroup.Location,
        ResourceGroupName = secondaryResourceGroup.Name,
        Sku = "Standard",
    });
    var primaryFabric = new Azure.SiteRecovery.Fabric("primaryFabric", new Azure.SiteRecovery.FabricArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        Location = primaryResourceGroup.Location,
    });
    var secondaryFabric = new Azure.SiteRecovery.Fabric("secondaryFabric", new Azure.SiteRecovery.FabricArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        Location = secondaryResourceGroup.Location,
    });
    var primaryProtectionContainer = new Azure.SiteRecovery.ProtectionContainer("primaryProtectionContainer", new Azure.SiteRecovery.ProtectionContainerArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        RecoveryFabricName = primaryFabric.Name,
    });
    var secondaryProtectionContainer = new Azure.SiteRecovery.ProtectionContainer("secondaryProtectionContainer", new Azure.SiteRecovery.ProtectionContainerArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        RecoveryFabricName = secondaryFabric.Name,
    });
    var policy = new Azure.SiteRecovery.ReplicationPolicy("policy", new Azure.SiteRecovery.ReplicationPolicyArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        RecoveryPointRetentionInMinutes = 24 * 60,
        ApplicationConsistentSnapshotFrequencyInMinutes = 4 * 60,
    });
    var container_mapping = new Azure.SiteRecovery.ProtectionContainerMapping("container-mapping", new Azure.SiteRecovery.ProtectionContainerMappingArgs
    {
        ResourceGroupName = secondaryResourceGroup.Name,
        RecoveryVaultName = vault.Name,
        RecoveryFabricName = primaryFabric.Name,
        RecoverySourceProtectionContainerName = primaryProtectionContainer.Name,
        RecoveryTargetProtectionContainerId = secondaryProtectionContainer.Id,
        RecoveryReplicationPolicyId = policy.Id,
    });
}

}

ProtectionContainerMappingArgs

ProtectionContainerMappingState

ProtectionContainerState

ReplicatedVM

Manages a VM replicated using Azure Site Recovery (Azure to Azure only). A replicated VM keeps a copiously updated image of the VM in another region in order to be able to start the VM in that region in case of a disaster.

ReplicatedVMArgs

ReplicatedVMState

ReplicationPolicy

Manages a Azure Site Recovery replication policy within a recovery vault. Replication policies define the frequency at which recovery points are created and how long they are stored.

Example Usage

using Pulumi;
using Azure = Pulumi.Azure;

class MyStack : Stack
{
public MyStack()
{
    var secondary = new Azure.Core.ResourceGroup("secondary", new Azure.Core.ResourceGroupArgs
    {
        Location = "East US",
    });
    var vault = new Azure.RecoveryServices.Vault("vault", new Azure.RecoveryServices.VaultArgs
    {
        Location = secondary.Location,
        ResourceGroupName = secondary.Name,
        Sku = "Standard",
    });
    var policy = new Azure.SiteRecovery.ReplicationPolicy("policy", new Azure.SiteRecovery.ReplicationPolicyArgs
    {
        ResourceGroupName = secondary.Name,
        RecoveryVaultName = vault.Name,
        RecoveryPointRetentionInMinutes = 24 * 60,
        ApplicationConsistentSnapshotFrequencyInMinutes = 4 * 60,
    });
}

}

ReplicationPolicyArgs

ReplicationPolicyState

Back to top Copyright 2016-2020, Pulumi Corporation.