2 Documentation Test suite to verify packet flows between vm instances.
5 Library OperatingSystem
6 Library RequestsLibrary
7 Resource ../libraries/OpenStackInstallUtils.robot
8 Resource ../libraries/SystemUtils.robot
9 Resource ../libraries/Utils.robot
11 Suite Setup OpenStackInstallUtils.Get All Ssh Connections
12 Suite Teardown Close All Connections
17 IF 2 < ${NUM_CONTROL_NODES}
18 Install MySQl Cluster ${OS_CONTROL_1_IP} ${OS_CONTROL_1_IP} openstack
20 IF 2 < ${NUM_CONTROL_NODES}
21 Install MySQl Cluster ${OS_CONTROL_2_IP} ${OS_CONTROL_2_IP} openstack
23 IF 2 < ${NUM_CONTROL_NODES}
24 Install MySQl Cluster ${OS_CONTROL_3_IP} ${OS_CONTROL_3_IP} openstack
26 IF 3 < ${NUM_CONTROL_NODES}
27 Install MySQl Cluster ${OS_CONTROL_4_IP} ${OS_CONTROL_4_IP} openstack
29 IF 4 < ${NUM_CONTROL_NODES}
30 Install MySQl Cluster ${OS_CONTROL_5_IP} ${OS_CONTROL_5_IP} openstack
32 IF 2 < ${NUM_CONTROL_NODES}
33 Configure Cluster Root Node ${OS_CONTROL_1_IP} ${OS_CONTROL_1_HOSTNAME} ${OS_USER}
35 IF 2 < ${NUM_CONTROL_NODES}
36 Enable MySQL non-root nodes ${OS_CONTROL_2_IP} ${OS_CONTROL_2_HOSTNAME} ${OS_USER}
38 IF 2 < ${NUM_CONTROL_NODES}
39 Enable MySQL non-root nodes ${OS_CONTROL_3_IP} ${OS_CONTROL_2_HOSTNAME} ${OS_USER}
41 IF 3 < ${NUM_CONTROL_NODES}
42 Enable MySQL non-root nodes ${OS_CONTROL_4_IP} ${OS_CONTROL_4_HOSTNAME} ${OS_USER}
44 IF 4 < ${NUM_CONTROL_NODES}
45 Enable MySQL non-root nodes ${OS_CONTROL_5_IP} ${OS_CONTROL_5_HOSTNAME} ${OS_USER}
47 IF 2 < ${NUM_CONTROL_NODES}
48 Add HAPROXY Entry for DB ${HAPROXY_IP} ${HAPROXY_IP}
50 IF 2 > ${NUM_CONTROL_NODES} Install MySql ${OS_CONTROL_1_IP}
51 IF 2 > ${NUM_CONTROL_NODES}
52 Enable MySql ${OS_CONTROL_1_IP} ${OS_CONTROL_1_HOSTNAME} ${OS_USER}
58 [Arguments] ${os_node_cxn}
59 IF '${OS_APPS_PRE_INSTALLED}' == 'no'
60 Install Rpm Package ${os_node_cxn} mariadb mariadb-server python2-PyMySQL
62 Touch File ${os_node_cxn} /etc/my.cnf.d/openstack.cnf
63 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld bind-address 0.0.0.0
64 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld default-storage-engine innodb
65 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld innodb_file_per_table innodb
66 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld max_connections 4096
67 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld collation-server utf8_general_ci
68 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld character-set-server utf8
71 [Arguments] ${os_node_cxn} ${hostname} ${hostuser}
72 Enable Service ${os_node_cxn} mariadb.service
73 Start Service ${os_node_cxn} mariadb.service
74 Create User Pass For Mysql ${os_node_cxn} root mysql
75 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* ${hostname} ${hostuser}
77 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* localhost ${hostuser}
81 [Arguments] ${os_node_cxn} ${bindaddress} ${galera_cluster_name}
82 IF '${OS_APPS_PRE_INSTALLED}' == 'no'
83 Install Rpm Package ${os_node_cxn} mariadb galera mariadb-galera-server python2-PyMySQL mariadb-libs
85 Touch File ${os_node_cxn} /etc/my.cnf.d/openstack.cnf
86 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld bind-address 0.0.0.0
87 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld datadir /var/lib/mysql
88 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld socket /var/lib/mysql/mysql.sock
89 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld user mysql
90 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld binlog_format ROW
91 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld default_storage_engine innodb
92 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld innodb_autoinc_lock_mode 2
93 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld innodb_flush_log_at_trx_commit 0
94 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld innodb_buffer_pool_size 122M
97 ... /etc/my.cnf.d/openstack.cnf
100 ... /usr/lib64/galera/libgalera_smm.so
103 ... /etc/my.cnf.d/openstack.cnf
105 ... wsrep_provider_options
106 ... "pc.recovery=TRUE;gcache.size=300M"
109 ... /etc/my.cnf.d/openstack.cnf
111 ... wsrep_cluster_name
112 ... ${galera_cluster_name}
113 IF 4 < ${NUM_CONTROL_NODES}
116 ... /etc/my.cnf.d/openstack.cnf
118 ... wsrep_cluster_address
119 ... gcomm://${OS_CONTROL_1_IP},${OS_CONTROL_2_IP},${OS_CONTROL_3_IP},${OS_CONTROL_4_IP},${OS_CONTROL_5_IP}
121 IF 4 > ${NUM_CONTROL_NODES}
124 ... /etc/my.cnf.d/openstack.cnf
126 ... wsrep_cluster_address
127 ... gcomm://${OS_CONTROL_1_IP},${OS_CONTROL_2_IP},${OS_CONTROL_3_IP}
129 Crudini Edit ${os_node_cxn} /etc/my.cnf.d/openstack.cnf mysqld wsrep_sst_method rsync
130 Crudini Delete ${os_node_cxn} /etc/my.cnf.d/auth_gssapi.cnf mariadb plugin-load-add
131 #Configure Mysql Cluster Check ${os_node_cxn}
133 Configure Cluster Root Node
134 [Arguments] ${os_node_cxn} ${hostname} ${hostuser}
135 Enable Service ${os_node_cxn} mariadb.service
136 Run Command ${os_node_cxn} sudo galera_new_cluster
137 Create User Pass For Mysql ${os_node_cxn} root mysql
138 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* ${hostuser} ${hostname}
140 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* ${hostuser} localhost
142 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* ${hostuser} ${HAPROXY_HOSTNAME}
143 ... mysql #Grant Process To Mysql Database ${os_node_cxn} root mysql *.*
144 ... # clustercheck_user localhost # my_clustercheck_password
145 Execute MySQL STATUS Query ${os_node_cxn} root mysql wsrep_cluster_size
147 Enable MySQL non-root nodes
148 [Arguments] ${os_node_cxn} ${hostname} ${hostuser}
149 Enable Service ${os_node_cxn} mariadb.service
150 Start Service ${os_node_cxn} mariadb.service
151 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* ${hostuser} ${hostname}
153 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* ${hostuser} localhost
155 Grant Privileges To Mysql Database ${os_node_cxn} root mysql *.* ${hostuser} ${HAPROXY_HOSTNAME}
156 ... mysql #Grant Process To Mysql Database ${os_node_cxn} root mysql *.*
157 ... # clustercheck_user localhost # my_clustercheck_password
158 Execute MySQL STATUS Query ${os_node_cxn} root mysql wsrep_cluster_size
160 Add HAPROXY Entry for DB
161 [Arguments] ${os_node_cxn} ${bind_ip}
162 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg $'\n'listen hadatabase
163 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " bind ${bind_ip}:3306"
164 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " timeout client 90s"
165 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " mode tcp"
166 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " option mysql-check user root"
167 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " balance roundrobin"
168 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " timeout server 90s"
169 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " server galera1 ${OS_CONTROL_1_IP}:3306"
170 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " server galera2 ${OS_CONTROL_2_IP}:3306"
171 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " server galera3 ${OS_CONTROL_3_IP}:3306"
172 IF 3 < ${NUM_CONTROL_NODES}
173 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " server galera4 ${OS_CONTROL_4_IP}:3306"
175 IF 4 < ${NUM_CONTROL_NODES}
176 Append To File ${os_node_cxn} /etc/haproxy/haproxy.cfg " server galera4 ${OS_CONTROL_5_IP}:3306"
178 Enable Service ${os_node_cxn} haproxy
179 Restart Service ${os_node_cxn} haproxy
181 Configure Mysql Cluster Check
182 [Arguments] ${os_node_cxn}
183 Touch File ${os_node_cxn} /etc/sysconfig/clustercheck
184 Append To File ${os_node_cxn} /etc/sysconfig/clustercheck MYSQL_USERNAME=clustercheck_user
185 Append To File ${os_node_cxn} /etc/sysconfig/clustercheck MYSQL_PASSWORD=my_clustercheck_password
186 Append To File ${os_node_cxn} /etc/sysconfig/clustercheck MYSQL_HOST=localhost
187 Append To File ${os_node_cxn} /etc/sysconfig/clustercheck MYSQL_PORT=3306
188 IF '${OS_APPS_PRE_INSTALLED}' == 'no'
189 Install Rpm Package ${os_node_cxn} xinetd
191 Touch File ${os_node_cxn} /etc/xinetd.d/galera-monitor
192 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor service galera-monitor
193 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor "{"
194 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " port = 9200"
195 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " disable = no"
196 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " socket_type = stream"
197 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " protocol = tcp"
198 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " wait = no"
199 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " user= root"
200 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " group = root"
201 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " groups = yes"
202 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " server = /usr/bin/clustercheck"
203 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " type = UNLISTED"
204 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " per_source = UNLISTED"
205 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " log_on_failure = HOST"
206 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor " flags = REUSE"
207 Append To File ${os_node_cxn} /etc/xinetd.d/galera-monitor "}"
208 Daemon Reload ${os_node_cxn}
209 Enable Service ${os_node_cxn} xinetd
210 Start Service ${os_node_cxn} xinetd