This repository has been archived on 2023-03-15. You can view files and clone it, but cannot push or open issues or pull requests.
infrastructure/op_guide/stolon/install.md

88 lines
2.5 KiB
Markdown
Raw Normal View History

2019-06-01 14:02:49 +00:00
Spawn container:
```bash
2022-08-24 15:09:28 +00:00
docker run \
-ti --rm \
--name stolon-config \
--user root \
-v /var/lib/consul/pki/:/certs \
superboum/amd64_postgres:v11
2019-06-01 14:02:49 +00:00
```
Init with:
```
stolonctl \
2022-08-24 15:09:28 +00:00
--cluster-name chelidoine \
2019-06-01 14:02:49 +00:00
--store-backend=consul \
2022-08-24 15:09:28 +00:00
--store-endpoints https://consul.service.prod.consul:8501 \
--store-ca-file /certs/consul-ca.crt \
--store-cert-file /certs/consul2022-client.crt \
--store-key /certs/consul2022-client.key \
2019-06-01 14:02:49 +00:00
init \
2022-08-24 15:09:28 +00:00
'{ "initMode": "new",
"usePgrewind" : true,
"proxyTimeout" : "120s",
"pgHBA": [
"host all postgres all md5",
"host replication replicator all md5",
"host all all all ldap ldapserver=bottin.service.prod.consul ldapbasedn=\"ou=users,dc=deuxfleurs, dc=fr\" ldapbinddn=\"<bind_dn>\" ldapbindpasswd=\"<bind_pwd>\" ldapsearchattribute=\"cn\""
]
}'
2019-06-01 14:02:49 +00:00
```
Then set appropriate permission on host:
```
2022-08-24 15:09:28 +00:00
mkdir -p /mnt/{ssd,storage}/postgres/
chown -R 999:999 /mnt/{ssd,storage}/postgres/
2019-06-01 14:02:49 +00:00
```
(102 is the id of the postgres user used in Docker)
It might be improved by staying with root, then chmoding in an entrypoint and finally switching to user 102 before executing user's command.
Moreover it would enable the usage of the user namespace that shift the UIDs.
## Upgrading the cluster
2022-08-24 15:09:28 +00:00
To retrieve the current stolon config:
```
2022-08-24 15:09:28 +00:00
stolonctl spec --cluster-name chelidoine --store-backend consul --store-ca-file ... --store-cert-file ... --store-endpoints https://consul.service.prod.consul:8501
```
The important part for the LDAP:
```
{
"pgHBA": [
"host all postgres all md5",
"host replication replicator all md5",
"host all all all ldap ldapserver=bottin.service.2.cluster.deuxfleurs.fr ldapbasedn=\"ou=users,dc=deuxfleurs,dc=fr\" ldapbinddn=\"cn=admin,dc=deuxfleurs,dc=fr\" ldapbindpasswd=\"<REDACTED>\" ldapsearchattribute=\"cn\""
]
}
```
Once a patch is writen:
```
stolonctl --cluster-name pissenlit --store-backend consul --store-endpoints http://consul.service.2.cluster.deuxfleurs.fr:8500 update --patch -f /tmp/patch.json
```
2020-12-18 09:23:45 +00:00
## Log
- 2020-12-18 Activate pg\_rewind in stolon
```
stolonctl --cluster-name pissenlit --store-backend consul --store-endpoints http://consul.service.2.cluster.deuxfleurs.fr:8500 update --patch '{ "usePgrewind" : true }'
```
- 2021-03-14 Increase proxy timeout to cope with consul latency spikes
```
stolonctl --cluster-name pissenlit --store-backend consul --store-endpoints http://consul.service.2.cluster.deuxfleurs.fr:8500 update --patch '{ "proxyTimeout" : "120s" }'
```