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,
});
}
}