Let me begin with this some background (and an apology for the wall o’ text): I am a newbie. I have taken the VMware course that the local community college offers [VMware ESXI Server Enterprise (CIS197)], but I haven’t certified yet. Nor do I have any real-world experience, except for what I taught myself so far.
I recently accepted a Learning Associate position with the college (think: glorified lab tech). I have been tasked with working with the lab’s VMware stuff (amongst other things such as Cisco and Juniper equipment). There was no pass-down of information as the previous LA left the position four months ago.
We have a single host running ESXi 4.1.0, 348481. We have vCenter Server (5.5.0, 1312298), running on Windows Server (2008 R2 Enterprise). I access the host and vCenter through two different IP addresses, using vSphere client (either 5.5 or 4.1, using a single application – it depends on whether I connect to the host or to the vCenter).
At this time, the host is using local storage only (we have plans to change that, but it will take time). The host isn’t a production server per se, as it doesn’t run any of the school’s systems. It does, however, run many of the lab’s VMs that students use (Linux, Microsoft, web design, etc.). So, at this time, I cannot take it down.
I have been tasked with creating a number of VMs that students can use to do basic Microsoft Windows 7 labs. So far I have:
- Created users, one per student, on the host.
- Created VMs, one per student, which I deploy from vCenter from a golden template.
- Created roles to limit the students access to just their assigned VM, which they access via vSphere client.
- Created a Windows Server 2008 R2 domain controller that also acts as DHCP server.
- Created a virtual network, which is only accessible by the Windows 7 VMs, and is not visible outside of the vSphere environment (if I said that right – it does not see the school’s network or the Internet).
Up to this point, it is all good.
However, I need to be able to allow the students the ability to change the ISO file to which their VM is pointing in order to complete some labs. I’d assume that they’d use the “Connect/disconnect the CD/DVD devices of the virtual machine” button on the task bar (or console window). This is not working.
I have searched quite a lot and have found that others have had the same issue. However, all the solutions I’ve tried to date have not worked. When they click “Connect to ISO image on the data store…” they get an error message that doesn’t mean anything to me, “An internal error occurred in the vSphere Client. Details: Object reference not set to an instance of an object. Contact VMware support if necessary.”
The role I’m using for the students has these settings:
- Datastore > Browse datastore
- Virtual machine > Configuration > Modify device settings
- Virtual machine > Configuration > Settings
- A bunch under Virtual machine > Configuration >
--- Configure CD media
--- Console interaction
--- Device Connection
--- Power on
--- Power off
--- (and more, which I don’t believe are salient to the question)
- State > Create Snapshot
- State > Revert to snapshot
I’ve tried “Virtual Machine > Configuration > Add existing disk”, “Virtual Machine > Configuration > Add new disk” and “Virtual Machine > Configuration > Add or Remove Device” with no luck.
Incidentally, the root account can do all these things, but no other account can – not even an account set as administrator.
I saw mention that I have to apply the role to the datastore. That may be part of the problem. I cannot actually see the datastore when I’m logged into the host (wellll, I can, if I click on the host name, then the summary tab – but roles cannot be applied at this point). All I see is “Inventory” (which has VMs and Resource Pools), “Roles,” and “System logs.”
I can see the datastore when logged into vCenter. The students’ roles, however, are defined on the host. If I clone the Users role in vCenter and modify that cloned role to have the “permissions” as those that are on the host, and then apply it to the datastore, it still does not work.
So, after all of this (which I hope I have included all the information needed), what can I do to allow the students to change the ISO to which they’re connected?
Of course, if I’ve left something out, or if anyone has a question, please ask. I’d like to get this resolved as soon as I can.