RDO tickets are now tracked in Jira https://issues.redhat.com/projects/RDO/issues/
Bug 1272376 - Duplicate nova hypervisors after rebooting compute nodes
Summary: Duplicate nova hypervisors after rebooting compute nodes
Keywords:
Status: CLOSED EOL
Alias: None
Product: RDO
Classification: Community
Component: rdo-manager
Version: Liberty
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
: Liberty
Assignee: Hugh Brock
QA Contact: Shai Revivo
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-10-16 09:51 UTC by Marius Cornea
Modified: 2017-07-04 15:03 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-07-04 15:03:51 UTC
Embargoed:


Attachments (Terms of Use)

Description Marius Cornea 2015-10-16 09:51:29 UTC
Description of problem:
After rebooting a compute node it will come up with the same hypervisor_hostname but a different service_host. During the deployment the compute node will register using the shortname(e.g overcloud-novacompute-0) as service_host and after reboot it will show up with the long name(e.g overcloud-novacompute-0.localdomain) as service_host. 

Version-Release number of selected component (if applicable):
openstack-tripleo-heat-templates-0.8.7-dev284.el7.centos.noarch

How reproducible:
100%

Steps to Reproduce:
1. Deploy overcloud with one controller and one compute
2. Reboot the compute node 
3. Check the overcloud nova hypervisor-list

Actual results:
+----+-------------------------------------+-------+----------+
| ID | Hypervisor hostname                 | State | Status   |
+----+-------------------------------------+-------+----------+
| 1  | overcloud-novacompute-0.localdomain | down  | disabled |
| 2  | overcloud-novacompute-0.localdomain | up    | enabled  |
+----+-------------------------------------+-------+----------+


Expected results:
Only one hypervisor would show up.

Additional info:
stack@instack:~>>> nova hypervisor-show 1 | grep host
| host_ip                   | 192.0.2.19                               |
| hypervisor_hostname       | overcloud-novacompute-0.localdomain      |
| service_host              | overcloud-novacompute-0                  |
stack@instack:~>>> nova hypervisor-show 2 | grep host
| host_ip                   | 192.0.2.19                               |
| hypervisor_hostname       | overcloud-novacompute-0.localdomain      |
| service_host              | overcloud-novacompute-0.localdomain      |

Comment 1 Marius Cornea 2015-10-16 12:10:38 UTC
I believe during provisioning cloud init will set a transient hostname (the short one) and after reboot the static hostname in /etc/hostname will be used:

[heat-admin@overcloud-novacompute-0 ~]$ curl http://169.254.169.254/2007-01-19/meta-data/public-hostname;echo
overcloud-novacompute-0

[heat-admin@overcloud-novacompute-0 ~]$ cat /etc/hostname 
overcloud-novacompute-0.localdomain

Not sure if this realtes to our setup but this behavior was described in this bug:
https://bugs.launchpad.net/cloud-init/+bug/1246485

Comment 4 Christopher Brown 2017-06-17 19:00:51 UTC
Ugh, yeah, this has been going on forever.
The current fix is:

http://blog.nemebean.com/content/prevent-cloud-init-changing-your-hostname-reboot

which is namely:

echo "preserve_hostname: true" > /etc/cloud/cloud.cfg.d/99_hostname.cfg

on firstboot

but I think this can be closed unless we want to make the above fix permanent?


Note You need to log in before you can comment on or make changes to this bug.