automation/ansible/README.md

59 lines
1.4 KiB
Markdown
Raw Normal View History

2020-05-01 13:40:16 +00:00
# Deployer: deploy your shit and make it run
So lame to have to configure nginx, MySQL, and your filesystem to install a stupid Wordpress instance.
**Deployer** does my config for me like the slave it is.
All the configuration is defined in `group_vars/all/vars.yml`, go check.
Create a side `group_vars/all/vault.yml` for your secrets, and encrypt it with Ansible Vault:
2020-05-01 13:41:07 +00:00
```bash
ansible-vault encrypt group_vars/all/vault.yml
# other sub-commands: edit, decrypt...
```
2020-05-01 13:40:16 +00:00
I usually run the following command:
ansible-playbook --ask-vault-pass sites.yml -i inventory -v
2020-04-09 15:29:12 +00:00
## Required packages on remote
2020-05-01 13:40:16 +00:00
Python modules:
2020-04-09 15:29:12 +00:00
* docker
* docker-compose
* pymysql
TODO: Ansible task to install that before the rest
2020-05-01 13:40:16 +00:00
# Features
2020-04-09 15:29:12 +00:00
2020-05-01 13:40:16 +00:00
* Creating Wordpress instances (yoohoo, da best)
2020-04-09 15:29:12 +00:00
2020-05-01 13:40:16 +00:00
* That send mail!!11!1!
### Does not support
* Setting up the host
* SSL certificate creation (bro, do it yourself!). That is:
```bash
# Make an nginx file for certbot
cat << EOF > /etc/nginx/sites-enabled/yoursite.com
server {
listen 80;
server_name www.yoursite.com yoursite.com;
include snippets/letsencrypt.conf;
}
EOF
nginx -t # Is everything alright?
# If so, restart nginx
service nginx restart
# Create the certificate
certbot certonly --webroot -w /var/www/letsencrypt -d yoursite.com -d www.yoursite.com
# Remove the stupid file
rm /etc/nginx/sites-enabled/yoursite.com
service nginx restart
```