I am trying to create VM scale set using an existing galery image version (specialized) like this:
using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.Compute.Fluent;
...
IGalleryImageVersion image = ...
IVirtualMachineScaleSet vmss = await Azure.VirtualMachineScaleSets
.Define(vmssName)
.WithRegion(region)
.WithExistingResourceGroup(rgName)
.WithSku(sku)
.WithExistingPrimaryNetworkSubnet(network, subnetName)
.WithoutPrimaryInternetFacingLoadBalancer()
.WithoutPrimaryInternalLoadBalancer()
.WithLinuxGalleryImageVersion(image.Id)
.WithRootUsername(userName)
.WithSsh(publicKey)
.WithNewDataDisk(dataDiskSize)
.WithCapacity(intendedSize)
.WithExistingUserAssignedManagedServiceIdentity(identity)
.WithVirtualMachinePublicIp()
.CreateAsync(token);
What am I doing wrong? I am getting this exception:
Microsoft.Rest.Azure.CloudException
HResult=0x80131500
Message=Parameter 'osProfile' is not allowed.
Source=Microsoft.Azure.Management.Compute.Fluent
StackTrace:
at Microsoft.Azure.Management.Compute.Fluent.VirtualMachineScaleSetsOperations.<BeginCreateOrUpdateWithHttpMessagesAsync>d__27.MoveNext()
at Microsoft.Azure.Management.Compute.Fluent.VirtualMachineScaleSetsOperations.<CreateOrUpdateWithHttpMessagesAsync>d__5.MoveNext()
at Microsoft.Azure.Management.Compute.Fluent.VirtualMachineScaleSetsOperationsExtensions.<CreateOrUpdateAsync>d__0.MoveNext()
at Microsoft.Azure.Management.Compute.Fluent.VirtualMachineScaleSetImpl.<CreateInnerAsync>d__474.MoveNext()
at Microsoft.Azure.Management.ResourceManager.Fluent.Core.GroupableParentResource`8.<CreateResourceAsync>d__5.MoveNext()
at Microsoft.Azure.Management.ResourceManager.Fluent.Core.ResourceActions.Creatable`4.<Microsoft-Azure-Management-ResourceManager-Fluent-Core-ResourceActions-IResourceCreator<IResourceT>-CreateResourceAsync>d__15.MoveNext()
at Microsoft.Azure.Management.ResourceManager.Fluent.Core.DAG.CreatorTaskItem`1.<ExecuteAsync>d__6.MoveNext()
at Microsoft.Azure.Management.ResourceManager.Fluent.Core.DAG.TaskGroupBase`1.<ExecuteNodeTaskAsync>d__14.MoveNext()
I can create VMSS using a standard Linux image from marketplace. But I need to create VMSS with my own image from my own gallery. Note that the Fluent API does not give an option to omit root user name/ssh key from the call.