blob: af1888ce9e87b312772351e6295b55b70b189c79 [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
okozachenko12033a0f14c2023-01-13 23:38:16 +11008sudo chown -R "${USER}". /opt/stack
okozachenko12037fc026c2023-01-13 21:51:34 +11009
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
okozachenko120310d70b02023-01-14 00:51:15 +110020sudo mkdir /etc/staffeln
21sudo chown -R "${USER}". /etc/staffeln
okozachenko12037fc026c2023-01-13 21:51:34 +110022cat <<EOF > /opt/stack/local.conf
23[[local|localrc]]
24KEYSTONE_ADMIN_ENDPOINT=true
25DATABASE_PASSWORD=secrete123
26RABBIT_PASSWORD=secrete123
27SERVICE_PASSWORD=secrete123
28ADMIN_PASSWORD=secrete123
29LIBVIRT_TYPE=kvm
30VOLUME_BACKING_FILE_SIZE=50G
31GLANCE_LIMIT_IMAGE_SIZE_TOTAL=10000
32CINDER_BACKUP_DRIVER=swift
33SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
34SWIFT_REPLICAS=1
35enable_plugin neutron https://opendev.org/openstack/neutron
36#swift
37enable_service s-proxy s-object s-container s-account
38# Cinder
39enable_service c-bak
40[[post-config|/etc/neutron/neutron.conf]]
41[DEFAULT]
42advertise_mtu = True
43global_physnet_mtu = 1400
44EOF
45
46# Start DevStack deployment
47/opt/stack/stack.sh
48
49# Create staffeln configuration file
50cat <<EOF > /etc/staffeln/staffeln.conf
51[conductor]
52backup_workers = 1
53rotation_workers = 1
54backup_service_period = 1200
55retention_service_period = 1200
56backup_cycle_timout = 5min
57retention_time = 2w3d
58backup_metadata_key="__automated_backup"
59retention_metadata_key="__staffeln_retention"
60full_backup_depth = 4
61
62[database]
63backend = sqlalchemy
64connection = "mysql+pymysql://staffeln:password@localhost:3306/staffeln"
65tooz_connection = "mysql://staffeln:password@localhost:3306/staffeln"
66mysql_engine = InnoDB
67EOF
68
69# Create staffeln database
okozachenko120310d70b02023-01-14 00:51:15 +110070mysql -e 'CREATE DATABASE staffeln;' || echo "Database for staffeln already exists."
71mysql -e 'CREATE USER "staffeln"@"%" IDENTIFIED BY "password";' || echo "DB user staffeln already exists."
okozachenko12037fc026c2023-01-13 21:51:34 +110072mysql -e 'GRANT ALL PRIVILEGES ON staffeln.* TO "staffeln"@"%";'
73
74# Install staffeln
75pip install -U setuptools pip
okozachenko12033a0f14c2023-01-13 23:38:16 +110076"${HOME}"/.local/bin/pip3 install -e .
okozachenko12037fc026c2023-01-13 21:51:34 +110077
78# Start staffeln conductor
okozachenko120310d70b02023-01-14 00:51:15 +110079staffeln-db-manage create_schema
80#staffeln-db-manage upgrade head
81source /opt/stack/openrc admin admin
okozachenko12037fc026c2023-01-13 21:51:34 +110082staffeln-conductor &