blob: 4876c88f5572092fb969830415d97284df1e3e39 [file] [log] [blame]
okozachenko12037fc026c2023-01-13 21:51:34 +11001#!/bin/bash -xe
okozachenko1203969b1752023-01-14 00:59:28 +11002# shellcheck disable=SC1091
okozachenko12037fc026c2023-01-13 21:51:34 +11003
4# Install dependencies
5sudo apt-get update
6
7# Setup folders for DevStack
8sudo mkdir -p /opt/stack
okozachenko12033a0f14c2023-01-13 23:38:16 +11009sudo chown -R "${USER}". /opt/stack
okozachenko12037fc026c2023-01-13 21:51:34 +110010
11# Clone repository if not present, otherwise update
12if [ ! -f /opt/stack/stack.sh ]; then
13 git clone https://git.openstack.org/openstack-dev/devstack /opt/stack
14else
15 pushd /opt/stack
16 git pull
17 popd
18fi
19
20# Create DevStack configuration file
ricolincf031292023-09-18 15:57:42 +080021
okozachenko120310d70b02023-01-14 00:51:15 +110022sudo mkdir /etc/staffeln
23sudo chown -R "${USER}". /etc/staffeln
okozachenko12037fc026c2023-01-13 21:51:34 +110024cat <<EOF > /opt/stack/local.conf
25[[local|localrc]]
26KEYSTONE_ADMIN_ENDPOINT=true
27DATABASE_PASSWORD=secrete123
28RABBIT_PASSWORD=secrete123
29SERVICE_PASSWORD=secrete123
30ADMIN_PASSWORD=secrete123
31LIBVIRT_TYPE=kvm
32VOLUME_BACKING_FILE_SIZE=50G
33GLANCE_LIMIT_IMAGE_SIZE_TOTAL=10000
34CINDER_BACKUP_DRIVER=swift
35SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
36SWIFT_REPLICAS=1
37enable_plugin neutron https://opendev.org/openstack/neutron
38#swift
ricoline884f122024-11-01 16:28:13 +080039enable_service s-proxy s-object s-container s-account
okozachenko12037fc026c2023-01-13 21:51:34 +110040# Cinder
41enable_service c-bak
42[[post-config|/etc/neutron/neutron.conf]]
43[DEFAULT]
44advertise_mtu = True
45global_physnet_mtu = 1400
46EOF
47
48# Start DevStack deployment
49/opt/stack/stack.sh
50
51# Create staffeln configuration file
52cat <<EOF > /etc/staffeln/staffeln.conf
ricolincaf714b2023-09-14 12:56:37 +080053[DEFAULT]
54debug = True
okozachenko12037fc026c2023-01-13 21:51:34 +110055[conductor]
56backup_workers = 1
57rotation_workers = 1
58backup_service_period = 1200
59retention_service_period = 1200
60backup_cycle_timout = 5min
61retention_time = 2w3d
ricolin2d4ad432023-07-26 23:42:26 +080062backup_metadata_key="__staffeln_backup"
okozachenko12037fc026c2023-01-13 21:51:34 +110063retention_metadata_key="__staffeln_retention"
64full_backup_depth = 4
65
66[database]
67backend = sqlalchemy
68connection = "mysql+pymysql://staffeln:password@localhost:3306/staffeln"
okozachenko12037fc026c2023-01-13 21:51:34 +110069mysql_engine = InnoDB
ricolincf031292023-09-18 15:57:42 +080070
71[coordination]
72backend_url = "file:///tmp/staffeln_locks"
okozachenko12037fc026c2023-01-13 21:51:34 +110073EOF
74
75# Create staffeln database
okozachenko120310d70b02023-01-14 00:51:15 +110076mysql -e 'CREATE DATABASE staffeln;' || echo "Database for staffeln already exists."
77mysql -e 'CREATE USER "staffeln"@"%" IDENTIFIED BY "password";' || echo "DB user staffeln already exists."
okozachenko12037fc026c2023-01-13 21:51:34 +110078mysql -e 'GRANT ALL PRIVILEGES ON staffeln.* TO "staffeln"@"%";'
79
80# Install staffeln
81pip install -U setuptools pip
okozachenko12033a0f14c2023-01-13 23:38:16 +110082"${HOME}"/.local/bin/pip3 install -e .
okozachenko12037fc026c2023-01-13 21:51:34 +110083
84# Start staffeln conductor
ricolin2d4ad432023-07-26 23:42:26 +080085"${HOME}"/.local/bin/staffeln-db-manage --config-file /etc/staffeln/staffeln.conf create_schema
86 #staffeln-db-manage upgrade head
87
88echo You can fetch authroize with command: source /opt/stack/openrc admin admin
89echo You can now run staffeln conductor with: "${HOME}"/.local/bin/staffeln-conductor --config-file /etc/staffeln/staffeln.conf
90echo You can now run staffeln api with: "${HOME}"/.local/bin/staffeln-api --config-file /etc/staffeln/staffeln.conf