Hi,
I provisioned my server with domains such as:
example2.staging.mydomain.com
However, I am now due to use single subdomain instead of multiple. To keep things clean, I would like to re-provision with the new urls, but also delete the existing too. Is there a known method to do this with Trellis, or just the manual way like so:
sudo rm -rf /etc/nginx/sites-available/example2.staging.mydomain.com
sudo rm -rf /etc/nginx/sites-enabled/example2.staging.mydomain.com
sudo rm -rf /etc/letsencrypt/live/example2.staging.mydomain.com
sudo rm -rf /etc/letsencrypt/archive/example2.staging.mydomain.com
sudo rm -rf /etc/letsencrypt/renewal/example2.staging.mydomain.com.conf
Hey @JordanC26 we have to clean up a site from time to time too. The thorough way would be to destroy the server and spin up a new one but if you don’t want to do that, we’ve got a guide written for our devs that I’m happy sharing:
Assuming you’ve made a backup of db/uploads/anything else you need
- First, remove all mention from the
vault.yml
and wordpress-sites.yml
files. Make note of the database credentials from vault.yml
as you may need them.
- Provision the server
ansible-playbook server.yml -e env=[environment]
- SSH into the server as
web
user e.g. ssh web@[server]
ls /srv/www
and check if the site folder exists.
- Exists
cd /srv/www/example.com/current
and drop the database if you’ve already made a backup, using wp db drop --yes
.
- Go back to
cd /srv/www && ls
and rm -r example.com
to remove site folder.
- If you need
sudo
, you’ll need to exit
and ssh as admin@[server]
.
- Doesn’t exist
- login to MariaDB using
mysql -u example_com -p
and the password from vault.yml
. Root MySQL access is available as web
user, so if you need that you can run mysql -u root -p
. You may need to exit
and ssh web@[server]
. If this is an old site, check back through the vault history in the git repo to find the database password.
show databases;
will do what you’d expect. Note the semicolon in these commands.
DROP DATABASE IF EXISTS name_of_database;
to delete.
exit;
to say Bye.
- You’ll need
sudo
for the next tasks, so you may need to exit
and use the admin
user e.g. ssh admin@[server]
- Run
ls /etc/nginx/includes.d
and sudo rm -r /etc/nginx/includes.d/example.com
if site exists. There may be lots of old or unused sites in here - see PR #1573.
- Run
ls /etc/nginx/sites-enabled
and sudo rm /etc/nginx/sites-enabled/example.com.conf
if site exists.
- Run
ls /etc/cron.d
and sudo rm /etc/cron.d/wordpress-example_com
if site exists.
- Run
sudo ls /etc/nginx/ssl/letsencrypt
. Look for and sudo rm
the following:
/etc/nginx/ssl/letsencrypt/example.co.uk.key
/etc/nginx/ssl/letsencrypt/example.co.uk-[key].cert
/etc/nginx/ssl/letsencrypt/example.co.uk-[key]-bundled.cert
- Restart cron
sudo service cron restart
- Restart Nginx
sudo service nginx restart
If you happen to find any other files that aren’t on that list, can you share them back here for future searchers?
1 Like