Hi Barak,
Thanks for the explanation. I added my request to your bug.
In the meantime I created this workaround for making pool hostnames unique based on the
last octet of ip-address from de DHCP after setting it to static. Not sure if it is
safe/durable but seems to work enough for me and has at least some logic in the hostname.
initscript:
runcmd:
- ip=$(ip route get 8.8.8.8 | awk '{print $NF;exit}')
- nmcli con mod eth0 ipv4.addresses $ip"/24" ipv4.dns x.x.x.x ipv4.gateway
x.x.x.x ipv4.method manual
- hostnamectl set-hostname
testpool-"${ip##*.}".example.com
-----Original Message-----
From: Barak Korren [mailto:bkorren@redhat.com]
Sent: dinsdag 20 juni 2017 09:47
To: Paul <paul(a)kenla.nl>
Cc: users <users(a)ovirt.org>
Subject: Re: [ovirt-users] cloud init hostname from pools
On 19 June 2017 at 17:16, Paul <paul(a)kenla.nl> wrote:
I would like to automatically set the hostname of a VM to be the same
as the ovirt machine name seen in the portal.
This can be done by creating a template and activating cloud-init in
the initial run tab.
A new VM named “test” based in this template is created and the
hostname is “test”, works perfect!
But when I create a pool (i.e. “testpool”) based on this template I
get machines with names “testpool-1”, “testpool-2”, etc. but the
machine name is not present in the metadata and cannot be set as
hostname. This is probably due to the fact that the machine names are auto generated by
the oVirt Pool.
Is this expected/desired behavior for cloud-init from pools?
If so, what would be the best way to retrieve the machine name (as
seen in the portal) and manually set it to be hostname via cloud-init
(i.e. runcmd – hostnamectl set-hostname $(hostname))
I've opened a bug about this a while ago:
https://bugzilla.redhat.com/show_bug.cgi?id=1298232
Maybe go ahead and write your use case there to get some attention to it...
An alternative is to not care about the VM names in engine and use DNS/DHCP to set VM host
names. But then you`ll hit:
https://bugzilla.redhat.com/show_bug.cgi?id=1298235
Our current solution is to just assign names and addresses randomly to POOL VMs and make
them report their existence to a central system before use.
--
Barak Korren
RHV DevOps team , RHCE, RHCi
Red Hat EMEA
redhat.com | TRIED. TESTED. TRUSTED. |
redhat.com/trusted