Azure Java SDK - создание нескольких виртуальных машин с использованием образа одновременно - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь создать несколько виртуальных машин в Azure, используя Java SDK.Дело в том, что после создания машин я не могу подключиться (публичный ip добавляется вручную после того, как java-код создает виртуальные машины - это не обязательно для меня, публичный ip не является обязательным).

Это код, который я использую для создания машин.

List<Creatable<VirtualMachine>> creatableVirtualMachines = new ArrayList<>();
    List<Creatable<NetworkInterface>> creatableNetworkInterfaces = new ArrayList<>();
    List<Creatable<Disk>> creatableDisk = new ArrayList<>();

    for (int i = 0; i < vmCount; i++) {

        Creatable<NetworkInterface> networkInterfaceCreatable = azure.networkInterfaces()
                .define("testNIC-" + i)
                .withRegion(Region.EUROPE_WEST)
                .withExistingResourceGroup("TestRes2")
                .withExistingPrimaryNetwork(network)
                .withSubnet("default")
                .withPrimaryPrivateIPAddressDynamic();
        creatableNetworkInterfaces.add(networkInterfaceCreatable);

        Creatable<Disk> disksCreatable= azure.disks()
                .define(SdkContext.randomResourceName("test_dsk", 30))
                .withRegion(Region.EUROPE_WEST)
                .withNewResourceGroup("TestRes2")
                .withWindowsFromVhd("image url")
                .withSizeInGB(127)
                .withSku(DiskSkuTypes.STANDARD_LRS);
        creatableDisk.add(disksCreatable);
    }

    networkInterfaces = azure.networkInterfaces().create(creatableNetworkInterfaces);
    networkInterfacesKeys = new ArrayList(networkInterfaces.keySet());
    disks = azure.disks().create(creatableDisk);
    disksKeys = new ArrayList(disks.keySet());

    for (int i = 0; i < vmCount; i++) {
        // Create one virtual machine Creatable
        Creatable<VirtualMachine> virtualMachineCreatable = azure.virtualMachines()
                .define("TESTVM-" + i)
                .withRegion(Region.EUROPE_WEST)
                .withExistingResourceGroup("TestRes2")
                .withExistingPrimaryNetworkInterface(networkInterfaces.get(networkInterfacesKeys.get(i)))
                .withSpecializedOSDisk(disks.get(disksKeys.get(i)), OperatingSystemTypes.WINDOWS)
                .withSize(VirtualMachineSizeTypes.STANDARD_B2S);
        // add the virtual machine Creatable to the list
        creatableVirtualMachines.add(virtualMachineCreatable);
    }
    virtualMachines = azure.virtualMachines().create(creatableVirtualMachines);
    virtualMachinesKeys = new ArrayList(virtualMachines.keySet());

РЕДАКТИРОВАТЬ:

Когда я не использую изображение, а скорее"LatestImage"

.withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")

работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...