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)
|
||||
- vda1 (partition racine /)
|
||||
|
||||
- **vdb** (disque secondaire LVM) 5G
|
||||
- **vdb** (disque secondaire LVM) 6G
|
||||
|
||||
### Schéma de partitionnement LVM
|
||||
- **data** (LVM volume group) : **vdb**
|
||||
- **pgdata** (LVM logical volume) : 4G
|
||||
- **pglog** (LVM logical volume) : 1G
|
||||
- **backup** (LVM logical volume) : 1G
|
||||
|
||||
|
||||
## Initialisation LVM pour le disque secondaire
|
||||
@ -23,11 +24,13 @@ Création du *volume groupe* **data**
|
||||
|
||||
`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+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 les deux volumes en EXT4
|
||||
@ -36,17 +39,22 @@ Formatage les deux volumes en EXT4
|
||||
|
||||
`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`
|
||||
|
||||
```
|
||||
/dev/data/pgdata /data/pgdata ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
|
||||
/dev/data/pglog /data/pglog 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 0 1
|
||||
/dev/data/backup /data/backup ext4 rw,discard,errors=remount-ro 0 1
|
||||
```
|
||||
|
||||
`sudo mount /data/pgdata`
|
||||
|
||||
`sudo mount /data/pglog`
|
||||
|
||||
`sudo mount /data/backup`
|
||||
|
Loading…
x
Reference in New Issue
Block a user