To set it on the template, simply edit the template once it's created:

cmk update template id=xxxxxx details[0].rootDiskController=pvscsi
details[0].keyboard=uk details[0].nicAdapter=Vmxnet3

I have not tried to create a template with the "details" - feel free to use
the same command structure as in the above example - per the API docs, it
should work.

Best,
Andrija


On Fri, 17 May 2019 at 13:48, Riepl, Gregor (SWISS TXT) <
gregor.ri...@swisstxt.ch> wrote:

> Thanks, the manual change in ESX is basically what we did when changing
> the details in CS didn't have the desired effect.
>
>
> Can you clarify how to correctly set the root disk controller for a
> template? With the rootDiskController detail, as we tried to do it for VMs?
>
>
> Since we'll be relying more on cloudmonkey from now on, what would be the
> corresponding command line to this?
>
>
> $ cmk create template details=.... ?
>
>
> I have a vague recollection that cloudmonkey had an issue with nested data
> structures specified as arguments.
>
> Is this still the case?
>
> ________________________________
> From: Andrija Panic <andrija.pa...@gmail.com>
> Sent: 17 May 2019 11:45:40
> To: users
> Subject: Re: Changing the NIC and disk controller type permanently
>
> Gregor,
>
> I already shared the solution for existing VMs - for any new VMs to be
> deployed from some template, please change the template details and specify
> the rootController type as you need it - this will make sure all new VMs
> deployed from that template will inherit the specific root controller
> type...
>
> Let me know if that works for you.
>
> Andrija
>
>
> On Fri, 17 May 2019 at 15:07, Riepl, Gregor (SWISS TXT) <
> gregor.ri...@swisstxt.ch> wrote:
>
> > Hi Andrija,
> >
> >
> > Thanks for the update, I kind of feared that this still wasn't possible
> in
> > a clean way.
> >
> >
> > As evidenced by the results, setting the details via the commands I
> posted
> > *did* have a certain effect, it just didn't work correctly for the root
> > disk controller.
> >
> >
> > I know that changing the controller can make Windows unbootable, but for
> > us, it was the opposite: Having the controller set to the default
> lsilogic
> > (not SAS) would result in unbootable Windows VMs, because the LSI Logic
> > Parallel SCSI drivers were removed in Windows Server 2012. Without
> > injecting them into the Template, new VMs deployed with this controller
> > won't boot. Since we had a hard time preparing such a template, our
> > solution was to modify the controller instead.
> >
> >
> > That's why I'm asking how to change this permantenly, so we won't have
> the
> > issue with Windows VMs any more.
> >
> >
> > The same applies to the NIC. The Windows E1000 driver is unreliable with
> > VMware's emulation, so we'd like to switch to VMXNET3 for all Windows
> VMs.
> > Setting the nicAdapter detail worked as expected, at least.
> >
> >
> > Any suggestions?
> >
> >
> > Regards,
> >
> > Gregor
> >
> > ________________________________
> > From: Andrija Panic <andrija.pa...@gmail.com>
> > Sent: 17 May 2019 08:30:22
> > To: users
> > Subject: Re: Changing the NIC and disk controller type permanently
> >
> > Hi Gregor,
> >
> > the code around managing VM details for existing VMs (CONTROLLER
> > specifically) could be a bit better - but in short - there is NO way to
> > change existing controller type from the current ones (for VMware
> > specifically) using CloudStack (btw you "can" make the change in the GUI,
> > while VM is stopped - there is a  "Settings" tab there.)
> >
> > You "can" change these details on the VM level (existing VMs) via
> API/GUI,
> > this changes the records in the "user_vm_details" table - but simply
> these
> > new values are NOT read/applied during starting an existing VM -
> actually,
> > even when you change that in GUI (or DB) and start a VM - these values
> will
> > be reverted back.
> >
> > I just did more tests - and the way to change it would be to stop VM, go
> to
> > vCenter, change (all 4 controllers)  to " LSI Logic SAS" (or any other
> you
> > want) - then go back to CloudStack and edit VM details (Settings tab,
> while
> > VM is stopped) to "lsisas1068" - simply to sync ACS to reality (to
> > vCenter).
> >
> > Make sure to do proper testing, since changing root controller driver in
> > Windows can sometimes cause it to fail boot.
> >
> > Best,
> > Andrija
> >
> >
> >
> > On Thu, 16 May 2019 at 21:44, Riepl, Gregor (SWISS TXT) <
> > gregor.ri...@swisstxt.ch> wrote:
> >
> > >
> > > > $ cloudstack addResourceDetail "details[0].key=rootDiskController"
> > > > "details[0].value=lsisas1068" "resourcetype=UserVm" "resourceid=$id"
> > >
> > > Note: lsisas1068 comes from
> > >
> > >
> >
> https://github.com/apache/cloudstack/blob/4.11.2.0/vmware-base/src/com/cloud/hypervisor/vmware/mo/ScsiDiskControllerType.java
> > >
> > > We had set this to lsilogicsas previously (on CS 4.5), which causes the
> > > following exception on start on CS 4.11.2.0:
> > >
> > > com.cloud.utils.exception.CloudRuntimeException: Invalid root disk
> > > controller detected : none
> > >         at
> > > com.cloud.hypervisor.vmware.resource.VmwareResource.execute(VmwareResou
> > > rce.java:1690)
> > >         at
> > > com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(Vmwa
> > > reResource.java:496)
> > >         at
> > > com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgen
> > > tAttache.java:315)
> > >         at
> > > org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(Mana
> > > gedContextRunnable.java:49)
> > >
> > > ...
> > >
> >
> >
> > --
> >
> > Andrija Panić
> >
>
>
> --
>
> Andrija Panić
>


-- 

Andrija Panić

Reply via email to