mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-09 03:37:37 +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_DOMAIN: "{{ domains | get_domain(application_id) }}"
|
||||||
MAGENTO_URL: "{{ domains | get_url(application_id, WEB_PROTOCOL) }}"
|
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)
|
## Search (OpenSearch)
|
||||||
MAGENTO_SEARCH_VERSION: "{{ applications | get_app_conf(application_id, 'docker.services.search.version') }}"
|
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') }}"
|
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:
|
include_role:
|
||||||
name: sys-util-csp-cert
|
name: sys-util-csp-cert
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user