mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-08 11:17:17 +02:00
Compare commits
3 Commits
00c99e58e9
...
d25da76117
Author | SHA1 | Date | |
---|---|---|---|
d25da76117 | |||
d48a1b3c0a | |||
2839d2e1a4 |
2
roles/web-app-magento/TODO.md
Normal file
2
roles/web-app-magento/TODO.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# To-dos
|
||||
- Finish implementation
|
35
roles/web-app-magento/tasks/02_runtime_conf.yml
Normal file
35
roles/web-app-magento/tasks/02_runtime_conf.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
- name: Assert required vars (no defaults anywhere)
|
||||
assert:
|
||||
that:
|
||||
- MAGENTO_DOMAIN is defined and MAGENTO_DOMAIN | length > 0
|
||||
- MAGENTO_NGINX_PORT is defined
|
||||
- MAGENTO_PHP_HOST is defined and MAGENTO_PHP_HOST | length > 0
|
||||
- MAGENTO_PHP_PORT is defined
|
||||
- docker_compose.directories.config is defined and docker_compose.directories.config | length > 0
|
||||
fail_msg: "Missing one of: MAGENTO_DOMAIN, MAGENTO_NGINX_PORT, MAGENTO_PHP_HOST, MAGENTO_PHP_PORT, docker_compose.directories.config"
|
||||
|
||||
- name: Ensure subdirs exist (config root exists already)
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
loop:
|
||||
- "{{ MAGENTO_NGINX_DIR }}"
|
||||
- "{{ MAGENTO_PHP_DIR }}"
|
||||
|
||||
- name: Render nginx main config (no TLS; single source of truth)
|
||||
template:
|
||||
src: "nginx.conf.j2"
|
||||
dest: "{{ MAGENTO_NGINX_CONF_PATH }}"
|
||||
mode: '0644'
|
||||
force: true
|
||||
notify: docker compose up
|
||||
|
||||
- name: Render php-fpm pool override (TCP listen; clear_env=no)
|
||||
template:
|
||||
src: "php-fpm-zz-docker.conf.j2"
|
||||
dest: "{{ MAGENTO_PHP_ZZ_CONF_PATH }}"
|
||||
mode: '0644'
|
||||
force: true
|
||||
notify: docker compose up
|
47
roles/web-app-magento/templates/nginx.conf.j2
Normal file
47
roles/web-app-magento/templates/nginx.conf.j2
Normal file
@@ -0,0 +1,47 @@
|
||||
worker_processes auto;
|
||||
|
||||
events { worker_connections 1024; }
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
sendfile on;
|
||||
keepalive_timeout 65;
|
||||
|
||||
access_log /dev/stdout;
|
||||
error_log /dev/stderr;
|
||||
|
||||
upstream fastcgi_backend {
|
||||
server {{ MAGENTO_PHP_HOST }}:{{ MAGENTO_PHP_PORT }};
|
||||
}
|
||||
|
||||
server {
|
||||
listen {{ MAGENTO_NGINX_PORT }};
|
||||
server_name {{ MAGENTO_DOMAIN }};
|
||||
|
||||
set $MAGE_ROOT /var/www/html;
|
||||
root $MAGE_ROOT/pub;
|
||||
index index.php;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
include fastcgi_params;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_pass fastcgi_backend;
|
||||
fastcgi_read_timeout 300;
|
||||
fastcgi_connect_timeout 5s;
|
||||
}
|
||||
|
||||
location ~* ^/(app|var|lib|dev|update|vendor|node_modules|\.git|\.svn)/ { deny all; }
|
||||
location ~ /\. { deny all; }
|
||||
|
||||
error_page 404 403 = /errors/404.php;
|
||||
}
|
||||
}
|
15
roles/web-app-magento/templates/php-fpm-zz-docker.conf.j2
Normal file
15
roles/web-app-magento/templates/php-fpm-zz-docker.conf.j2
Normal file
@@ -0,0 +1,15 @@
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
|
||||
[www]
|
||||
listen = 0.0.0.0:{{ MAGENTO_PHP_PORT }}
|
||||
clear_env = no
|
||||
|
||||
pm = dynamic
|
||||
pm.max_children = 10
|
||||
pm.start_servers = 2
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 5
|
||||
|
||||
access.log = /proc/self/fd/2
|
||||
catch_workers_output = yes
|
@@ -12,6 +12,19 @@ MAGENTO_USER: "app"
|
||||
MAGENTO_DOMAIN: "{{ domains | get_domain(application_id) }}"
|
||||
MAGENTO_URL: "{{ domains | get_url(application_id, WEB_PROTOCOL) }}"
|
||||
|
||||
## Runtime config paths (used by 02_runtime_conf.yml)
|
||||
# Root config directory comes from the docker_compose subsystem (already asserted)
|
||||
MAGENTO_NGINX_DIR: "{{ [ docker_compose.directories.config, 'nginx' ] | path_join }}"
|
||||
MAGENTO_PHP_DIR: "{{ [ docker_compose.directories.config, 'php' ] | path_join }}"
|
||||
MAGENTO_NGINX_CONF_PATH: "{{ [ MAGENTO_NGINX_DIR, 'nginx.conf' ] | path_join }}"
|
||||
MAGENTO_PHP_ZZ_CONF_PATH: "{{ [ MAGENTO_PHP_DIR, 'php-fpm-zz-docker.conf' ] | path_join }}"
|
||||
|
||||
## Intra-container wiring (nginx -> php-fpm) and listen port
|
||||
# These values mirror the docker-compose template (environment variables and exposed port)
|
||||
MAGENTO_PHP_HOST: "php"
|
||||
MAGENTO_PHP_PORT: 9000
|
||||
MAGENTO_NGINX_PORT: 8000
|
||||
|
||||
## Search (OpenSearch)
|
||||
MAGENTO_SEARCH_VERSION: "{{ applications | get_app_conf(application_id, 'docker.services.search.version') }}"
|
||||
MAGENTO_SEARCH_IMAGE: "{{ applications | get_app_conf(application_id, 'docker.services.search.image') }}"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
- name: "include role for {{ application_id }} to receive certs & do modification routines for '{{ domain }}:{{ port }}'"
|
||||
- name: "include role for {{ application_id }} to receive certs & do modification routines for '{{ NEXTCLOUD_DOMAIN }}:{{ NEXTCLOUD_PORT }}'"
|
||||
include_role:
|
||||
name: sys-util-csp-cert
|
||||
|
||||
|
Reference in New Issue
Block a user