Compare commits
4 Commits
f42d97ba02
...
e017320e8c
Author | SHA1 | Date | |
---|---|---|---|
e017320e8c | |||
744597495d | |||
78af417d43 | |||
7b7d73b0d5 |
13
asgard/k0s.md
Normal file
13
asgard/k0s.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# [asgard] K0S
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
`curl -sSLf https://get.k0s.sh | sudo K0S_VERSION=v1.29.4+k0s.0 sh`
|
||||||
|
|
||||||
|
`sudo mkdir /etc/k0s`
|
||||||
|
|
||||||
|
`sudo k0s config create | sudo tee /etc/k0s/k0s.yml`
|
||||||
|
|
||||||
|
`sudo k0s install controller --data-dir /data/k0s --single -c /etc/k0s/k0s.yml`
|
||||||
|
|
||||||
|
`sudo k0s start`
|
43
asgard/storage.md
Normal file
43
asgard/storage.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# [asgard] Stockage
|
||||||
|
|
||||||
|
## Schéma de partitionnement cible
|
||||||
|
- **vda** (disque système cloud-init) 10G
|
||||||
|
- vda14 (BIOS boot)
|
||||||
|
- vda15 (EFI)
|
||||||
|
- vda1 (partition racine /)
|
||||||
|
|
||||||
|
- **vdb** (disque secondaire LVM) 5G
|
||||||
|
|
||||||
|
### Schéma de partitionnement LVM
|
||||||
|
- **data** (LVM volume group) : **vdb**
|
||||||
|
- **k0s** (LVM logical volume) : 5G
|
||||||
|
|
||||||
|
## Initialisation LVM pour le disque secondaire
|
||||||
|
Création du *physical volume* **vdb**
|
||||||
|
|
||||||
|
`sudo pvcreate /dev/vdb`
|
||||||
|
|
||||||
|
Création du *volume groupe* **data**
|
||||||
|
|
||||||
|
`sudo vgcreate data /dev/vdb`
|
||||||
|
|
||||||
|
Création du *logical volume* **k0s**
|
||||||
|
|
||||||
|
`sudo lvcreate -l+100%FREE -n k0s data`
|
||||||
|
|
||||||
|
### Formatage et montage des volumes de données
|
||||||
|
Formatage du volume en EXT4
|
||||||
|
|
||||||
|
`sudo mkfs.ext4 /dev/data/k0s`
|
||||||
|
|
||||||
|
Création des répertoires `/data/k0s`
|
||||||
|
|
||||||
|
`sudo mkdir -p /data/k0s`
|
||||||
|
|
||||||
|
Montage des volumes. Via `/etc/fstab`
|
||||||
|
|
||||||
|
```
|
||||||
|
/dev/data/k0s /data/k0s ext4 rw,discard,errors=remount-ro 0 1
|
||||||
|
```
|
||||||
|
|
||||||
|
`sudo mount /data/k0s`
|
10
midgard/backup/install
Executable file
10
midgard/backup/install
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
BASEDIR=$(dirname "$0")
|
||||||
|
|
||||||
|
install -o root -g root -m 755 "$BASEDIR/mkpsqlbackup" /usr/local/bin/mkpsqlbackup
|
||||||
|
install -o root -g root -m 644 "$BASEDIR/mkpsqlbackup.conf" /etc/mkpsqlbackup.conf
|
||||||
|
install -o root -g root -m 644 "$BASEDIR/mkpsqlbackup.service" /etc/systemd/system/mkpsqlbackup.service
|
||||||
|
install -o root -g root -m 644 "$BASEDIR/mkpsqlbackup.timer" /etc/systemd/system/mkpsqlbackup.timer
|
35
midgard/backup/mkpsqlbackup
Normal file
35
midgard/backup/mkpsqlbackup
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Default configuration
|
||||||
|
DATABASES=''
|
||||||
|
BACKUP_DIR=/data/backup/postgresql
|
||||||
|
RETENTION_DAYS=7
|
||||||
|
|
||||||
|
if ! source /etc/mkpsqlbackup.conf ; then
|
||||||
|
echo '[MKPSQLBACKUP] : Unable to load configuration file' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(id -un)" != 'postgres' ] ; then
|
||||||
|
echo '[MKPSQLBACKUP] : This script must be run as postgres user' >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
FINAL_BACKUP_DIR="$BACKUP_DIR/-$(date '+%Y-%m-%d')"
|
||||||
|
echo "[MKPSQLBACKUP] : Creating backup directory $FINAL_BACKUP_DIR"
|
||||||
|
if ! mkdir -p "$FINAL_BACKUP_DIR" ; then
|
||||||
|
echo "[MKPSQLBACKUP] : Unable to create backup directory $FINAL_BACKUP_DIR"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
for db in DATABASES ; do
|
||||||
|
echo "[MKPSQLBACKUP] : Backup of $db"
|
||||||
|
if ! pg_dump -Fc "$db" -f "$FINAL_BACKUP_DIR/$db" ; then
|
||||||
|
echo "[MKPSQLBACKUP] : Unable to backup database $db" >&2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo '[MKPSQLBACKUP] : Purging old backups'
|
||||||
|
find "$BACKUP_DIR" -maxdepth 1 mindepth 1 -mtime +"$RETENTION_DAYS" -exec rm -rf '{}' ';'
|
3
midgard/backup/mkpsqlbackup.conf
Normal file
3
midgard/backup/mkpsqlbackup.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
DATABASES=''
|
||||||
|
BACKUP_DIR=/data/backup/postgresql
|
||||||
|
RETENTION_DAYS=7
|
5
midgard/backup/mkpsqlbackup.service
Normal file
5
midgard/backup/mkpsqlbackup.service
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Performing PostgreSQL database backups
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/local/bin/mkpsqlbackup
|
10
midgard/backup/mkpsqlbackup.timer
Normal file
10
midgard/backup/mkpsqlbackup.timer
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Performing PostgreSQL database backups every days at 3:00am
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
# Run every days at 3:00am
|
||||||
|
OnCalendar=*-*-* 3:00:00
|
||||||
|
Persistent=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
21
midgard/postgresql.md
Normal file
21
midgard/postgresql.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# [midgard] PostgreSQL
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
`sudo curl -o /etc/apt/trusted.gpg.d/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc`
|
||||||
|
|
||||||
|
`echo "deb [signed-by=/etc/apt/trusted.gpg.d/pgdg.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list`
|
||||||
|
|
||||||
|
`sudo apt update`
|
||||||
|
|
||||||
|
`sudo apt install postgresql-16`
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
`sudo chown postgres:postgres /data/pgdata /data/pglog`
|
||||||
|
|
||||||
|
`sudo pg_dropcluster --stop 16 main`
|
||||||
|
|
||||||
|
`sudo pg_createcluster -d /data/pgdata/16/midgard -l /data/pglog/postgresql-16-midgard.log 16 midgard`
|
||||||
|
|
||||||
|
`sudo pg_ctlcluster start 16 midgard`
|
@ -6,12 +6,13 @@
|
|||||||
- vda15 (EFI)
|
- vda15 (EFI)
|
||||||
- vda1 (partition racine /)
|
- vda1 (partition racine /)
|
||||||
|
|
||||||
- **vdb** (disque secondaire LVM) 5G
|
- **vdb** (disque secondaire LVM) 6G
|
||||||
|
|
||||||
### Schéma de partitionnement LVM
|
### Schéma de partitionnement LVM
|
||||||
- **data** (LVM volume group) : **vdb**
|
- **data** (LVM volume group) : **vdb**
|
||||||
- **pgdata** (LVM logical volume) : 4G
|
- **pgdata** (LVM logical volume) : 4G
|
||||||
- **pglog** (LVM logical volume) : 1G
|
- **pglog** (LVM logical volume) : 1G
|
||||||
|
- **backup** (LVM logical volume) : 1G
|
||||||
|
|
||||||
|
|
||||||
## Initialisation LVM pour le disque secondaire
|
## Initialisation LVM pour le disque secondaire
|
||||||
@ -23,11 +24,13 @@ Création du *volume groupe* **data**
|
|||||||
|
|
||||||
`sudo vgcreate data /dev/vdb`
|
`sudo vgcreate data /dev/vdb`
|
||||||
|
|
||||||
Création des *logical volumes* **pgdata** et **pglog**
|
Création des *logical volumes* **pgdata**, **pglog** et **backup**
|
||||||
|
|
||||||
`sudo lvcreate -L 4G -n pgdata data`
|
`sudo lvcreate -L 4G -n pgdata data`
|
||||||
|
|
||||||
`sudo lvcreate -l+100%FREE -n pglog data`
|
`sudo lvcreate -L 1G -n pglog data`
|
||||||
|
|
||||||
|
`sudo lvcreate -l+100%FREE -n backup data`
|
||||||
|
|
||||||
### Formatage et montage des volumes de données
|
### Formatage et montage des volumes de données
|
||||||
Formatage les deux volumes en EXT4
|
Formatage les deux volumes en EXT4
|
||||||
@ -36,17 +39,22 @@ Formatage les deux volumes en EXT4
|
|||||||
|
|
||||||
`sudo mkfs.ext4 /dev/data/pgdata`
|
`sudo mkfs.ext4 /dev/data/pgdata`
|
||||||
|
|
||||||
Création des répertoires `/data/pgdata` et `/data/pglog`
|
`sudo mkfs.ext4 /dev/data/backup`
|
||||||
|
|
||||||
`sudo mkdir -p /data/pgdata /data/pglog`
|
Création des répertoires `/data/pgdata`, `/data/pglog` et `/data/backup`
|
||||||
|
|
||||||
|
`sudo mkdir -p /data/pgdata /data/pglog /data/backup`
|
||||||
|
|
||||||
Montage des volumes. Via `/etc/fstab`
|
Montage des volumes. Via `/etc/fstab`
|
||||||
|
|
||||||
```
|
```
|
||||||
/dev/data/pgdata /data/pgdata ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
|
/dev/data/pgdata /data/pgdata ext4 rw,discard,errors=remount-ro 0 1
|
||||||
/dev/data/pglog /data/pglog ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
|
/dev/data/pglog /data/pglog ext4 rw,discard,errors=remount-ro 0 1
|
||||||
|
/dev/data/backup /data/backup ext4 rw,discard,errors=remount-ro 0 1
|
||||||
```
|
```
|
||||||
|
|
||||||
`sudo mount /data/pgdata`
|
`sudo mount /data/pgdata`
|
||||||
|
|
||||||
`sudo mount /data/pglog`
|
`sudo mount /data/pglog`
|
||||||
|
|
||||||
|
`sudo mount /data/backup`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user