Remove a site from a server

Hint

this document gives examples using a site called ‘www.hatherleigh.info’ and server called ‘server1’ replace this with the name of the name of your actual server and the site you wish to remove.

DNS

Remove the site from dns - probably requires removing an A record with the IP address and CNAME record for the www name. Follow the instructions provided by your isp to achieve this.

Salt Configuration

Log on to your master server and remove the site from the pillar sls file for the server:

cd /path/to/pillar
vim sites/<server>.sls

e.g.:

vim sites/server1.sls

Remove or comment the entry for the site which might look like this:

<site name>:
  site-key-1: site-value-1
  site-key-2: site-value-2
  site-key-3: site-value-3

e.g to comment out a site called www.hatherleigh.info:

# www.hatherleigh.info:
#   site-key-1: site-value-1
#   site-key-2: site-value-2
#   site-key-3: site-value-3

Perform a state.apply:

sudo salt '<server name>' state.apply --state-verbose=False

e.g.:

sudo salt 'server1' state.apply --state-verbose=False

On the server

Log on to the server and manually remove the vassal files:

sudo rm /home/web/repo/uwsgi/vassals/<site name>.ini
sudo rm /home/web/repo/uwsgi/vassals/<site name>.celery-beat.ini
sudo rm /home/web/repo/uwsgi/vassals/<site name>.celery-worker.ini

e.g.:

sudo rm /home/web/repo/uwsgi/vassals/www.hatherleigh.info.ini
sudo rm /home/web/repo/uwsgi/vassals/www.hatherleigh.info.celery-beat.ini
sudo rm /home/web/repo/uwsgi/vassals/www.hatherleigh.info.celery-worker.ini

the uwsgi emperor automatically detect that a change has occured and will
stop all the processes associated with the site

Remove the nginx include file:

rm /etc/nginx/include/<site name>.conf

e.g.:

rm /etc/nginx/include/www.hatherleigh.info.conf

Perform a full backup:

sudo -u web -i

backup.<site name>.sh full

e.g.:

backup.www.hatherleigh.info.sh full

Remove the backup from the crontab entry:

rm /etc/cron.d/<site name with dots replaced with _>

e.g.:

rm /etc/cron.d/www_hatherleigh_info

Remove the ssl certificate from letsencrypt. The certbot does not currently have an option to stop renewing a certificate. To do this manually perform the following procedure:

sudo rm -r /etc/letsencrypt/live/<site name>
sudo rm -r /etc/letsencrypt/archive/<site name>
sudo rm /etc/letsencrypt/renewal/<site name>.conf

Optionally remove site files from the ‘project’ ‘files’ and backup directories and remove the database (e.g a postgresql database):

sudo rm -r /home/web/repo/project/<site name>
sudo rm -r /home/web/repo/files/<site name>
sudo rm -r /home/web/repo/backup/<site name>
psql -X -U postgres -c "DROP DATABASE <site name with dots replaced with _>"

e.g.:

sudo rm -r /home/web/repo/project/www.hatherleigh.info
sudo rm -r /home/web/repo/files/www.hatherleigh.info
sudo rm -r /home/web/repo/backup/www.hatherleigh.info
psql -X -U postgres -c "DROP DATABASE www_hatherleigh_info"