Add pre-cached MariaDB data

Signed-off-by: Munoz, Obed N <obed.n.munoz@intel.com>
This commit is contained in:
Munoz, Obed N
2016-08-24 15:28:44 -05:00
parent d381bbec59
commit 86d8618a12
4 changed files with 69 additions and 38 deletions
+5
View File
@@ -13,8 +13,13 @@ COPY keystone.conf /etc/keystone
RUN mkdir -p /etc/nginx/ssl
COPY keystone.wsgi.conf /etc/nginx/
VOLUME /var/lib/mysql
COPY bootstrap.sh /usr/bin
COPY pre-setup.sh /usr/bin
COPY openrc /root/
RUN /usr/bin/pre-setup.sh
WORKDIR /root
CMD '/usr/bin/bootstrap.sh'
+4 -37
View File
@@ -1,55 +1,22 @@
#!/bin/bash
IDENTITY_HOST=localhost
KEYSTONE_DB_USER=keystone
KEYSTONE_DB_PASSWORD=914de29bc82616d7c159eaf9b1f39402
KEYSTONE_DB_NAME=keystone
IDENTITY_HOST="${IDENTITY_HOST:-localhost}"
KEYSTONE_ADMIN_PASSWORD="${KEYSTONE_ADMIN_PASSWORD:-bb915e9ce0ae4b46e82a069b2ef0f8d7}"
sed -i.bak s/IDENTITY_HOST/$IDENTITY_HOST/g /root/openrc
sed -i.bak s/KEYSTONE_ADMIN_PASSWORD/$KEYSTONE_ADMIN_PASSWORD/g /root/openrc
sed -i.bak s/MARIADB_HOST/$MARIADB_HOST/g /etc/keystone/keystone.conf
sed -i.bak s/KEYSTONE_DB_USER/$KEYSTONE_DB_USER/g /etc/keystone/keystone.conf
sed -i.bak s/KEYSTONE_DB_PASSWORD/$KEYSTONE_DB_PASSWORD/g /etc/keystone/keystone.conf
sed -i.bak s/KEYSTONE_DB_NAME/$KEYSTONE_DB_NAME/g /etc/keystone/keystone.conf
sed -i.bak s/IDENTITY_HOST/$IDENTITY_HOST/g /etc/nginx/keystone.wsgi.conf
# MariaDB
# Bootstrap mariadb if it hasn't been started
if [[ ! -d /var/lib/mysql/mysql ]]; then
/usr/bin/mysql-systemd-start pre
mysqld_safe &
mysqladmin --silent --wait=30 ping || exit 1
mysqld_safe &
mysqladmin --silent --wait=30 ping || exit 1
# Set root user password
mysql -e "GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"%\" IDENTIFIED by \"secret\" WITH GRANT OPTION;"
# Remove anonymous user access
mysql -e "DELETE FROM mysql.user WHERE User=\"\";"
# Remove test database
mysql -e "DROP DATABASE test;"
# Keystone Database and user
mysql -e "create database $KEYSTONE_DB_NAME;"
mysql -e "grant all on $KEYSTONE_DB_NAME.* to '$KEYSTONE_DB_USER'@'%' identified by '$KEYSTONE_DB_PASSWORD';"
mysql -e "grant all on $KEYSTONE_DB_NAME.* to '$KEYSTONE_DB_USER'@'localhost' identified by '$KEYSTONE_DB_PASSWORD';"
fi
# Populate keystone database
keystone-manage db_sync
# Nginx & UWSGI
mkdir -p /run/uwsgi/keystone
sed -i 's/uid.*/ /' /usr/share/uwsgi/keystone/{public,admin}.ini
sed -i 's/gid.*/ /' /usr/share/uwsgi/keystone/{public,admin}.ini
echo "logto=/var/log/uwsgi-keystone-admin.log" >> /usr/share/uwsgi/keystone/admin.ini
echo "logto=/var/log/uwsgi-keystone-public.log" >> /usr/share/uwsgi/keystone/public.ini
# Start keystone service
/usr/bin/uwsgi --ini /usr/share/uwsgi/keystone/admin.ini -s /run/uwsgi/keystone/admin.sock &
/usr/bin/uwsgi --ini /usr/share/uwsgi/keystone/public.ini -s /run/uwsgi/keystone/public.sock &
mkdir /var/lib/nginx
echo "user root;" >> /usr/share/nginx/conf/nginx.conf
/usr/bin/nginx
/usr/bin/memcached -u root &
+1 -1
View File
@@ -1,7 +1,7 @@
[DEFAULT]
[database]
connection = mysql+pymysql://keystone:secret@localhost/keystone
connection = mysql+pymysql://KEYSTONE_DB_USER:KEYSTONE_DB_PASSWORD@localhost/KEYSTONE_DB_NAME
[cache]
enabled = True
+59
View File
@@ -0,0 +1,59 @@
#!/bin/bash
IDENTITY_HOST="${IDENTITY_HOST:-localhost}"
KEYSTONE_DB_USER=keystone
KEYSTONE_DB_PASSWORD=914de29bc82616d7c159eaf9b1f39402
KEYSTONE_DB_NAME=keystone
sed -i.bak s/MARIADB_HOST/$MARIADB_HOST/g /etc/keystone/keystone.conf
sed -i.bak s/KEYSTONE_DB_USER/$KEYSTONE_DB_USER/g /etc/keystone/keystone.conf
sed -i.bak s/KEYSTONE_DB_PASSWORD/$KEYSTONE_DB_PASSWORD/g /etc/keystone/keystone.conf
sed -i.bak s/KEYSTONE_DB_NAME/$KEYSTONE_DB_NAME/g /etc/keystone/keystone.conf
sed -i.bak s/IDENTITY_HOST/$IDENTITY_HOST/g /etc/nginx/keystone.wsgi.conf
# MariaDB
mkdir /data
echo "bind-address = 0.0.0.0" >> /etc/mariadb/my.cnf
echo "datadir = /data" >> /etc/mariadb/my.cnf
# Bootstrap mariadb if it hasn't been started
if [[ ! -d /var/lib/mysql/mysql ]]; then
/usr/bin/mysql-systemd-start pre
mysqld_safe &
until mysql -e "SELECT 1;"
do
continue
done
# Set root user password
mysql -e "GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"%\" IDENTIFIED by \"secret\" WITH GRANT OPTION;"
# Remove anonymous user access
mysql -e "DELETE FROM mysql.user WHERE User=\"\";"
# Remove test database
mysql -e "DROP DATABASE test;"
# Keystone Database and user
mysql -e "create database $KEYSTONE_DB_NAME;"
mysql -e "grant all on $KEYSTONE_DB_NAME.* to '$KEYSTONE_DB_USER'@'%' IDENTIFIED by '$KEYSTONE_DB_PASSWORD';"
mysql -e "grant all on $KEYSTONE_DB_NAME.* to '$KEYSTONE_DB_USER'@'localhost' IDENTIFIED BY '$KEYSTONE_DB_PASSWORD';"
mysql -e "FLUSH PRIVILEGES;"
fi
# Populate keystone database
keystone-manage db_sync
# Nginx & UWSGI
mkdir -p /run/uwsgi/keystone
sed -i 's/uid.*/ /' /usr/share/uwsgi/keystone/{public,admin}.ini
sed -i 's/gid.*/ /' /usr/share/uwsgi/keystone/{public,admin}.ini
echo "logto=/var/log/uwsgi-keystone-admin.log" >> /usr/share/uwsgi/keystone/admin.ini
echo "logto=/var/log/uwsgi-keystone-public.log" >> /usr/share/uwsgi/keystone/public.ini
/usr/bin/uwsgi --ini /usr/share/uwsgi/keystone/admin.ini -s /run/uwsgi/keystone/admin.sock &
/usr/bin/uwsgi --ini /usr/share/uwsgi/keystone/public.ini -s /run/uwsgi/keystone/public.sock &
mkdir /var/lib/nginx
echo "user root;" >> /usr/share/nginx/conf/nginx.conf