second commit
This commit is contained in:
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
|
||||
function check() {
|
||||
PREFIX="recipe:postgresql:check"
|
||||
container_running "$CONTAINER" || return 10
|
||||
echo "checking postgresql regarding access to the bridge subnet <$BRIDGE_SUBNET>..."
|
||||
|
||||
lxc exec "$CONTAINER" -- bash <<EOF
|
||||
set -Eeuo pipefail
|
||||
systemctl is-active postgresql.service &>/dev/null
|
||||
ss -tlnp | grep postgres | grep -q 0.0.0.0:5432
|
||||
PG_VERSION=\$(pg_lsclusters -h | cut -d' ' -f1)
|
||||
grep -Eq "^host.*all.*all.*$BRIDGE_SUBNET.*md5" /etc/postgresql/\$PG_VERSION/main/pg_hba.conf
|
||||
test -f /etc/default/autopostgresqlbackup
|
||||
EOF
|
||||
status="$?"
|
||||
[[ $status -eq 0 ]] && echo "container <$CONTAINER> approved!"
|
||||
return $status
|
||||
}
|
||||
|
||||
function install() {
|
||||
PREFIX="recipe:postgresql:install"
|
||||
: "$PREFIX"
|
||||
|
||||
echowarn "initializing postgresql regarding access to the bridge subnet <$BRIDGE_SUBNET>..."
|
||||
|
||||
launch_container "$CONTAINER"
|
||||
lxc exec "$CONTAINER" -- bash <<EOF
|
||||
set -Eeuo pipefail
|
||||
|
||||
apt update
|
||||
. /opt/debian-bash/lib/functions.sh
|
||||
/opt/debian-bash/tools/idem_apt_install postgresql
|
||||
|
||||
echo -n "start postgresql now..."
|
||||
PG_VERSION=\$(pg_lsclusters -h | cut -d' ' -f1)
|
||||
pg_ctlcluster \$PG_VERSION main start
|
||||
echo "OK"
|
||||
|
||||
function systemctl-exists() ([ \$(systemctl list-unit-files "\${1}*" | wc -l) -gt 3 ])
|
||||
systemctl-exists exim4.service && systemctl disable exim4.service
|
||||
|
||||
/opt/debian-bash/tools/append_or_replace "^listen_addresses = .*$" "listen_addresses = '0.0.0.0'" /etc/postgresql/\$PG_VERSION/main/postgresql.conf
|
||||
/opt/debian-bash/tools/append_or_replace "^host.*all.*all.*$BRIDGE_SUBNET.*md5" "host\tall\t\tall\t\t$BRIDGE_SUBNET\t\tmd5" /etc/postgresql/\$PG_VERSION/main/pg_hba.conf
|
||||
systemctl restart postgresql.service
|
||||
EOF
|
||||
|
||||
echo -n "copying <autopostgresqlbackup> files over container <$CONTAINER> ... "
|
||||
lxc file push --uid 0 --gid 0 "$MIAOU_BASEDIR/templates/autopostgresqlbackup/script" "$CONTAINER/usr/sbin/autopostgresqlbackup"
|
||||
lxc file push --uid 0 --gid 0 "$MIAOU_BASEDIR/templates/autopostgresqlbackup/cron.daily" "$CONTAINER/etc/cron.daily/autopostgresqlbackup"
|
||||
lxc file push --uid 0 --gid 0 "$MIAOU_BASEDIR/templates/autopostgresqlbackup/default.conf" "$CONTAINER/etc/default/autopostgresqlbackup"
|
||||
PREFIX="" echo OK
|
||||
|
||||
}
|
||||
|
||||
# MAIN
|
||||
. "$MIAOU_BASEDIR/lib/init.sh"
|
||||
|
||||
arg1_required "$@"
|
||||
|
||||
CONTAINER="$1"
|
||||
BRIDGE_SUBNET=$(lxc network get lxdbr0 ipv4.address)
|
||||
readonly CONTAINER BRIDGE_SUBNET
|
||||
|
||||
check || (
|
||||
install
|
||||
check
|
||||
)
|
||||
Reference in New Issue
Block a user