/** * It creates a new Azure virtual machine and it instantiate a Java Docker client. * @param azure - instance of Azure * @param rgName - name of the Azure resource group to be used when creating a virtual machine * @param region - region to be used when creating a virtual machine * @return an instance of DockerClient */ public static DockerClient FromNewDockerVM(IAzure azure, String rgName, Region region) { string dockerVMName = SdkContext.RandomResourceName("dockervm", 15); string publicIPDnsLabel = SdkContext.RandomResourceName("pip", 10); string vmUserName = "******"; string vmPassword = Utilities.CreatePassword(); // Could not find a Docker environment; presume that there is no local Docker engine running and // attempt to configure a Docker engine running inside a new Azure virtual machine Utilities.Log("Creating an Azure virtual machine running Docker"); IVirtualMachine dockerVM = azure.VirtualMachines.Define(dockerVMName) .WithRegion(region) .WithExistingResourceGroup(rgName) .WithNewPrimaryNetwork("10.0.0.0/28") .WithPrimaryPrivateIPAddressDynamic() .WithNewPrimaryPublicIPAddress(publicIPDnsLabel) .WithPopularLinuxImage(KnownLinuxVirtualMachineImage.UbuntuServer16_04_Lts) .WithRootUsername(vmUserName) .WithRootPassword(vmPassword) .WithSize(VirtualMachineSizeTypes.Parse("Standard_D2a_v4")) .Create(); Utilities.Log("Created Azure Virtual Machine: " + dockerVM.Id); // Get the IP of the Docker host INicIPConfiguration nicIPConfiguration = dockerVM.GetPrimaryNetworkInterface().PrimaryIPConfiguration; IPublicIPAddress publicIp = nicIPConfiguration.GetPublicIPAddress(); string dockerHostIP = publicIp.IPAddress; DockerClient dockerClient = InstallDocker(dockerHostIP, vmUserName, vmPassword); return(dockerClient); }
///GENMHASH:A4DDE1D1D48B67FA48D835924D16FDA1:FF7B041ADA25EA1EECE12F0DADBD55E5 internal IReadOnlyCollection <INicIPConfiguration> ListNetworkInterfaceIPConfigurations() { List <INicIPConfiguration> ipConfigs = new List <INicIPConfiguration>(); IDictionary <string, INetworkInterface> nics = new SortedDictionary <string, INetworkInterface>(); IList <IPConfigurationInner> ipConfigRefs = Inner.IpConfigurations; if (ipConfigRefs == null) { return(ipConfigs); } foreach (var ipConfigRef in ipConfigRefs) { string nicID = ResourceUtils.ParentResourcePathFromResourceId(ipConfigRef.Id); string ipConfigName = ResourceUtils.NameFromResourceId(ipConfigRef.Id); // Check if NIC already cached INetworkInterface nic; if (!nics.TryGetValue(nicID.ToLower(), out nic)) { // NIC not previously found, so ask Azure for it nic = Parent.Manager.NetworkInterfaces.GetById(nicID); } if (nic == null) { // NIC doesn't exist so ignore this bad reference continue; } // Cache the NIC nics[nic.Id.ToLower()] = nic; // Get the IP config INicIPConfiguration ipConfig = nic.IPConfigurations[ipConfigName]; if (ipConfig == null) { // IP config not found, so ignore this bad reference continue; } ipConfigs.Add(ipConfig); } return(ipConfigs); }
public async Task GetVmVn() { var allvms = await azure.VirtualMachines.ListAsync(); IVirtualMachine targetvm = allvms .Where(vm => vm.Name == "Annvm") .SingleOrDefault(); Console.WriteLine(targetvm?.Id); INetworkInterface targetnic = targetvm.GetPrimaryNetworkInterface(); INicIPConfiguration targetipconfig = targetnic.PrimaryIPConfiguration; IPublicIPAddress targetipaddress = targetipconfig.GetPublicIPAddress(); Console.WriteLine($"IP Address:\t{targetipaddress.IPAddress}"); Console.WriteLine("Press any key to exit."); Console.ReadLine(); }
public void CreateUpdate() { using (var context = FluentMockContext.Start(GetType().FullName)) { var testId = TestUtilities.GenerateName(""); string nicName = "nic" + testId; string vnetName = "net" + testId; string pipName = "pip" + testId; Region region = Region.USEast; var manager = TestHelper.CreateNetworkManager(); var network = manager.Networks.Define(vnetName) .WithRegion(region) .WithNewResourceGroup() .WithAddressSpace("10.0.0.0/28") .WithSubnet("subnet1", "10.0.0.0/29") .WithSubnet("subnet2", "10.0.0.8/29") .Create(); var nic = manager.NetworkInterfaces.Define(nicName) .WithRegion(region) .WithExistingResourceGroup(network.ResourceGroupName) .WithExistingPrimaryNetwork(network) .WithSubnet("subnet1") .WithPrimaryPrivateIPAddressDynamic() .WithNewPrimaryPublicIPAddress(pipName) .WithIPForwarding() .WithAcceleratedNetworking() .Create(); // Verify NIC settings Assert.True(nic.IsAcceleratedNetworkingEnabled); Assert.True(nic.IsIPForwardingEnabled); // Veirfy IP configs var ipConfig = nic.PrimaryIPConfiguration; Assert.NotNull(ipConfig); network = ipConfig.GetNetwork(); Assert.NotNull(network); ISubnet subnet; Assert.True(network.Subnets.TryGetValue(ipConfig.SubnetName, out subnet)); Assert.Equal(1, subnet.NetworkInterfaceIPConfigurationCount); var ipConfigs = subnet.ListNetworkInterfaceIPConfigurations(); Assert.NotNull(ipConfigs); Assert.Equal(1, ipConfigs.Count); INicIPConfiguration ipConfig2 = null; ipConfig2 = ipConfigs.FirstOrDefault(i => i.Name.Equals(ipConfig.Name, StringComparison.OrdinalIgnoreCase)); Assert.NotNull(ipConfig2); Assert.Equal(ipConfig.Name, ipConfig2.Name, ignoreCase: true); var resource = manager.NetworkInterfaces.GetById(nic.Id); resource = resource.Update() .WithoutIPForwarding() .WithoutAcceleratedNetworking() .WithSubnet("subnet2") .UpdateIPConfiguration(resource.PrimaryIPConfiguration.Name) // Updating the primary IP configuration .WithPrivateIPAddressDynamic() // Equivalent to ..update().withPrimaryPrivateIPAddressDynamic() .WithoutPublicIPAddress() // Equivalent to ..update().withoutPrimaryPublicIPAddress() .Parent() .WithTag("tag1", "value1") .WithTag("tag2", "value2") .Apply(); Assert.True(resource.Tags.ContainsKey("tag1")); // Verifications Assert.False(resource.IsIPForwardingEnabled); Assert.False(resource.IsAcceleratedNetworkingEnabled); var primaryIpConfig = resource.PrimaryIPConfiguration; Assert.NotNull(primaryIpConfig); Assert.True(primaryIpConfig.IsPrimary); Assert.True("subnet2" == primaryIpConfig.SubnetName.ToLower()); Assert.Null(primaryIpConfig.PublicIPAddressId); Assert.True(resource.Tags.ContainsKey("tag1")); manager.NetworkInterfaces.DeleteById(resource.Id); resource.Manager.ResourceManager.ResourceGroups.BeginDeleteByName(resource.ResourceGroupName); Assert.Equal(1, resource.IPConfigurations.Count); } }