[one-users] Random password on CONTEXT
Hector Sanjuan
hsanjuan at opennebula.org
Mon Aug 27 08:15:03 PDT 2012
Hello,
I've been giving a bit of tought to this. Sorry for the late response.
There are several ways you could achieve this, but they all require a bit
of hacking.
The simplest one (perhaps not the most elegant but still), is to modify
TemplateJSON.rb instantiate() so that it inserts a random PW in the
template, instantiates the new VM with it and then deletes the PW from the
template, as follows:
def instantiate(params=Hash.new)
info()
pw_hash = { 'PASSWORD' => generateRandomPw() }
add_element("TEMPLATE", pw_hash)
update('template_raw' => template_str())
super(params['vm_name'])
delete_element("TEMPLATE/PASSWORD")
update('template_raw' => template_str())
end
The PASSWORD will be visible in the VM Template tab of the VM information
in Sunstone. If you need the password to be in the VM you would need to
add_element inside the context section.
Note that if you would rather use Self-Service, theres is the posibility
of modifying the .erb VM templates in /etc/one/occi_templates and insert
any piece of custom ruby code right there as:
PASSWORD = "<%= generateRandomPw() %>"
You would then only need to modify updateVMInfo() in compute.js so that
the password is shown in the VM information in the same way that the NAME
or State are shown there.
As I say at the beginning, there are other solutions like modifying the
Sunstone javascript code, or creating a sunstone pluging that overwrites
the instantiate action and does this etc. but this one was the quickest to
get what you want that I could think of.
Hector
En Sat, 18 Aug 2012 13:01:54 +0200, Ricardo Duarte <rjtd21 at hotmail.com>
escribió:
> Hi there,
>
> I would like to generate a random password for each instance, but it
> should be readable/available under Sunstone.
> The plan is to slightly modify the virtual machine data table, and add a
> new column named "Service Password", or in alternative, users may look
> for it under the "Image Template" tab.
> What I am missing is how to make the password available to both Sunstone
> and the instance, and how to generate it before the machine boots. Looks
> like the easier way would be to auto-generate it and add it to CONTEXT.
> But how can I do it? Is there any hook I can use to generate a variable
> and add them to context, before the machine boots? Or do I have to
> modify the OpenNebula C core?
>
> Thanks.
>
>
>
--
Hector Sanjuan
OpenNebula Developer
More information about the Users
mailing list