summaryrefslogtreecommitdiff
path: root/issues/systems/tux02-production.gmi
blob: 7de911ff28db53b0dbc3c83a9977700b67d61987 (plain)
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
# Tux02 Production

We are going to move production to tux02 - tux01 will be the staging machine. This machine is aimed to be rock solid. The idea is to have 4-6 times a year upgrades. Also we should be able to roll back on an upgrade and be able to create time machines.

## Tags

* assigned: pjotrp
* status: in progress
* priority: medium
* type: system administration
* keywords: systems, tux02, production

## Tasks

* [X] update guix guix-1.3.0-9.f743f20
* [X] set up nginx (Debian)
* [X] test ipmi console (172.23.30.40)
* [X] test ports (nginx)
* [?] set up network for external tux02e.uthsc.edu (128.169.4.52)
* [X] set up deployment evironment
* [X] sheepdog copy database backup from tux01 on a daily basis using ibackup user
* [X] same for GN2 production environment
* [X] sheepdog borg borg the backups
* [X] start GN2 production services
* [X] add GN3 aliases server
* [X] add Genenetwork3 service
      env FLASK_APP="main.py" flask run --port=8087
* [X] add proxy
* [X] set up databases
* [X] set up https and letsencrypt
* [X] set up firewalling
* [X] set up systemd
* [ ] setup logrotate for production log files
* [ ] run git automatically on /etc and backup without passwords
* [ ] add borg backups
* [ ] create check list for manual testing
* [ ] look at performance

## Info

We have a protocol for updating GN2 on Tux02.

### Restore database from backup

Databases no longer get copied. We only restore from backup. First because these are reproducible [installs]. Second because the backup should be in a sane state(!).

Restoring a database from backup (about an hour)

```
root@tux02:/export3/backup/tux01/borg# borg extract borg-tux01::borg-backup-mariadb-20211024-03:09-Sun --progress
```

Next move the dir to fast storage.

#### Symlink /var/lib/mysql

The database is symlinked. You can point that to the recovered backup. Restart the DB and run mysql_upgrade followed by our tests. E.g.

```
systemctl stop mariadb
ln -s /export2/mysql/borg-backup-mariadb-20211024-03\:09-Sun /var/lib/mysql
systemctl start mariadb
/usr/local/guix-profiles/gn-latest-20211021/bin/mysql_upgrade -u webqtlout -pwebqtlout
/export/backup/scripts/tux02/system_check.sh
```