No edit summary |
No edit summary |
||
Line 12: | Line 12: | ||
</pre> | </pre> | ||
Unfortunately, it seems that [https://docs.openstack.org | Unfortunately, it seems that [https://docs.openstack.org/tripleo-docs/latest/install/environments/baremetal.html Environment setup for baremetal environment] does not explain how to install the undercloud. So, following [https://docs.openstack.org/developer/tripleo-docs/installation/installation.html Undercloud installation], I perform the following: | ||
not explain how to install the undercloud. So, following [https://docs.openstack.org/developer/tripleo-docs/installation/installation.html Undercloud installation], I perform the following: | |||
<pre> | <pre> |
Revision as of 17:40, 24 August 2017
On a CentOS7 system
[hamzy@oscloud5 ~]$ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.3.1611 (Core) Release: 7.3.1611 Codename: Core [stack@oscloud5 ~]$ uname -a Linux oscloud5.stglabs.ibm.com 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Unfortunately, it seems that Environment setup for baremetal environment does not explain how to install the undercloud. So, following Undercloud installation, I perform the following:
[hamzy@oscloud5 ~]$ sudo useradd stack [hamzy@oscloud5 ~]$ sudo passwd stack [hamzy@oscloud5 ~]$ echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack [hamzy@oscloud5 ~]$ sudo chmod 0440 /etc/sudoers.d/stack [hamzy@oscloud5 ~]$ sudo su - stack [stack@oscloud5 ~]$ sudo hostnamectl set-hostname oscloud5.stglabs.ibm.com [stack@oscloud5 ~]$ sudo hostnamectl set-hostname --transient oscloud5.stglabs.ibm.com [stack@oscloud5 ~]$ sudo curl -L -o /etc/yum.repos.d/delorean.repo https://trunk.rdoproject.org/centos7-master/current-passed-ci/delorean.repo [stack@oscloud5 ~]$ sudo curl -L -o /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7/delorean-deps.repo [stack@oscloud5 ~]$ sudo yum install -y python-tripleoclient [stack@oscloud5 ~]$ cp /usr/share/instack-undercloud/undercloud.conf.sample ~/undercloud.conf [stack@oscloud5 ~]$ cat << '__EOF__' > instackenv.json { "nodes": [ { "pm_type":"pxe_ipmitool", "mac":[ "6c:ae:8b:6a:74:14" ], "cpu":"16", "memory":"1048576", "disk":"1000", "arch":"ppc64le", "pm_password":"update", "pm_addr":"9.114.219.133" }, { "pm_type":"pxe_ipmitool", "mac":[ "00:90:fa:74:05:53" ], "cpu":"16", "memory":"1048576", "disk":"1000", "arch":"ppc64le", "pm_password":"update", "pm_addr":"9.114.118.155" } ] } __EOF__
I then modify undercloud.conf as follows:
[stack@oscloud5 ~]$ cat << __EOF__ | patch -p0 --- usr/share/instack-undercloud/undercloud.conf.sample 2017-06-15 17:18:17.000000000 +0000 +++ undercloud.conf 2017-08-17 23:19:46.809615405 +0000 @@ -17,21 +17,25 @@ # defined by local_interface, with the netmask defined by the prefix # portion of the value. (string value) #local_ip = 192.168.24.1/24 +local_ip = 192.168.24.1/24 # Network gateway for the Neutron-managed network for Overcloud # instances. This should match the local_ip above when using # masquerading. (string value) #network_gateway = 192.168.24.1 +network_gateway = 192.168.24.1 # Virtual IP or DNS address to use for the public endpoints of # Undercloud services. Only used with SSL. (string value) # Deprecated group/name - [DEFAULT]/undercloud_public_vip #undercloud_public_host = 192.168.24.2 +undercloud_public_host = 192.168.24.2 # Virtual IP or DNS address to use for the admin endpoints of # Undercloud services. Only used with SSL. (string value) # Deprecated group/name - [DEFAULT]/undercloud_admin_vip #undercloud_admin_host = 192.168.24.3 +undercloud_admin_host = 192.168.24.3 # DNS nameserver(s) to use for the undercloud node. (list value) #undercloud_nameservers = @@ -74,6 +78,7 @@ # Network interface on the Undercloud that will be handling the PXE # boots and DHCP for Overcloud instances. (string value) #local_interface = eth1 +local_interface = eno4 # MTU to use for the local_interface. (integer value) #local_mtu = 1500 @@ -82,18 +87,22 @@ # instances. This should be the subnet used for PXE booting. (string # value) #network_cidr = 192.168.24.0/24 +network_cidr = 192.168.24.0/24 # Network that will be masqueraded for external access, if required. # This should be the subnet used for PXE booting. (string value) #masquerade_network = 192.168.24.0/24 +masquerade_network = 192.168.24.0/24 # Start of DHCP allocation range for PXE and DHCP of Overcloud # instances. (string value) #dhcp_start = 192.168.24.5 +dhcp_start = 192.168.24.5 # End of DHCP allocation range for PXE and DHCP of Overcloud # instances. (string value) #dhcp_end = 192.168.24.24 +dhcp_end = 192.168.24.24 # Path to hieradata override file. If set, the file will be copied # under /etc/puppet/hieradata and set as the first file in the hiera __EOF__
And install the undercloud:
[stack@oscloud5 ~]$ time openstack undercloud install 2>&1 | tee output.undercloud.install ... Undercloud install complete. ...
There is a bug for needing the userid for machines using ipmi that needs to be patched around.
[stack@oscloud5 ~]$ (cd /usr/lib/python2.7/site-packages/tripleo_common/utils/; cat << __EOF__ | sudo patch -p0) --- nodes.py.orig 2017-08-24 15:54:07.614226329 +0000 +++ nodes.py 2017-08-24 15:54:29.699440619 +0000 @@ -105,7 +105,7 @@ 'pm_user': '%s_username' % prefix, 'pm_password': '%s_password' % prefix, } - mandatory_fields = list(mapping) + mandatory_fields = ['pm_addr', 'pm_password'] # list(mapping) if has_port: mapping['pm_port'] = '%s_port' % prefix __EOF__ [stack@undercloud ~]$ (for SERVICE in openstack-mistral-api.service openstack-mistral-engine.service openstack-mistral-executor.service; do sudo systemctl restart ${SERVICE}; done)
I then go through the process of installing the overcloud:
[stack@oscloud5 ~]$ source stackrc (undercloud) [stack@oscloud5 ~]$ time openstack overcloud image upload ... (undercloud) [stack@oscloud5 ~]$ time openstack overcloud node import --provide instackenv.json 2>&1 | tee output.overcloud.node.import ... (undercloud) [stack@oscloud5 ~]$ openstack overcloud profiles list +--------------------------------------+-----------+-----------------+-----------------+-------------------+ | Node UUID | Node Name | Provision State | Current Profile | Possible Profiles | +--------------------------------------+-----------+-----------------+-----------------+-------------------+ | 032a8e33-e371-44e3-8513-04028a4de95b | | available | None | | | 612b49a6-1407-42cd-bb41-d10bd5173712 | | available | None | | +--------------------------------------+-----------+-----------------+-----------------+-------------------+ (undercloud) [stack@oscloud5 ~]$ ironic node-update 032a8e33-e371-44e3-8513-04028a4de95b replace properties/capabilities=profile:compute,boot_option:local (undercloud) [stack@oscloud5 ~]$ ironic node-update 612b49a6-1407-42cd-bb41-d10bd5173712 replace properties/capabilities=profile:control,boot_option:local (undercloud) [stack@oscloud5 ~]$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/external-loadbalancer-vip.yaml --control-scale 1 --compute-scale 1 --control-flavor control --compute-flavor compute 2>&1 | tee output.overcloud.deploy ... 2017-08-24 17:26:28Z [overcloud.InternalApiVirtualIP.InternalApiPort]: CREATE_FAILED InvalidIpForNetworkClient: resources.InternalApiPort: IP address 172.16.2.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-59b6da82-d570-45e7-be91-49d25e67a93d'] 2017-08-24 17:26:28Z [overcloud.InternalApiVirtualIP]: CREATE_FAILED Resource CREATE failed: InvalidIpForNetworkClient: resources.InternalApiPort: IP address 172.16.2.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-59b6da82-d570-45e7-be91-49d25e67a93d'] 2017-08-24 17:26:28Z [overcloud.StorageMgmtVirtualIP]: CREATE_IN_PROGRESS state changed 2017-08-24 17:26:29Z [overcloud.RedisVirtualIP]: CREATE_IN_PROGRESS Stack CREATE started 2017-08-24 17:26:29Z [overcloud.RedisVirtualIP.VipPort]: CREATE_IN_PROGRESS state changed 2017-08-24 17:26:29Z [overcloud.RedisVirtualIP.VipPort]: CREATE_FAILED InvalidIpForNetworkClient: resources.VipPort: IP address 172.16.2.252 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-5118a8be-8669-4801-9baf-f2244d2325e9'] 2017-08-24 17:26:29Z [overcloud.RedisVirtualIP]: CREATE_FAILED Resource CREATE failed: InvalidIpForNetworkClient: resources.VipPort: IP address 172.16.2.252 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-5118a8be-8669-4801-9baf-f2244d2325e9'] 2017-08-24 17:26:30Z [overcloud.StorageVirtualIP]: CREATE_IN_PROGRESS state changed 2017-08-24 17:26:30Z [overcloud.StorageMgmtVirtualIP]: CREATE_IN_PROGRESS Stack CREATE started 2017-08-24 17:26:30Z [overcloud.StorageMgmtVirtualIP.StorageMgmtPort]: CREATE_IN_PROGRESS state changed 2017-08-24 17:26:31Z [overcloud.StorageMgmtVirtualIP.StorageMgmtPort]: CREATE_FAILED InvalidIpForNetworkClient: resources.StorageMgmtPort: IP address 172.16.3.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-c4f050ef-09c9-4732-84b4-c363081dd294'] 2017-08-24 17:26:31Z [overcloud.StorageMgmtVirtualIP]: CREATE_FAILED Resource CREATE failed: InvalidIpForNetworkClient: resources.StorageMgmtPort: IP address 172.16.3.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-c4f050ef-09c9-4732-84b4-c363081dd294'] 2017-08-24 17:26:32Z [overcloud.StorageVirtualIP]: CREATE_IN_PROGRESS Stack CREATE started 2017-08-24 17:26:32Z [overcloud.StorageVirtualIP.StoragePort]: CREATE_IN_PROGRESS state changed 2017-08-24 17:26:33Z [overcloud.StorageVirtualIP.StoragePort]: CREATE_FAILED InvalidIpForNetworkClient: resources.StoragePort: IP address 172.16.1.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-cfa26459-278e-448b-8414-b24898f040fb'] 2017-08-24 17:26:33Z [overcloud.StorageVirtualIP]: CREATE_FAILED Resource CREATE failed: InvalidIpForNetworkClient: resources.StoragePort: IP address 172.16.1.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-cfa26459-278e-448b-8414-b24898f040fb'] 2017-08-24 17:26:33Z [overcloud.PublicVirtualIP]: CREATE_COMPLETE state changed 2017-08-24 17:26:34Z [overcloud.StorageVirtualIP]: CREATE_FAILED InvalidIpForNetworkClient: resources.StorageVirtualIP.resources.StoragePort: IP address 172.16.1.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-cfa26459-278e-448b-8414-b24898f040fb'] 2017-08-24 17:26:34Z [overcloud.StorageMgmtVirtualIP]: CREATHeat Stack create failed. Heat Stack create failed. E_FAILED CREATE aborted 2017-08-24 17:26:34Z [overcloud.InternalApiVirtualIP]: CREATE_FAILED CREATE aborted 2017-08-24 17:26:34Z [overcloud.RedisVirtualIP]: CREATE_FAILED CREATE aborted 2017-08-24 17:26:35Z [overcloud.NetCidrMapValue]: CREATE_COMPLETE state changed 2017-08-24 17:26:35Z [overcloud]: CREATE_FAILED Resource CREATE failed: InvalidIpForNetworkClient: resources.StorageVirtualIP.resources.StoragePort: IP address 172.16.1.251 is not a valid IP for any of the subnets on the specified network. Neutron server returns request_ids: ['req-cfa26459-278e-448b-84 Stack overcloud CREATE_FAILED ...