mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-04-13 08:43:14 +02:00
Update to 2022-03-19 19:00
This commit is contained in:
parent
4bdecbaba3
commit
c4a7f11445
roles
lemonldap_ng
letsencrypt/templates
mysql_server
phpmyadmin/templates
@ -66,6 +66,9 @@ llng_db_user: lemonldapng
|
||||
llng_handler_db_user: lemonldapnghandler
|
||||
# llng_db_pass: s3cr3t.
|
||||
# llng_handler_db_pass
|
||||
# Should database connections use SSL
|
||||
llng_db_ssl: False
|
||||
llng_db_ssl_ca: /etc/pki/tls/cert.pem
|
||||
|
||||
# Number of llng-fastcgi-server or uwsgi workers. The upstream default is 7 but you might need to adjust to your load
|
||||
llng_workers: 6
|
||||
|
@ -24,7 +24,7 @@ localSessionStorageOptions = { \
|
||||
{% for type in llng_session_tables.keys() | list %}
|
||||
{{ type }}Storage = Apache::Session::Browseable::MySQL
|
||||
{{ type }}StorageOptions = { \
|
||||
'DataSource' => 'DBI:mysql:database={{ llng_db_name }};host={{ llng_db_server }};mysql_enable_utf8=1', \
|
||||
'DataSource' => 'DBI:mysql:database={{ llng_db_name }};host={{ llng_db_server }};mysql_enable_utf8=1{% if llng_db_ssl %};mysql_ssl=1;mysql_ssl_ca_file={{ llng_db_ssl_ca }};mysql_ssl_verify_server_cert=1{% endif +%}', \
|
||||
'UserName' => '{{ llng_handler_db_user }}', \
|
||||
'Password' => '{{ llng_handler_db_pass }}', \
|
||||
'TableName' => '{{ llng_session_tables[type].name }}', \
|
||||
@ -50,7 +50,7 @@ Password = {{ llng_api_pass }}
|
||||
proxyOptions = { timeout => 5 }
|
||||
{% elif llng_conf_backend == 'mysql' %}
|
||||
type = CDBI
|
||||
dbiChain = DBI:mysql:database={{ llng_db_name }};host={{ llng_db_server }}
|
||||
dbiChain = DBI:mysql:database={{ llng_db_name }};host={{ llng_db_server }};mysql_enable_utf8=1{% if llng_db_ssl %};mysql_ssl=1;mysql_ssl_ca_file={{ llng_db_ssl_ca }};mysql_ssl_verify_server_cert=1{% endif +%}
|
||||
dbiUser = {{ (llng_manager or llng_portal) | ternary(llng_db_user,llng_handler_db_user) }}
|
||||
dbiPassword = {{ (llng_manager or llng_portal) | ternary(llng_db_pass,llng_handler_db_pass) }}
|
||||
{% endif %}
|
||||
|
@ -52,3 +52,6 @@
|
||||
{% if pg_letsencrypt_cert is defined and pg_letsencrypt_cert is string and pg_letsencrypt_cert not in letsencrypt_certs | default([]) | map(attribute='common_name') %}
|
||||
{{ pg_letsencrypt_cert }}
|
||||
{% endif %}
|
||||
{% if mysql_letsencrypt_cert is defined and mysql_letsencrypt_cert is string and mysql_letsencrypt_cert not in letsencrypt_certs | default([]) | map(attribute='common_name') %}
|
||||
{{ mysql_letsencrypt_cert }}
|
||||
{% endif %}
|
||||
|
@ -13,6 +13,15 @@ mysql_open_files_limit: 8192
|
||||
mysql_max_allowed_packet: 32M
|
||||
mysql_max_connections: 300
|
||||
|
||||
# If mysql_letsencrypt_cert is defined, it'll turn SSL on and configure cert to use
|
||||
# mysql_letsencrypt_cert: mysql.example.org
|
||||
|
||||
# ELse, it's possible to configure SSL manually
|
||||
mysql_ssl: "{{ (mysql_letsencrypt_cert is defined) | ternary(True, False) }}"
|
||||
mysql_ssl_cert: /etc/my.ssl/server.crt
|
||||
mysql_ssl_key: /etc/my.ssl/server.key
|
||||
mysql_ssl_ca: /etc/pki/tls/cert.pem
|
||||
|
||||
# Engine can be either mariadb or mysql
|
||||
mysql_engine: mariadb
|
||||
|
||||
|
@ -21,6 +21,23 @@
|
||||
package: name={{ mysql_server_packages }}
|
||||
tags: mysql
|
||||
|
||||
- name: Create ssl directory
|
||||
file: path=/etc/my.ssl state=directory owner=root group=mysql mode=750
|
||||
tags: mysql
|
||||
|
||||
- name: Create default self-signed cert
|
||||
import_tasks: ../includes/create_selfsigned_cert.yml
|
||||
vars:
|
||||
- cert_path: /etc/my.ssl/server.crt
|
||||
- cert_key_path: /etc/my.ssl/server.key
|
||||
- cert_key_group: mysql
|
||||
- cert_key_mode: '640'
|
||||
tags: mysql
|
||||
|
||||
- name: Deploy dehydrated hook
|
||||
template: src=dehydrated_hook.j2 dest=/etc/dehydrated/hooks_deploy_cert.d/mysql mode=755
|
||||
tags: mysql
|
||||
|
||||
- name: Deploy backup scripts
|
||||
template: src={{ item }}-backup.j2 dest=/etc/backup/{{ item }}.d/mysql mode=755
|
||||
loop:
|
||||
|
20
roles/mysql_server/templates/dehydrated_hook.j2
Normal file
20
roles/mysql_server/templates/dehydrated_hook.j2
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
{% if mysql_letsencrypt_cert is defined %}
|
||||
|
||||
if [ $1 == "{{ pg_letsencrypt_cert }}" ]; then
|
||||
cp /var/lib/dehydrated/certificates/certs/{{ mysql_letsencrypt_cert }}/fullchain.pem /etc/my.ssl/server.crt
|
||||
cp /var/lib/dehydrated/certificates/certs/{{ mysql_letsencrypt_cert }}/privkey.pem /etc/my.ssl/server.key
|
||||
chown root:mysql /etc/my.ssl/server.key
|
||||
chown root:root /etc/my.ssl/server.crt
|
||||
chmod 640 /etc/my.ssl/server.key
|
||||
chmod 644 /etc/my.ssl/server.crt
|
||||
mysql -e 'FLUSH SSL;'
|
||||
fi
|
||||
|
||||
{% else %}
|
||||
|
||||
# No Let's Encrypt cert configured, nothing to do
|
||||
exit 0
|
||||
|
||||
{% endif %}
|
@ -35,6 +35,12 @@ max_allowed_packet={{ mysql_max_allowed_packet | default('16M') }}
|
||||
open_files_limit={{ mysql_open_files_limit | default('8192') }}
|
||||
max_connections={{ mysql_max_connections | default('300') }}
|
||||
|
||||
{% if mysql_ssl %}
|
||||
ssl_cert={{ mysql_ssl_cert }}
|
||||
ssl_key={{ mysql_ssl_key }}
|
||||
ssl_ca={{ mysql_ssl_ca }}
|
||||
{% endif %}
|
||||
|
||||
[mysqld_safe]
|
||||
{% if mysql_engine == 'mysql' %}
|
||||
log-error=/var/log/mysql/mysqld.log
|
||||
|
@ -22,6 +22,15 @@ $cfg['Servers'][$i]['port'] = '{{ server.port }}';
|
||||
{% endif %}
|
||||
$cfg['Servers'][$i]['compress'] = false;
|
||||
$cfg['Servers'][$i]['AllowNoPassword'] = false;
|
||||
{% if server.ssl | default(False) %}
|
||||
$cfg['Servers'][$i]['ssl'] = true;
|
||||
{% if server.ssl_ca | default('/etc/pki/tls/cert.pem') != False %}
|
||||
$cfg['Servers'][$i]['ssl_ca'] = '{{ server.ssl_ca | default('/etc/pki/tls/cert.pem') }}';
|
||||
{% endif %}
|
||||
{% if server.ssl_verify | default(True) == False %}
|
||||
$cfg['Servers'][$i]['ssl_verify'] = false;
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user