-
Notifications
You must be signed in to change notification settings - Fork 0
/
deployment.sh
69 lines (56 loc) · 1.67 KB
/
deployment.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
export storageboxuser=u290442-sub2
export ghusers="igami stikkx leon2225 mattn81 mneuhaus"
export fqdn=igami.makerspace-gt.de
export storagebox=//$storageboxuser.your-storagebox.de/$storageboxuser
export storageboxmount=/mnt/storagebox
export storageboxcredentials=/etc/storageboxcredentials.txt
export gitdir=/var/docker
export DEBIAN_FRONTEND=noninteractive
# check for mount password
if ! [ -f $storageboxcredentials ]; then
read -sp 'enter the storage-box password: ' storageboxpassword
echo username=$storageboxuser > $storageboxcredentials
echo password=$storageboxpassword >> $storageboxcredentials
chmod 0600 $storageboxcredentials
fi
# import ssh keys
ssh-import-id-gh $ghusers
# set hostname
hostnamectl set-hostname $fqdn
# update system
apt update
apt -y dist-upgrade
apt -y autoremove
apt clean
# cgroups v2 user namespace remapping for FreeIPA server container
# https://hub.docker.com/r/freeipa/freeipa-server
mkdir /etc/docker
echo '{ "userns-remap": "default" }' > /etc/docker/daemon.json
# install requirements
apt -y install \
git \
docker \
docker-compose \
make
# mount storagebox
if [[ $(findmnt $storageboxmount | wc -c) == 0 ]]; then
apt -y install cifs-utils
mkdir $storageboxmount
echo "$storagebox $storageboxmount cifs rw,credentials=$storageboxcredentials,_netdev,uid=1000,gid=1000,dir_mode=0750 0 0" >> /etc/fstab
mount -a
fi
# clone repository
if ! [ -d $gitdir ]; then
git clone https://github.com/makerspace-gt/docker-compose-server.git $gitdir
cd $gitdir
else
cd $gitdir
git pull
fi
# create docker network
docker network create web
# start services
make start
# reboot mashine
# reboot