blob: 4d98af5ebc33527bde59fc648225f4d353bb903a [file] [log] [blame]
okozachenko12037fc026c2023-01-13 21:51:34 +11001#!/bin/bash -xe
2
3# Install dependencies
4sudo apt-get update
5
6# Setup folders for DevStack
7sudo mkdir -p /opt/stack
8sudo chown -R ${USER}. /opt/stack
9
10# Clone repository if not present, otherwise update
11if [ ! -f /opt/stack/stack.sh ]; then
12 git clone https://git.openstack.org/openstack-dev/devstack /opt/stack
13else
14 pushd /opt/stack
15 git pull
16 popd
17fi
18
19# Create DevStack configuration file
20cat <<EOF > /opt/stack/local.conf
21[[local|localrc]]
22KEYSTONE_ADMIN_ENDPOINT=true
23DATABASE_PASSWORD=secrete123
24RABBIT_PASSWORD=secrete123
25SERVICE_PASSWORD=secrete123
26ADMIN_PASSWORD=secrete123
27LIBVIRT_TYPE=kvm
28VOLUME_BACKING_FILE_SIZE=50G
29GLANCE_LIMIT_IMAGE_SIZE_TOTAL=10000
30CINDER_BACKUP_DRIVER=swift
31SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
32SWIFT_REPLICAS=1
33enable_plugin neutron https://opendev.org/openstack/neutron
34#swift
35enable_service s-proxy s-object s-container s-account
36# Cinder
37enable_service c-bak
38[[post-config|/etc/neutron/neutron.conf]]
39[DEFAULT]
40advertise_mtu = True
41global_physnet_mtu = 1400
42EOF
43
44# Start DevStack deployment
45/opt/stack/stack.sh
46
47# Create staffeln configuration file
48cat <<EOF > /etc/staffeln/staffeln.conf
49[conductor]
50backup_workers = 1
51rotation_workers = 1
52backup_service_period = 1200
53retention_service_period = 1200
54backup_cycle_timout = 5min
55retention_time = 2w3d
56backup_metadata_key="__automated_backup"
57retention_metadata_key="__staffeln_retention"
58full_backup_depth = 4
59
60[database]
61backend = sqlalchemy
62connection = "mysql+pymysql://staffeln:password@localhost:3306/staffeln"
63tooz_connection = "mysql://staffeln:password@localhost:3306/staffeln"
64mysql_engine = InnoDB
65EOF
66
67# Create staffeln database
68mysql -e 'CREATE DATABASE staffeln;'
69mysql -e 'CREATE USER "staffeln"@"%" IDENTIFIED BY "password";'
70mysql -e 'GRANT ALL PRIVILEGES ON staffeln.* TO "staffeln"@"%";'
71
72# Install staffeln
73pip install -U setuptools pip
74$HOME/.local/bin/pip3 install -e .
75
76# Start staffeln conductor
77staffeln-db-manager create_schema
78staffeln-db-manager upgrade head
79staffeln-conductor &