UPDATE 04/13/2016
Switching to newly added Storage node on RDO Mitaka, after adding new
Storage Node to cluster via packstack
*****************************************************************************
Keystone database still contains IP of old Storage Server (Glance)
*****************************************************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'image');"
+-----------+-----------------------------+
| interface | url |
+-----------+-----------------------------+
| admin | http://192.169.142.127:9292 |
| internal | http://192.169.142.127:9292 |
| public | http://192.169.142.127:9292 |
+-----------+-----------------------------+
**************************************************************************
Updating "url" field of endpoint table with IP of new Storage Server
***************************************************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:9292' where interface ='internal' and service_id = (select id from service where service.type = 'image');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:9292' where interface ='public' and service_id = (select id from service where service.type = 'image');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:9292' where interface ='admin' and service_id = (select id from service where service.type = 'image');"
***************************************
Make sure updates are done
***************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'image');"
+-----------+-----------------------------+
| interface | url |
+-----------+-----------------------------+
| admin | http://192.169.142.117:9292 |
| internal | http://192.169.142.117:9292 |
| public | http://192.169.142.117:9292 |
+-----------+-----------------------------+
*****************************************************************************
Keystone database still contains IP of old Storage Server (Swift)
*****************************************************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'object-store');"
+-----------+---------------------------------------------------+
| interface | url |
+-----------+---------------------------------------------------+
| internal | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
| public | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
| admin | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
+-----------+---------------------------------------------------+
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where interface ='admin' and service_id = (select id from service where service.type = 'object-store');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where interface ='internal' and service_id = (select id from service where service.type = 'object-store');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where interface ='public' and service_id = (select id from service where service.type = 'object-store');"
******************************************
Make sure updates are done
******************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'object-store');"
+-----------+---------------------------------------------------+
| interface | url |
+-----------+---------------------------------------------------+
| internal | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
| public | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
| admin | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
+-----------+---------------------------------------------------+
# service httpd restart
END UPDATE
Quoting Official delorean documentation
"The RDO project has a continuous integration pipeline that consists of multiple jobs that deploy and test OpenStack as accomplished by different installers. This vast test coverage attempts to ensure that there are no known issues either in packaging, in code or in the installers themselves.Once a Delorean consistent repository has undergone these tests successfully, it will be promoted to current-passed-ci. Current-passed-ci represents the latest and greatest
version of RDO trunk packages that were tested together successfully"
Set up current-passed-ci repositories on all deployment nodes Controller,Storage,Compute. It might be not really needed ( if packstack at run-time copies repositories from Controller to other nodes), but won't hurt anyway.
# yum -y install yum-plugin-priorities
# cd /etc/yum.repos.d
# curl -O https://trunk.rdoproject.org/centos7-mitaka/delorean-deps.repo
# curl -O https://trunk.rdoproject.org/centos7-mitaka/current-passed-ci/delorean.repo
******************
On Controller
******************
# yum -y install openstack-packstack
[root@SeverMitaka01 ~]# rpm -qa \*openstack-packstack\*
openstack-packstack-puppet-8.0.0-0.20160316101826.9fd26e8.el7.centos.noarch
openstack-packstack-8.0.0-0.20160316101826.9fd26e8.el7.centos.noarch
*******************************************************************************
Answer file for testing mentioned 3 node deployment is here
*******************************************************************************
Two deployments done bellow intentionally test ability to add Storage Node
and hack keystone endpoint table to switch to new Swift Server
First test is simplest two node cluster (Controller,Compute) install completed
*****************************************************************************
Final configuration was obtained after adding Storage Node using
EXCLUDE_SERVERS=192.169.142.127,192.169.142.137
. . . . . . .
CONFIG_UNSUPPORTED=y
. . . . . . .
CONFIG_STORAGE_HOST=192.169.142.157
. . . . . . .
CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
CONFIG_NEUTRON_OVS_TUNNEL_SUBNETS=12.0.0.0/24
and updating keystone endpoint right inside keystone database
for swift-proxy pointing to IP of added Server instead of Controller
been used for simplest two node Cluster test.
Running packstack with answer-file posted at link "here" is supposed
to create three node deployment via single run and create correct
endpoints for all storage services glance,cinder,swift pointing to
192.169.142.157.
So, CONFIG_UNSUPPORTED=y seems to work for oncoming RDO Mitaka
release, but requires a bit more efforts as originally expected.
*****************************************************************************
Second test running to add Storage Node using
EXCLUDE_SERVERS=Controller-IP,Compute-IP
Now hack keystone database to get new IP set for swift-proxy record in endpoint table of keystone database , followed by `openstack-service restart` on Controller
All set to use newly added Swift Node with 3 XFS 10GB drives involved
in swift's replication as back end for Glance.
Switching to newly added Storage node on RDO Mitaka, after adding new
Storage Node to cluster via packstack
*****************************************************************************
Keystone database still contains IP of old Storage Server (Glance)
*****************************************************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'image');"
+-----------+-----------------------------+
| interface | url |
+-----------+-----------------------------+
| admin | http://192.169.142.127:9292 |
| internal | http://192.169.142.127:9292 |
| public | http://192.169.142.127:9292 |
+-----------+-----------------------------+
**************************************************************************
Updating "url" field of endpoint table with IP of new Storage Server
***************************************************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:9292' where interface ='internal' and service_id = (select id from service where service.type = 'image');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:9292' where interface ='public' and service_id = (select id from service where service.type = 'image');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:9292' where interface ='admin' and service_id = (select id from service where service.type = 'image');"
***************************************
Make sure updates are done
***************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'image');"
+-----------+-----------------------------+
| interface | url |
+-----------+-----------------------------+
| admin | http://192.169.142.117:9292 |
| internal | http://192.169.142.117:9292 |
| public | http://192.169.142.117:9292 |
+-----------+-----------------------------+
*****************************************************************************
Keystone database still contains IP of old Storage Server (Swift)
*****************************************************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'object-store');"
+-----------+---------------------------------------------------+
| interface | url |
+-----------+---------------------------------------------------+
| internal | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
| public | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
| admin | http://192.169.142.127:8080/v1/AUTH_%(tenant_id)s |
+-----------+---------------------------------------------------+
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where interface ='admin' and service_id = (select id from service where service.type = 'object-store');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where interface ='internal' and service_id = (select id from service where service.type = 'object-store');"
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "update endpoint set url = 'http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s' where interface ='public' and service_id = (select id from service where service.type = 'object-store');"
******************************************
Make sure updates are done
******************************************
[root@ip-192-169-142-127 ~(keystone_admin)]# mysql --user root --password=7207ae344ed04957 keystone -e "select interface, url from endpoint where service_id = (select id from service where service.type = 'object-store');"
+-----------+---------------------------------------------------+
| interface | url |
+-----------+---------------------------------------------------+
| internal | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
| public | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
| admin | http://192.169.142.117:8080/v1/AUTH_%(tenant_id)s |
+-----------+---------------------------------------------------+
# service httpd restart
END UPDATE
Quoting Official delorean documentation
"The RDO project has a continuous integration pipeline that consists of multiple jobs that deploy and test OpenStack as accomplished by different installers. This vast test coverage attempts to ensure that there are no known issues either in packaging, in code or in the installers themselves.Once a Delorean consistent repository has undergone these tests successfully, it will be promoted to current-passed-ci. Current-passed-ci represents the latest and greatest
version of RDO trunk packages that were tested together successfully"
Set up current-passed-ci repositories on all deployment nodes Controller,Storage,Compute. It might be not really needed ( if packstack at run-time copies repositories from Controller to other nodes), but won't hurt anyway.
# yum -y install yum-plugin-priorities
# cd /etc/yum.repos.d
# curl -O https://trunk.rdoproject.org/centos7-mitaka/delorean-deps.repo
# curl -O https://trunk.rdoproject.org/centos7-mitaka/current-passed-ci/delorean.repo
******************
On Controller
******************
# yum -y install openstack-packstack
[root@SeverMitaka01 ~]# rpm -qa \*openstack-packstack\*
openstack-packstack-puppet-8.0.0-0.20160316101826.9fd26e8.el7.centos.noarch
openstack-packstack-8.0.0-0.20160316101826.9fd26e8.el7.centos.noarch
*******************************************************************************
Answer file for testing mentioned 3 node deployment is here
*******************************************************************************
Two deployments done bellow intentionally test ability to add Storage Node
and hack keystone endpoint table to switch to new Swift Server
First test is simplest two node cluster (Controller,Compute) install completed
*****************************************************************************
Final configuration was obtained after adding Storage Node using
EXCLUDE_SERVERS=192.169.142.127,192.169.142.137
. . . . . . .
CONFIG_UNSUPPORTED=y
. . . . . . .
CONFIG_STORAGE_HOST=192.169.142.157
. . . . . . .
CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
CONFIG_NEUTRON_OVS_TUNNEL_SUBNETS=12.0.0.0/24
and updating keystone endpoint right inside keystone database
for swift-proxy pointing to IP of added Server instead of Controller
been used for simplest two node Cluster test.
Running packstack with answer-file posted at link "here" is supposed
to create three node deployment via single run and create correct
endpoints for all storage services glance,cinder,swift pointing to
192.169.142.157.
So, CONFIG_UNSUPPORTED=y seems to work for oncoming RDO Mitaka
release, but requires a bit more efforts as originally expected.
*****************************************************************************
Second test running to add Storage Node using
EXCLUDE_SERVERS=Controller-IP,Compute-IP
Now hack keystone database to get new IP set for swift-proxy record in endpoint table of keystone database , followed by `openstack-service restart` on Controller
All set to use newly added Swift Node with 3 XFS 10GB drives involved
in swift's replication as back end for Glance.