diff --git a/bindep.txt b/bindep.txt index b32c5cba730e..3a4d7bef8063 100644 --- a/bindep.txt +++ b/bindep.txt @@ -24,10 +24,12 @@ libxml2-dev [platform:dpkg test] libxslt-devel [platform:rpm test] libxslt1-dev [platform:dpkg test] locales [platform:debian] -mysql [platform:rpm] +mysql [platform:rpm !platform:redhat] mysql-client [platform:dpkg] -mysql-devel [platform:rpm test] -mysql-server +mysql-devel [platform:rpm !platform:redhat test] +mysql-server [!platform:redhat] +mariadb-devel [platform:rpm platform:redhat test] +mariadb-server [platform:rpm platform:redhat] openssh-client [platform:dpkg] openssh-clients [platform:rpm] openssl diff --git a/tools/test-setup.sh b/tools/test-setup.sh index 5b986ced361a..96a08c4a9847 100755 --- a/tools/test-setup.sh +++ b/tools/test-setup.sh @@ -15,6 +15,41 @@ DB_ROOT_PW=${MYSQL_ROOT_PW:-insecure_slave} DB_USER=openstack_citest DB_PW=openstack_citest +function is_rhel7 { + [ -f /usr/bin/yum ] && \ + cat /etc/*release | grep -q -e "Red Hat" -e "CentOS" -e "CloudLinux" && \ + cat /etc/*release | grep -q 'release 7' +} + +function is_rhel8 { + [ -f /usr/bin/dnf ] && \ + cat /etc/*release | grep -q -e "Red Hat" -e "CentOS" -e "CloudLinux" && \ + cat /etc/*release | grep -q 'release 8' +} + +function set_conf_line { # file regex value + sudo sh -c "grep -q -e '$2' $1 && \ + sed -i 's|$2|$3|g' $1 || \ + echo '$3' >> $1" +} + +if is_rhel7 || is_rhel8; then + # mysql needs to be started on centos/rhel + sudo systemctl restart mariadb.service + + # postgres setup for centos + sudo postgresql-setup --initdb + PG_CONF=/var/lib/pgsql/data/postgresql.conf + set_conf_line $PG_CONF '^password_encryption =.*' 'password_encryption = scram-sha-256' + + PG_HBA=/var/lib/pgsql/data/pg_hba.conf + set_conf_line $PG_HBA '^local[ \t]*all[ \t]*all.*' 'local all all peer' + set_conf_line $PG_HBA '^host[ \t]*all[ \t]*all[ \t]*127.0.0.1\/32.*' 'host all all 127.0.0.1/32 scram-sha-256' + set_conf_line $PG_HBA '^host[ \t]*all[ \t]*all[ \t]*::1\/128.*' 'host all all ::1/128 scram-sha-256' + + sudo systemctl restart postgresql.service +fi + sudo -H mysqladmin -u root password $DB_ROOT_PW # It's best practice to remove anonymous users from the database. If