Emits a different hostname for each network the node is on

Populates /etc/hosts with an entry for each IP address the node
is on, which will be useful to migrate services configuration from
using IPs into using hostnames.

This is how the lines look like on a host which doesn't have all ports:

  172.16.2.6 overcloud-novacompute-0.localdomain overcloud-novacompute-0
  192.0.2.9 overcloud-novacompute-0-external
  172.16.2.6 overcloud-novacompute-0-internalapi
  172.16.1.6 overcloud-novacompute-0-storage
  192.0.2.9 overcloud-novacompute-0-storagemgmt
  172.16.0.4 overcloud-novacompute-0-tenant
  192.0.2.9 overcloud-novacompute-0-management

the network against which the default (or primary) name is resolved
can be configured (for computes) via ComputeHostnameResolveNetwork

Change-Id: Id480207c68e5d68967d67e2091cd081c17ab5dd7
This commit is contained in:
Giulio Fidente 2016-01-20 14:36:55 +01:00
parent 9e473e4b54
commit d6c1173120
5 changed files with 230 additions and 15 deletions

View File

@ -280,11 +280,54 @@ outputs:
hosts_entry:
value:
str_replace:
template: "IP HOST.DOMAIN HOST"
template: |
PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
EXTERNALIP EXTERNALHOST
INTERNAL_APIIP INTERNAL_APIHOST
STORAGEIP STORAGEHOST
STORAGE_MGMTIP STORAGE_MGMTHOST
TENANTIP TENANTHOST
MANAGEMENTIP MANAGEMENTHOST
params:
IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]}
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CephStorageHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
HOST: {get_attr: [CephStorage, name]}
PRIMARYHOST: {get_attr: [CephStorage, name]}
EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
EXTERNALHOST:
list_join:
- '-'
- - {get_attr: [CephStorage, name]}
- external
INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
INTERNAL_APIHOST:
list_join:
- '-'
- - {get_attr: [CephStorage, name]}
- internalapi
STORAGEIP: {get_attr: [StoragePort, ip_address]}
STORAGEHOST:
list_join:
- '-'
- - {get_attr: [CephStorage, name]}
- storage
STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
STORAGE_MGMTHOST:
list_join:
- '-'
- - {get_attr: [CephStorage, name]}
- storagemgmt
TENANTIP: {get_attr: [TenantPort, ip_address]}
TENANTHOST:
list_join:
- '-'
- - {get_attr: [CephStorage, name]}
- tenant
MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
MANAGEMENTHOST:
list_join:
- '-'
- - {get_attr: [CephStorage, name]}
- management
nova_server_resource:
description: Heat resource handle for the ceph storage server
value:

View File

@ -343,11 +343,54 @@ outputs:
hosts_entry:
value:
str_replace:
template: "IP HOST.DOMAIN HOST"
template: |
PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
EXTERNALIP EXTERNALHOST
INTERNAL_APIIP INTERNAL_APIHOST
STORAGEIP STORAGEHOST
STORAGE_MGMTIP STORAGE_MGMTHOST
TENANTIP TENANTHOST
MANAGEMENTIP MANAGEMENTHOST
params:
IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, BlockStorageHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
HOST: {get_attr: [BlockStorage, name]}
PRIMARYHOST: {get_attr: [BlockStorage, name]}
EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
EXTERNALHOST:
list_join:
- '-'
- - {get_attr: [BlockStorage, name]}
- external
INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
INTERNAL_APIHOST:
list_join:
- '-'
- - {get_attr: [BlockStorage, name]}
- internalapi
STORAGEIP: {get_attr: [StoragePort, ip_address]}
STORAGEHOST:
list_join:
- '-'
- - {get_attr: [BlockStorage, name]}
- storage
STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
STORAGE_MGMTHOST:
list_join:
- '-'
- - {get_attr: [BlockStorage, name]}
- storagemgmt
TENANTIP: {get_attr: [TenantPort, ip_address]}
TENANTHOST:
list_join:
- '-'
- - {get_attr: [BlockStorage, name]}
- tenant
MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
MANAGEMENTHOST:
list_join:
- '-'
- - {get_attr: [BlockStorage, name]}
- management
nova_server_resource:
description: Heat resource handle for the block storage server
value:

View File

@ -708,11 +708,54 @@ outputs:
Server's IP address and hostname in the /etc/hosts format
value:
str_replace:
template: "IP HOST.DOMAIN HOST"
template: |
PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
EXTERNALIP EXTERNALHOST
INTERNAL_APIIP INTERNAL_APIHOST
STORAGEIP STORAGEHOST
STORAGE_MGMTIP STORAGE_MGMTHOST
TENANTIP TENANTHOST
MANAGEMENTIP MANAGEMENTHOST
params:
IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
HOST: {get_attr: [NovaCompute, name]}
PRIMARYHOST: {get_attr: [NovaCompute, name]}
EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
EXTERNALHOST:
list_join:
- '-'
- - {get_attr: [NovaCompute, name]}
- external
INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
INTERNAL_APIHOST:
list_join:
- '-'
- - {get_attr: [NovaCompute, name]}
- internalapi
STORAGEIP: {get_attr: [StoragePort, ip_address]}
STORAGEHOST:
list_join:
- '-'
- - {get_attr: [NovaCompute, name]}
- storage
STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
STORAGE_MGMTHOST:
list_join:
- '-'
- - {get_attr: [NovaCompute, name]}
- storagemgmt
TENANTIP: {get_attr: [TenantPort, ip_address]}
TENANTHOST:
list_join:
- '-'
- - {get_attr: [NovaCompute, name]}
- tenant
MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
MANAGEMENTHOST:
list_join:
- '-'
- - {get_attr: [NovaCompute, name]}
- management
nova_server_resource:
description: Heat resource handle for the Nova compute server
value:

View File

@ -1622,11 +1622,54 @@ outputs:
Server's IP address and hostname in the /etc/hosts format
value:
str_replace:
template: IP HOST.DOMAIN HOST
template: |
PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
EXTERNALIP EXTERNALHOST
INTERNAL_APIIP INTERNAL_APIHOST
STORAGEIP STORAGEHOST
STORAGE_MGMTIP STORAGE_MGMTHOST
TENANTIP TENANTHOST
MANAGEMENTIP MANAGEMENTHOST
params:
IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ControllerHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
HOST: {get_attr: [Controller, name]}
PRIMARYHOST: {get_attr: [Controller, name]}
EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
EXTERNALHOST:
list_join:
- '-'
- - {get_attr: [Controller, name]}
- external
INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
INTERNAL_APIHOST:
list_join:
- '-'
- - {get_attr: [Controller, name]}
- internalapi
STORAGEIP: {get_attr: [StoragePort, ip_address]}
STORAGEHOST:
list_join:
- '-'
- - {get_attr: [Controller, name]}
- storage
STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
STORAGE_MGMTHOST:
list_join:
- '-'
- - {get_attr: [Controller, name]}
- storagemgmt
TENANTIP: {get_attr: [TenantPort, ip_address]}
TENANTHOST:
list_join:
- '-'
- - {get_attr: [Controller, name]}
- tenant
MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
MANAGEMENTHOST:
list_join:
- '-'
- - {get_attr: [Controller, name]}
- management
nova_server_resource:
description: Heat resource handle for the Nova compute server
value:

View File

@ -302,11 +302,54 @@ outputs:
hosts_entry:
value:
str_replace:
template: "IP HOST.DOMAIN HOST"
template: |
PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
EXTERNALIP EXTERNALHOST
INTERNAL_APIIP INTERNAL_APIHOST
STORAGEIP STORAGEHOST
STORAGE_MGMTIP STORAGE_MGMTHOST
TENANTIP TENANTHOST
MANAGEMENTIP MANAGEMENTHOST
params:
IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ObjectStorageHostnameResolveNetwork]}]}
PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ObjectStorageHostnameResolveNetwork]}]}
DOMAIN: {get_param: CloudDomain}
HOST: {get_attr: [SwiftStorage, name]}
PRIMARYHOST: {get_attr: [SwiftStorage, name]}
EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
EXTERNALHOST:
list_join:
- '-'
- - {get_attr: [SwiftStorage, name]}
- external
INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
INTERNAL_APIHOST:
list_join:
- '-'
- - {get_attr: [SwiftStorage, name]}
- internalapi
STORAGEIP: {get_attr: [StoragePort, ip_address]}
STORAGEHOST:
list_join:
- '-'
- - {get_attr: [SwiftStorage, name]}
- storage
STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
STORAGE_MGMTHOST:
list_join:
- '-'
- - {get_attr: [SwiftStorage, name]}
- storagemgmt
TENANTIP: {get_attr: [TenantPort, ip_address]}
TENANTHOST:
list_join:
- '-'
- - {get_attr: [SwiftStorage, name]}
- tenant
MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
MANAGEMENTHOST:
list_join:
- '-'
- - {get_attr: [SwiftStorage, name]}
- management
nova_server_resource:
description: Heat resource handle for the swift storage server
value: