1
0
mirror of https://github.com/gryf/openstack.git synced 2025-12-17 11:30:24 +01:00

Open-source the OpenStack DB migration scripts and workshop

This commit is contained in:
PTC
2018-11-07 14:11:17 -08:00
parent 002a4a71c7
commit 875239ca08
20 changed files with 1053 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
Database Migration Workshop Instructions
```bash
# Install libvirt and its plugin for vagrant.
# You may need to do something different but this
# is a way that works on CentOS 7.
sudo yum install -y qemu libvirt libvirt-devel ruby-devel gcc qemu-kvm dkms make qt libgomp patch kernel-headers kernel-devel binutils glibc-headers glibc-devel font-forge
sudo yum install -y https://releases.hashicorp.com/vagrant/1.9.6/vagrant_1.9.6_x86_64.rpm
sudo vagrant plugin install vagrant-libvirt
# Create and ssh to the Vagrant VM
sudo vagrant up
sudo vagrant ssh
# Become root user
sudo su
# Deploy Juno and boot a VM
/vagrant/juno.sh
# Manually check to see the VM is there
source kolla/openrc
source venv/bin/activate
nova list
ps aux | grep qemu
# Deactivate the venv, this is important for later steps
deactivate
# Shut down all Openstack services except DB
/vagrant/rm_juno_services.sh
# Clone down the DB migration scripts
git clone https://github.com/yahoo/openstack-collab.git
cd openstack-collab/migration-scripts/scripts/
# Create a venv for each version of each component to be migrated
./clone.sh
tar xf build.tar.gz
# Run the actual DB migration
/vagrant/run_migration.sh
# Take a copy of the now Ocata DB
/vagrant/take_db_dump.sh
# Destroy all old docker data, deploy a fresh Ocata cluster
/vagrant/ocata/ocata.sh
# Actually we only need the DB right now, so stop everything but that.
/vagrant/ocata/stop_ocata_services.sh
# Put the migrated DB dump into MariaDB
/vagrant/ocata/restore_dump.sh
# Redeploy with kolla-ansible again so service users and endpoints are re-made.
/vagrant/ocata/redeploy.sh
# Get the openstack client
cd /home/vagrant
virtualenv ocata-venv
source ocata-venv/bin/activate
pip install python-openstackclient
source admin-openrc.sh
# As you can see the old server you booted is still there
openstack server list
# However it's not actually running if you check ps.
ps aux | grep qemu
# This can simply be fixed with a stop/start.
openstack server stop demo1
openstack server start demo1
ps aux | grep qemu
# Let's boot up another server to make sure that works
openstack server create --flavor m1.tiny --image cirros --key-name demo-keypair --nic net-id=$(openstack network list -f value -c ID) demo2
openstack server list
ps aux | grep qemu
```

View File

@@ -0,0 +1,13 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.ssh.forward_agent = true
config.vm.box = "centos/7"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provider "libvirt" do |v|
v.memory = 8192
v.cpus = 4
v.storage :file, :size => '40G'
end
end

View File

@@ -0,0 +1,205 @@
#!/bin/bash
#
# This script generates a minimal set of environment variables to allow
# the openstack containers to operate. It is creating a configuration
# suitable for an all-in-one installation of openstack.
#
# It also creates a suitable 'openrc' for use with the installed system.
# Move to top level directory
REAL_PATH=$(python -c "import os,sys;print os.path.realpath('$0')")
cd "$(dirname "$REAL_PATH")/.."
MY_IP=192.168.33.10
MY_DEV=eth1
echo MY_IP=$MY_IP
echo MY_DEV=$MY_DEV
# Admin user password
ADMIN_USER_PASSWORD=steakfordinner
# Database
HOST_IP=$MY_IP
MARIADB_ROOT_PASSWORD=kolla
PASSWORD=12345
# Host
ADMIN_TENANT_NAME=admin
PUBLIC_IP=$HOST_IP
# Logging
DEBUG_LOGGING=false
VERBOSE_LOGGING=true
NOVA_LOG_DIR=
NEUTRON_LOG_DIR=/var/log/neutron
NOVA_API_LOG_FILE=
NOVA_CONDUCTOR_LOG_FILE=
NOVA_SCHEDULER_LOG_FILE=
NOVA_COMPUTE_LOG_FILE=
NOVA_CONSOLEAUTH_LOG_FILE=
NOVA_NOVNCPROXY_LOG_FILE=
NEUTRON_SERVER_LOG_FILE=
NEUTRON_L3_AGENT_LOG_FILE=
NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=
NEUTRON_METADATA_AGENT_LOG_FILE=
# RabbitMQ
RABBITMQ_SERVICE_HOST=$HOST_IP
RABBIT_USER=guest
RABBIT_PASSWORD=guest
# Networking Options are nova or neutron
NETWORK_MANAGER=neutron
# Keystone
KEYSTONE_ADMIN_TOKEN=$PASSWORD
KEYSTONE_DB_PASSWORD=kolla
KEYSTONE_ADMIN_PASSWORD=$PASSWORD
KEYSTONE_PUBLIC_SERVICE_HOST=$HOST_IP
KEYSTONE_ADMIN_SERVICE_HOST=$HOST_IP
KEYSTONE_AUTH_PROTOCOL=http
# Glance
GLANCE_DB_NAME=glance
GLANCE_DB_USER=glance
GLANCE_DB_PASSWORD=kolla
GLANCE_KEYSTONE_USER=glance
GLANCE_KEYSTONE_PASSWORD=glance
GLANCE_API_SERVICE_HOST=$HOST_IP
GLANCE_REGISTRY_SERVICE_HOST=$HOST_IP
# Nova
NOVA_DB_PASSWORD=nova
NOVA_DB_NAME=nova
NOVA_DB_USER=nova
NOVA_KEYSTONE_USER=nova
NOVA_KEYSTONE_PASSWORD=nova
NOVA_API_SERVICE_HOST=$HOST_IP
NOVA_METADATA_API_SERVICE_HOST=$HOST_IP
NOVA_EC2_SERVICE_HOST=$HOST_IP
NOVA_PUBLIC_INTERFACE=$MY_DEV
NOVA_FLAT_INTERFACE=eth1
ENABLED_APIS=ec2,osapi_compute,metadata
METADATA_HOST=$HOST_IP
NOVA_NOVNC_PROXY_PORT=6080
NOVA_NOVNC_PROXY_SERVICE_HOST=0.0.0.0
NOVA_NOVNC_BASE_ADDRESS=${PUBLIC_IP}
NOVA_NOVNC_PROXYCLIENT_IP=${PUBLIC_IP}
# Neutron
NEUTRON_DB_NAME=neutron
NEUTRON_DB_USER=neutron
NEUTRON_DB_PASSWORD=password
NEUTRON_KEYSTONE_USER=neutron
NEUTRON_KEYSTONE_PASSWORD=neutron
NEUTRON_SERVER_SERVICE_HOST=$HOST_IP
NEUTRON_API_PASTE_CONFIG=/usr/share/neutron/api-paste.ini
# Neutron ML2 Plugin
TYPE_DRIVERS=flat,vxlan
TENANT_NETWORK_TYPES=flat,vxlan
MECHANISM_DRIVERS=linuxbridge,l2population
# Neutron Linux Bridge Agent
NEUTRON_FLAT_NETWORK_NAME=physnet1
NEUTRON_FLAT_NETWORK_INTERFACE=eth1
# Nova/Neutron
NEUTRON_SHARED_SECRET=sharedsecret
# Heat
HEAT_DB_NAME=heat
HEAT_DB_PASSWORD=kolla
HEAT_KEYSTONE_PASSWORD=heat
HEAT_API_SERVICE_HOST=$HOST_IP
HEAT_API_CFN_SERVICE_HOST=$HOST_IP
HEAT_API_CFN_URL_HOST=$HOST_IP
cat > ./openrc <<EOF
export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0"
export OS_USERNAME=$ADMIN_TENANT_NAME
export OS_PASSWORD=$ADMIN_USER_PASSWORD
export OS_TENANT_NAME=$ADMIN_TENANT_NAME
EOF
cat > ./compose/openstack.env <<EOF
DEBUG_LOGGING=$DEBUG_LOGGING
VERBOSE_LOGGING=$VERBOSE_LOGGING
NOVA_LOG_DIR=$NOVA_LOG_DIR
NEUTRON_LOG_DIR=$NEUTRON_LOG_DIR
NOVA_API_LOG_FILE=$NOVA_API_LOG_FILE
NOVA_CONDUCTOR_LOG_FILE=$NOVA_CONDUCTOR_LOG_FILE
NOVA_SCHEDULER_LOG_FILE=$NOVA_SCHEDULER_LOG_FILE
NOVA_COMPUTE_LOG_FILE=$NOVA_COMPUTE_LOG_FILE
NOVA_CONSOLEAUTH_LOG_FILE=$NOVA_CONSOLEAUTH_LOG_FILE
NOVA_NOVNCPROXY_LOG_FILE=$NOVA_NOVNCPROXY_LOG_FILE
NEUTRON_SERVER_LOG_FILE=$NEUTRON_SERVER_LOG_FILE
NEUTRON_L3_AGENT_LOG_FILE=$NEUTRON_L3_AGENT_LOG_FILE
NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=$NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE
NEUTRON_METADATA_AGENT_LOG_FILE=$NEUTRON_METADATA_AGENT_LOG_FILE
TYPE_DRIVERS=$TYPE_DRIVERS
TENANT_NETWORK_TYPES=$TENANT_NETWORK_TYPES
MECHANISM_DRIVERS=$MECHANISM_DRIVERS
ADMIN_USER_PASSWORD=$ADMIN_USER_PASSWORD
ADMIN_TENANT_NAME=$ADMIN_TENANT_NAME
DB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
FLAT_INTERFACE=$NOVA_FLAT_INTERFACE
GLANCE_API_SERVICE_HOST=$GLANCE_API_SERVICE_HOST
GLANCE_DB_NAME=$GLANCE_DB_NAME
GLANCE_DB_PASSWORD=$GLANCE_DB_PASSWORD
GLANCE_DB_USER=$GLANCE_DB_USER
GLANCE_KEYSTONE_PASSWORD=$GLANCE_KEYSTONE_PASSWORD
GLANCE_KEYSTONE_USER=$GLANCE_KEYSTONE_USER
GLANCE_REGISTRY_SERVICE_HOST=$GLANCE_REGISTRY_SERVICE_HOST
KEYSTONE_ADMIN_PASSWORD=$KEYSTONE_ADMIN_PASSWORD
KEYSTONE_ADMIN_SERVICE_HOST=$KEYSTONE_ADMIN_SERVICE_HOST
KEYSTONE_ADMIN_SERVICE_PORT=35357
KEYSTONE_ADMIN_TOKEN=$KEYSTONE_ADMIN_TOKEN
KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL
KEYSTONE_DB_PASSWORD=$KEYSTONE_DB_PASSWORD
KEYSTONE_PUBLIC_SERVICE_HOST=$KEYSTONE_PUBLIC_SERVICE_HOST
MARIADB_SERVICE_HOST=$HOST_IP
MARIADB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
NETWORK_MANAGER=$NETWORK_MANAGER
NOVA_API_SERVICE_HOST=$NOVA_API_SERVICE_HOST
NOVA_METADATA_API_SERVICE_HOST=$NOVA_METADATA_API_SERVICE_HOST
ENABLED_APIS=$ENABLED_APIS
METADATA_HOST=$METADATA_HOST
NOVA_DB_NAME=$NOVA_DB_NAME
NOVA_DB_PASSWORD=$NOVA_DB_PASSWORD
NOVA_DB_USER=$NOVA_DB_USER
NOVA_EC2_API_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
NOVA_EC2_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
NOVA_KEYSTONE_PASSWORD=$NOVA_KEYSTONE_PASSWORD
NOVA_KEYSTONE_USER=$NOVA_KEYSTONE_USER
NOVA_NOVNC_PROXY_SERVICE_HOST=$NOVA_NOVNC_PROXY_SERVICE_HOST
NOVA_NOVNC_PROXY_PORT=$NOVA_NOVNC_PROXY_PORT
NOVA_NOVNC_BASE_ADDRESS=${NOVA_NOVNC_BASE_ADDRESS}
NOVA_NOVNC_PROXYCLIENT_IP=${NOVA_NOVNC_PROXYCLIENT_IP}
NEUTRON_SHARED_SECRET=$NEUTRON_SHARED_SECRET
NEUTRON_DB_NAME=$NEUTRON_DB_NAME
NEUTRON_DB_USER=$NEUTRON_DB_USER
NEUTRON_DB_PASSWORD=$NEUTRON_DB_PASSWORD
NEUTRON_KEYSTONE_USER=$NEUTRON_KEYSTONE_USER
NEUTRON_KEYSTONE_PASSWORD=$NEUTRON_KEYSTONE_PASSWORD
NEUTRON_SERVER_SERVICE_HOST=$NEUTRON_SERVER_SERVICE_HOST
NEUTRON_API_PASTE_CONFIG=$NEUTRON_API_PASTE_CONFIG
NEUTRON_FLAT_NETWORK_NAME=$NEUTRON_FLAT_NETWORK_NAME
NEUTRON_FLAT_NETWORK_INTERFACE=$NEUTRON_FLAT_NETWORK_INTERFACE
HEAT_DB_NAME=$HEAT_DB_NAME
HEAT_DB_PASSWORD=$HEAT_DB_PASSWORD
HEAT_KEYSTONE_PASSWORD=$HEAT_KEYSTONE_PASSWORD
HEAT_API_SERVICE_HOST=$HEAT_API_SERVICE_HOST
PUBLIC_INTERFACE=$NOVA_PUBLIC_INTERFACE
PUBLIC_IP=$HOST_IP
PUBLIC_IP=$PUBLIC_IP
RABBITMQ_PASS=$RABBIT_PASSWORD
RABBITMQ_SERVICE_HOST=$RABBITMQ_SERVICE_HOST
RABBITMQ_USER=$RABBIT_USER
RABBIT_PASSWORD=$RABBIT_PASSWORD
RABBIT_USERID=$RABBIT_USER
HEAT_API_CFN_SERVICE_HOST=$HEAT_API_CFN_SERVICE_HOST
EOF
echo Please customize your FLAT_INTERFACE to a different network then your
echo main network. The FLAT_INTERFACE is used for inter-VM communication.
echo the FLAT_INTERFACE should not have an IP address assigned.

View File

@@ -0,0 +1,56 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
set -Eexo pipefail
setenforce permissive
yum install -y epel-release
yum install -y python-pip python-devel libffi-devel gcc openssl-devel libselinux-python git curl mysql
pip install virtualenv
[ -e venv ] || virtualenv venv
source venv/bin/activate
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
curl -o/etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl start docker
curl https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=kilo-eol | grep -v '^aioeventlet' | grep -v '^cryptography=' | grep -v '^pyOpenSSL=' | grep -v '^cffi=' | grep -v 'SQLAlchemy' | grep -v 'MySQL-python' | grep -v 'PyMySQL' | grep -v 'alembic' > up_cons_file
echo "aioeventlet===0.5.2" >> up_cons_file
grep -v 'oslo.i18n' up_cons_file | grep -v 'oslo.db' | grep -v '^kombu' > up_cons_file-BAK
echo "oslo.i18n===1.7.0" >> up_cons_file-BAK
echo "oslo.db===1.7.0" >> up_cons_file-BAK
echo "kombu===3.0.30" >> up_cons_file-BAK
mv up_cons_file-BAK up_cons_file
pip install python-keystoneclient==1.6.0 python-glanceclient==0.19.0 python-novaclient==2.26.0 python-heatclient==0.6.0 python-neutronclient==2.6.0 -c up_cons_file
rm up_cons_file
[ -e kolla ] || git clone https://github.com/openstack/kolla.git
cd kolla
git checkout tags/juno-eol
cp /vagrant/genenv ./tools/genenv
./tools/genenv
cd compose
for f in *.yml ; do grep -v 'name:' $f > tmp.yml && mv tmp.yml $f ; done
cd ..
export COMPOSE_API_VERSION=1.18
echo 'NOVA_CONSOLEAUTH_LOG_FILE=/var/log/nova/nova-consoleauth.log' >> compose/openstack.env
echo 'NOVA_NOVNCPROXY_LOG_FILE=/var/log/nova/nova-vncproxy.log' >> compose/openstack.env
./tools/kolla start
source openrc
MY_IP=192.168.33.10
mysql -h${MY_IP} -uroot -pkolla -e 'DROP DATABASE heat;'
docker stop compose_heatapi_1 compose_heatengine_1 compose_horizon_1
./tools/init-runonce
[ -e ~/.ssh/id_rsa ] || ssh-keygen -t rsa -f ~/.ssh/id_rsa
nova keypair-add --pub-key ~/.ssh/id_rsa.pub demo-keypair
neutron subnet-update demo-subnet --enable_dhcp false
nova boot --flavor m1.tiny --image cirros --key-name demo-keypair --nic net-id=$(neutron net-list -f value -F id) demo1

View File

@@ -0,0 +1,4 @@
[defaults]
host_key_checking=False
pipelining=True
forks=100

View File

@@ -0,0 +1,24 @@
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "ocata"
kolla_internal_vip_address: "192.168.33.25"
network_interface: "eth1"
enable_heat: "no"
enable_horizon: "no"
database_password: "kolla"
keystone_admin_password: "steakfordinner"
nova_database_password: "nova"
nova_api_database_password: "nova"
rabbitmq_user: "guest"
rabbitmq_password: "guest"
keystone_token_provider: "fernet"
glance_database_password: "kolla"
glance_keystone_password: "glance"
keystone_database_password: "kolla"
nova_keystone_password: "nova"
neutron_database_password: "password"
neutron_keystone_password: "neutron"
placement_keystone_user: "nova"
placement_keystone_password: "nova"

View File

@@ -0,0 +1,39 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
set -e
set -x
ROOT_DIR=/vagrant/ocata
yum remove -y docker-ce || :
rm -f /etc/yum.repos.d/docker-ce.repo || :
umount /var/lib/docker/devicemapper/ || :
rm -rf /var/lib/docker/ || :
yum install -y epel-release
yum install -y python-pip python-devel libffi-devel gcc openssl-devel libselinux-python git
pip install -U pip
[ -e ${ROOT_DIR}/kolla-ansible ] || git clone https://github.com/openstack/kolla-ansible.git ${ROOT_DIR}/kolla-ansible -b stable/ocata
pip install ${ROOT_DIR}/kolla-ansible
pip install "ansible>=2,<2.4" virtualenv
[ -e /etc/ansible ] || mkdir /etc/ansible
cp ${ROOT_DIR}/ansible.cfg /etc/ansible/
[ -e /etc/kolla ] || cp -r ${ROOT_DIR}/kolla-ansible/etc/kolla /etc/
kolla-genpwd
mkdir -p /etc/kolla/config/nova/
cat > /etc/kolla/config/nova/nova-compute.conf <<EOF
[libvirt]
virt_type = qemu
cpu_mode = none
EOF
cp ${ROOT_DIR}/kolla-ansible/ansible/inventory/all-in-one ${ROOT_DIR}
kolla-ansible -i ${ROOT_DIR}/all-in-one --extra @${ROOT_DIR}/extra.yaml bootstrap-servers
kolla-ansible -i ${ROOT_DIR}/all-in-one --extra @${ROOT_DIR}/extra.yaml prechecks
kolla-ansible -i ${ROOT_DIR}/all-in-one --extra @${ROOT_DIR}/extra.yaml pull
kolla-ansible -i ${ROOT_DIR}/all-in-one --extra @${ROOT_DIR}/extra.yaml deploy
docker exec openvswitch_db ovs-vsctl set interface eth1 type=internal
kolla-ansible --extra @${ROOT_DIR}/extra.yaml post-deploy
cp /etc/kolla/admin-openrc.sh /home/vagrant

View File

@@ -0,0 +1,11 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
set -e
set -x
ROOT_DIR=/vagrant/ocata
docker rm -f $(docker ps -aq)
kolla-ansible -i ${ROOT_DIR}/all-in-one --extra @${ROOT_DIR}/extra.yaml bootstrap-servers
kolla-ansible -i ${ROOT_DIR}/all-in-one --extra @${ROOT_DIR}/extra.yaml deploy

View File

@@ -0,0 +1,10 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
mysql -h192.168.33.10 -uroot -pkolla -e "show databases" | grep -v Database | grep -v mysql| grep -v information_schema| gawk '{print "drop database " $1 ";select sleep(0.1);"}' | mysql -h192.168.33.10 -uroot -pkolla
mysql -h192.168.33.10 -uroot -pkolla < ocata_db_dump.sql
cp -r instances/ /var/lib/docker/volumes/nova_compute/_data
cp -r images/ /var/lib/docker/volumes/glance/_data
chown --reference=/var/lib/docker/volumes/nova_compute/_data -R /var/lib/docker/volumes/nova_compute/_data
chown --reference=/var/lib/docker/volumes/glance/_data -R /var/lib/docker/volumes/glance/_data

View File

@@ -0,0 +1,5 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
docker stop $(docker ps --format '{{.ID}} {{.Names}}' | grep -v maria | awk '{print $1}')

View File

@@ -0,0 +1,8 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
source /home/vagrant/venv/bin/activate
source /home/vagrant/kolla/openrc
for SERVICE_USER in keystone heat glance neutron nova; do keystone user-delete $SERVICE_USER; done
docker stop $(docker ps --format '{{.ID}} {{.Names}}' | grep -v maria | awk '{print $1}')

View File

@@ -0,0 +1,12 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
MY_IP=192.168.33.10
mysql -h${MY_IP} -uroot -pkolla -e 'UPDATE nova.compute_nodes SET host_ip="192.168.33.10";'
./do_migration.sh ${MY_IP} 3306 root kolla rabbit://guest:guest@${MY_IP}:5672 mysql+pymysql://nova:nova@${MY_IP}:3306
mysql -h${MY_IP} -uroot -pkolla -e 'UPDATE nova_api.cell_mappings SET database_connection="mysql+pymysql://nova:nova@192.168.33.25:3306/nova" WHERE id=2;'
# Only use this if on a very small disk
#mysql -h${MY_IP} -uroot -pkolla -e 'UPDATE nova.compute_nodes SET disk_available_least=free_disk_gb;';
for DIR in $(find /var/lib/docker/volumes/ -type d -name images); do if [ $(ls $DIR/.. | wc -l) -eq "1" ] ; then cp -r $DIR . ; fi ; done
cp -r $(find /var/lib/docker/volumes/ -type d -name instances) .

View File

@@ -0,0 +1,7 @@
#!/bin/bash
# Copyright 2018, Oath Inc.
# Licensed under the terms of the MIT license. See LICENSE file for terms.
MY_IP=192.168.33.10
mysqldump -u root --password=kolla -h $MY_IP --all-databases --result-file=ocata_db_dump.sql
docker stop $(docker ps -q)