You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
adc/ansible/roles/synology/templates/acmedns_update.sh.j2

43 lines
1.3 KiB

#!/bin/sh
set -eu
export DO_AUTH_TOKEN={{ acmedns_syno_auth_token }}
echoexec() { echo "Running: $*"; $*; }
echoexec /usr/local/bin/wraplego.py \
--verbose \
--legodir "{{ acmedns_syno_updater_certificate_dir }}" \
--email "{{ acmedns_syno_updater_email }}" \
--domain "{{ acmedns_syno_updater_domain }}" \
--authenticator "digitalocean" \
host="{{ acmedns_syno_updater_syn_user }}@{{ acmedns_syno_updater_syn_server }}"
date=$(date +%Y%m%d)
tmppath=/tmp/${date}-acme-update
scp -r {{ acmedns_syno_updater_certificate_dir }}/certificates $host:$tmppath
#
# SSH to the remote server and install the certs:
#
echo "$(cat <<ENDSSH
echo "$(cat <<ENDSUDO
echo 'Copying files...'
cd /usr/syno/etc/ssl
if ! test -d /usr/syno/etc/certificate.acme_renew_hook_backup; then
cp -r /usr/syno/etc/certificate /usr/syno/etc/certificate.acme_renew_hook_backup
fi
chown -R root:root "$tmppath"
mv $tmppath/{{ acmedns_syno_updater_domain }}.crt /usr/syno/etc/certificate/system/default/fullchain.pem
mv $tmppath/{{ acmedns_syno_updater_domain }}.key /usr/syno/etc/certificate/system/default/privkey.pem
echo 'Removing temp dir...'
rm -rf $tmppath
echo 'Reloading webserver...'
sudo /usr/syno/sbin/synoservicecfg --reload nginx
echo 'Done'
ENDSUDO
)" | sudo su -
ENDSSH
)" | ssh $host