示例#1
0
        public async Task <NetworkInterfaceInner> CreateNetworkInterfaceAsync(
            IResourceGroup resourceGroup,
            NetworkSecurityGroupInner networkSecurityGroup,
            SubnetInner aksSubnet,
            string networkInterfaceName,
            string networkInterfacePrivateIPAddress,
            IDictionary <string, string> tags   = null,
            CancellationToken cancellationToken = default
            )
        {
            tags = tags ?? new Dictionary <string, string>();

            // Define Network Interface
            var networkInterfaceDefinition = new NetworkInterfaceInner {
                Location = resourceGroup.RegionName,
                Tags     = tags,

                IpConfigurations = new List <NetworkInterfaceIPConfigurationInner> {
                    new NetworkInterfaceIPConfigurationInner {
                        Name                      = "ipconfig1",
                        PrivateIPAddress          = networkInterfacePrivateIPAddress,
                        PrivateIPAllocationMethod = IPAllocationMethod.Dynamic,
                        //PublicIPAddress = new SubResource {
                        //    Id = publicIPAddress.Id
                        //},
                        Subnet = new SubResource {
                            Id = aksSubnet.Id
                        }
                    }
                },
                NetworkSecurityGroup = new SubResource {
                    Id = networkSecurityGroup.Id
                },
                EnableAcceleratedNetworking = true,
                EnableIPForwarding          = true
            };

            networkInterfaceDefinition.Validate();

            var networkInterface = await _networkManagementClient
                                   .NetworkInterfaces
                                   .CreateOrUpdateAsync(
                resourceGroup.Name,
                networkInterfaceName,
                networkInterfaceDefinition,
                cancellationToken
                );

            return(networkInterface);
        }
示例#2
0
 /// <summary>
 /// Creates or updates a network security group in the specified resource
 /// group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='networkSecurityGroupName'>
 /// The name of the network security group.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the create or update network security group
 /// operation.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <NetworkSecurityGroupInner> CreateOrUpdateAsync(this INetworkSecurityGroupsOperations operations, string resourceGroupName, string networkSecurityGroupName, NetworkSecurityGroupInner parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, networkSecurityGroupName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
示例#3
0
        public async Task <NetworkSecurityGroupInner> CreateNetworkSecurityGroupAsync(
            IResourceGroup resourceGroup,
            string networkSecurityGroupName,
            IDictionary <string, string> tags   = null,
            CancellationToken cancellationToken = default
            )
        {
            try {
                tags = tags ?? new Dictionary <string, string>();

                Log.Information($"Creating Azure Network Security Group: {networkSecurityGroupName} ...");

                // Define Network Security Group
                var networkSecurityGroupDefinition = new NetworkSecurityGroupInner {
                    Location = resourceGroup.RegionName,
                    Tags     = tags,

                    SecurityRules = new List <SecurityRuleInner> {
                        new SecurityRuleInner {
                            Name = "UASC",

                            Protocol                 = SecurityRuleProtocol.Tcp,
                            SourcePortRange          = "*",
                            DestinationPortRange     = "4840",
                            SourceAddressPrefix      = "*",
                            DestinationAddressPrefix = "*",
                            Access    = SecurityRuleAccess.Allow,
                            Priority  = 100,
                            Direction = SecurityRuleDirection.Inbound
                        },
                        new SecurityRuleInner {
                            Name = "HTTPS",

                            Protocol                 = SecurityRuleProtocol.Tcp,
                            SourcePortRange          = "*",
                            DestinationPortRange     = "443",
                            SourceAddressPrefix      = "*",
                            DestinationAddressPrefix = "*",
                            Access    = SecurityRuleAccess.Allow,
                            Priority  = 101,
                            Direction = SecurityRuleDirection.Inbound
                        },
                        new SecurityRuleInner {
                            Name = "SSH",

                            Protocol                 = SecurityRuleProtocol.Tcp,
                            SourcePortRange          = "*",
                            DestinationPortRange     = "22",
                            SourceAddressPrefix      = "*",
                            DestinationAddressPrefix = "*",
                            Access    = SecurityRuleAccess.Deny,
                            Priority  = 102,
                            Direction = SecurityRuleDirection.Inbound
                        }
                    }
                };

                networkSecurityGroupDefinition.Validate();

                var networkSecurityGroup = await _networkManagementClient
                                           .NetworkSecurityGroups
                                           .CreateOrUpdateAsync(
                    resourceGroup.Name,
                    networkSecurityGroupName,
                    networkSecurityGroupDefinition,
                    cancellationToken
                    );

                Log.Information($"Created Azure Network Security Group: {networkSecurityGroupName}");

                return(networkSecurityGroup);
            }
            catch (Exception ex) {
                Log.Error(ex, $"Failed to create Azure Network Security Group: {networkSecurityGroupName}");
                throw;
            }
        }
示例#4
0
        public async Task <VirtualNetworkInner> CreateVirtualNetworkAsync(
            IResourceGroup resourceGroup,
            NetworkSecurityGroupInner networkSecurityGroup,
            string virtualNetworkName,
            RouteTableInner routeTable          = null,
            IDictionary <string, string> tags   = null,
            CancellationToken cancellationToken = default
            )
        {
            try {
                tags = tags ?? new Dictionary <string, string>();

                Log.Information($"Creating Azure Virtual Network: {virtualNetworkName} ...");

                // Define Virtual Network
                var virtualNetworkDefinition = new VirtualNetworkInner {
                    Location = resourceGroup.RegionName,
                    Tags     = tags,

                    AddressSpace = new AddressSpace {
                        AddressPrefixes = new List <string>()
                        {
                            VIRTUAL_NETWORK_ADDRESS_PREFIXES
                        }
                    },
                    Subnets = new List <SubnetInner> {
                        new SubnetInner()
                        {
                            Name                 = VIRTUAL_NETWORK_AKS_SUBNET_NAME,
                            AddressPrefix        = VIRTUAL_NETWORK_AKS_SUBNET_ADDRESS_PREFIXES,
                            NetworkSecurityGroup = new SubResource {
                                Id = networkSecurityGroup.Id
                            }
                        }
                    }
                };

                if (null != routeTable)
                {
                    virtualNetworkDefinition.Subnets[0].RouteTable = new SubResource {
                        Id = routeTable.Id
                    };
                }

                virtualNetworkDefinition.Validate();

                var virtualNetwork = await _networkManagementClient
                                     .VirtualNetworks
                                     .CreateOrUpdateAsync(
                    resourceGroup.Name,
                    virtualNetworkName,
                    virtualNetworkDefinition,
                    cancellationToken
                    );

                Log.Information($"Created Azure Virtual Network: {virtualNetworkName}");

                return(virtualNetwork);
            }
            catch (Exception ex) {
                Log.Error(ex, $"Failed to create Azure Virtual Network: {virtualNetworkName}");
                throw;
            }
        }