initial commit
This commit is contained in:
parent
9be0197a47
commit
8ae0eb96a9
122
setup_wordpress_site.yml
Normal file
122
setup_wordpress_site.yml
Normal file
@ -0,0 +1,122 @@
|
||||
---
|
||||
- name: Setup a new WordPress site
|
||||
hosts: localhost
|
||||
tasks:
|
||||
- name: Create the directory for the new website
|
||||
file:
|
||||
path: "/mnt/efs/{{ site_name }}"
|
||||
state: directory
|
||||
owner: www-data
|
||||
group: www-data
|
||||
|
||||
- name: Download WordPress
|
||||
get_url:
|
||||
url: "https://wordpress.org/latest.zip"
|
||||
dest: "/tmp/wordpress.zip"
|
||||
mode: '0644'
|
||||
|
||||
- name: Extract WordPress
|
||||
unarchive:
|
||||
src: "/tmp/wordpress.zip"
|
||||
dest: "/mnt/efs/{{ site_name }}"
|
||||
remote_src: yes
|
||||
creates: "/mnt/efs/{{ site_name }}/index.php"
|
||||
|
||||
- name: Move WordPress files to root of site directory
|
||||
command: mv /mnt/efs/{{ site_name }}/wordpress/* /mnt/efs/{{ site_name }}/
|
||||
args:
|
||||
removes: "/mnt/efs/{{ site_name }}/wordpress"
|
||||
become: true
|
||||
|
||||
- name: Change ownership of WordPress files
|
||||
file:
|
||||
path: "/mnt/efs/{{ site_name }}"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: www-data
|
||||
group: www-data
|
||||
|
||||
- name: Copy wp-config.php
|
||||
copy:
|
||||
src: "/mnt/efs/common/wp-config.php"
|
||||
dest: "/mnt/efs/{{ site_name }}/wp-config.php"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
mode: '0644'
|
||||
|
||||
- name: Create nginx directory
|
||||
file:
|
||||
path: "/mnt/efs/{{ site_name }}/nginx"
|
||||
state: directory
|
||||
owner: www-data
|
||||
group: www-data
|
||||
|
||||
- name: Copy nginx configuration template
|
||||
template:
|
||||
src: "/mnt/efs/common/wordpress.conf"
|
||||
dest: "/mnt/efs/{{ site_name }}/nginx/wordpress.conf"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
mode: '0644'
|
||||
# Modify template for domain name and docker name
|
||||
# Assume the template uses {{ domain_name }} and {{ docker_name }} variables
|
||||
vars:
|
||||
domain_name: "{{ domain_name }}"
|
||||
docker_name: "{{ site_name }}"
|
||||
|
||||
- name: Generate Docker Compose snippet for FPM and Nginx
|
||||
copy:
|
||||
content: |
|
||||
{{ site_name }}_fpm:
|
||||
image: wordpress:php8.1-fpm
|
||||
networks:
|
||||
- shared_network
|
||||
volumes:
|
||||
- /mnt/efs/{{ site_name }}/wp-content:/var/www/html/wp-content
|
||||
- /mnt/efs/{{ site_name }}/wp-config.php:/var/www/html/wp-config.php
|
||||
- /mnt/efs/{{ site_name }}/nginx:/etc/nginx/conf.d:ro
|
||||
- /mnt/efs/common/php.ini:/usr/local/etc/php/conf.d/custom.ini
|
||||
environment:
|
||||
- WORDPRESS_DB_HOST=mysql
|
||||
- WORDPRESS_DB_USER={{ db_user }}
|
||||
- WORDPRESS_DB_PASSWORD={{ db_password }}
|
||||
- WORDPRESS_DB_NAME={{ db_name }}
|
||||
deploy:
|
||||
replicas: 1
|
||||
labels:
|
||||
- "traefik.http.routers.{{ site_name }}_fpm-https.rule=Host(`{{ domain_name }}`)"
|
||||
- "traefik.http.routers.{{ site_name }}_fpm-https.entrypoints=https"
|
||||
- "traefik.http.routers.{{ site_name }}_fpm-https.tls.certresolver=myresolver"
|
||||
- "traefik.http.services.{{ site_name }}_fpm-service.loadbalancer.server.port=9000"
|
||||
|
||||
{{ site_name }}_nginx:
|
||||
image: nginx:latest
|
||||
networks:
|
||||
- shared_network
|
||||
volumes:
|
||||
- /mnt/efs/{{ site_name }}/nginx:/etc/nginx/conf.d:ro
|
||||
- /mnt/efs/{{ site_name }}:/var/www/html
|
||||
deploy:
|
||||
replicas: 1
|
||||
labels:
|
||||
- "traefik.http.routers.{{ site_name }}_nginx-http.rule=Host(`{{ domain_name }}`)"
|
||||
- "traefik.http.routers.{{ site_name }}_nginx-http.entrypoints=http"
|
||||
- "traefik.http.routers.{{ site_name }}_nginx-http.middlewares=https-redirect"
|
||||
- "traefik.http.routers.{{ site_name }}_nginx-https.rule=Host(`{{ domain_name }}`)"
|
||||
- "traefik.http.routers.{{ site_name }}_nginx-https.entrypoints=https"
|
||||
- "traefik.http.routers.{{ site_name }}_nginx-https.tls.certresolver=myresolver"
|
||||
- "traefik.http.services.{{ site_name }}_nginx-service.loadbalancer.server.port=80"
|
||||
depends_on:
|
||||
- {{ site_name }}_fpm
|
||||
resources:
|
||||
limits:
|
||||
cpus: '1'
|
||||
memory: 1024M
|
||||
dest: "/mnt/efs/{{ site_name }}/docker-compose-{{ site_name }}.yml"
|
||||
mode: '0644'
|
||||
vars:
|
||||
db_user: "{{ db_user }}"
|
||||
db_password: "{{ db_password }}"
|
||||
db_name: "{{ db_name }}"
|
||||
domain_name: "{{ domain_name }}"
|
||||
docker_name: "{{ site_name }}"
|
||||
Loading…
x
Reference in New Issue
Block a user