crowdsec/debian/postinst

106 lines
3.4 KiB
Plaintext
Raw Permalink Normal View History

2022-06-21 12:53:51 +00:00
#!/bin/sh
2021-08-18 11:57:06 +00:00
COLLECTIONS=false
set -e
# Source debconf library.
. /usr/share/debconf/confmodule
if [ "$1" = configure ]; then
2022-06-21 12:53:51 +00:00
if [ ! -d /var/lib/crowdsec/data ]; then
2021-08-18 11:57:06 +00:00
mkdir -p /var/lib/crowdsec/data
fi
2022-06-21 12:53:51 +00:00
if [ -d /var/lib/crowdsec/backup ]; then
2021-08-18 11:57:06 +00:00
cscli config restore /var/lib/crowdsec/backup/backup.config
rm -rf /var/lib/crowdsec/backup
/usr/bin/cscli hub update
/usr/bin/cscli hub upgrade
systemctl start crowdsec
fi
2022-02-01 08:55:28 +00:00
2022-06-21 12:53:51 +00:00
if ! find /etc/crowdsec/acquis.d -maxdepth 1 -type f -name '*' 2>/dev/null | grep -q '.'; then
echo Creating /etc/crowdsec/acquis.d
mkdir -p /etc/crowdsec/acquis.d
cscli setup detect >/etc/crowdsec/.setup.yaml
cscli setup install-hub /etc/crowdsec/.setup.yaml
cscli setup datasources /etc/crowdsec/.setup.yaml --to-dir /etc/crowdsec/acquis.d
2021-08-18 11:57:06 +00:00
fi
2022-06-21 12:53:51 +00:00
if [ -f /etc/crowdsec/local_api_credentials.yaml ] ; then
chmod 600 /etc/crowdsec/local_api_credentials.yaml
fi
2022-06-21 12:53:51 +00:00
if [ -f /etc/crowdsec/online_api_credentials.yaml ]; then
chmod 600 /etc/crowdsec/online_api_credentials.yaml
fi
2022-02-01 08:55:28 +00:00
2022-06-21 12:53:51 +00:00
if [ ! -f /etc/crowdsec/local_api_credentials.yaml ] || [ ! -f /etc/crowdsec/online_api_credentials.yaml ]; then
if [ ! -f /etc/crowdsec/local_api_credentials.yaml ] ; then
install -m 600 /dev/null /etc/crowdsec/local_api_credentials.yaml
fi
2022-06-21 12:53:51 +00:00
if [ ! -f /etc/crowdsec/online_api_credentials.yaml ] ; then
install -m 600 /dev/null /etc/crowdsec/online_api_credentials.yaml
fi
2021-08-18 11:57:06 +00:00
db_input medium crowdsec/lapi || true
db_go || true
2022-02-01 08:55:28 +00:00
2021-08-18 11:57:06 +00:00
db_get crowdsec/lapi
LAPI=$RET
if [ "$LAPI" = true ]; then
db_input medium crowdsec/capi || true
db_go || true
2022-02-01 08:55:28 +00:00
2021-08-18 11:57:06 +00:00
db_get crowdsec/capi
CAPI=$RET
2022-02-01 08:55:28 +00:00
2021-08-18 11:57:06 +00:00
cscli machines add -a
2022-02-01 08:55:28 +00:00
2021-08-18 11:57:06 +00:00
if [ "$CAPI" = true ]; then
cscli capi register
fi
2022-02-01 08:55:28 +00:00
2021-08-18 11:57:06 +00:00
else
db_input medium crowdsec/lapi_host || true
db_go || true
2022-02-01 08:55:28 +00:00
2021-08-18 11:57:06 +00:00
db_get crowdsec/lapi_host
LAPI_HOST=$RET
sed -i "s/127.0.0.1:8080/$LAPI_HOST/g" /etc/crowdsec/config.yaml
fi
fi
2022-02-01 08:55:28 +00:00
2021-08-18 11:57:06 +00:00
echo Updating hub
/usr/bin/cscli hub update
2022-02-01 08:55:28 +00:00
if [ "$COLLECTIONS" = true ]; then
2021-08-18 11:57:06 +00:00
set +e
CSCLI_BIN_INSTALLED="/usr/bin/cscli" SILENT=true install_collection
set -e
2022-02-01 08:55:28 +00:00
fi
2021-08-18 11:57:06 +00:00
if [[ -f /var/lib/crowdsec/data/crowdsec.db.backup ]]; then
cp /var/lib/crowdsec/data/crowdsec.db.backup /var/lib/crowdsec/data/crowdsec.db
rm -f /var/lib/crowdsec/data/crowdsec.db.backup
fi
systemctl --quiet is-enabled crowdsec || systemctl unmask crowdsec && systemctl enable crowdsec
API=$(cscli config show --key "Config.API.Server")
if [ "$API" = "<nil>" ] ; then
LAPI=false
else
PORT=$(cscli config show --key "Config.API.Server.ListenURI"|cut -d ":" -f2)
fi
if [ "$LAPI" = false ] || [ -z "$(ss -nlt "sport = ${PORT}" | grep -v ^State)" ] ; then
2021-08-18 11:57:06 +00:00
systemctl start crowdsec
else
echo "Not attempting to start crowdsec, port ${PORT} is already used or lapi was disabled"
2021-08-18 11:57:06 +00:00
echo "This port is configured through /etc/crowdsec/config.yaml and /etc/crowdsec/local_api_credentials.yaml"
fi
fi
2021-12-06 16:29:23 +00:00
echo "You can always run the configuration again interactively by using '/usr/share/crowdsec/wizard.sh -c"