Update to 2024-01-08 11:00

This commit is contained in:
Daniel Berteaud 2024-01-08 11:00:40 +01:00
parent 1c9964d5d2
commit 5eec0682a0
6 changed files with 83 additions and 35 deletions

View File

@ -19,6 +19,11 @@ llng_manager_vhost: sso-manager.{{ ansible_domain }}
# If llng_portal and llng_manager are both set to False (only the handler is deployed) # If llng_portal and llng_manager are both set to False (only the handler is deployed)
# which conf backend to use. can be api or mysql # which conf backend to use. can be api or mysql
llng_conf_backend: api llng_conf_backend: api
llng_sessions_backend: "{{ llng_conf_backend }}"
# If using the REST API as backend, you must configure the URL endpoint
# llng_api_conf_url: https://auth.example.org/index.psgi/config
# llng_api_sessions_url: https://auth.example.org/index.psgi/sessions/global
# List of IP allowed to access SOAP endpoints # List of IP allowed to access SOAP endpoints
# Empty or undefined disable api endpoints # Empty or undefined disable api endpoints
@ -39,6 +44,8 @@ llng_reload_use_proxy: False
# If defined, access to api endpoints will require basic auth. # If defined, access to api endpoints will require basic auth.
llng_api_user: lemonldapapi llng_api_user: lemonldapapi
# llng_api_pass: sEcr3t.P@ssw0rd # llng_api_pass: sEcr3t.P@ssw0rd
# If basic auth is used to access the API, you must set the realm
llng_api_realm: Lemonldap::NG API
# SSL for vhosts # SSL for vhosts
# llng_portal_ssl: # llng_portal_ssl:

View File

@ -9,22 +9,37 @@
tags: web tags: web
- name: Install common packages - name: Install common packages
yum: name={{ llng_common_packages }} package: name={{ llng_common_packages }}
tags: web tags: web
- name: Install Lemonldap::NG handler - name: Install Lemonldap::NG handler
yum: name=lemonldap-ng-handler package: name=lemonldap-ng-handler
when: llng_handler == True when: llng_handler
tags: web
- name: Remove Lemonldap::NG handler
package: name=lemonldap-ng-handler state=absent
when: not llng_handler
tags: web tags: web
- name: Install Lemonldap::NG portal - name: Install Lemonldap::NG portal
yum: name={{ llng_portal_packages }} package: name={{ llng_portal_packages }}
when: llng_portal == True when: llng_portal
tags: web
- name: Remove Lemonldap::NG portal
package: name=lemonldap-ng-portal state=absent
when: not llng_portal
tags: web tags: web
- name: Install Lemonldap::NG manager - name: Install Lemonldap::NG manager
yum: name={{ llng_manager_packages }} package: name={{ llng_manager_packages }}
when: llng_manager == True when: llng_manager
tags: web
- name: Remove Lemonldap::NG manager
package: name=lemonldap-ng-manager state=absent
when: not llng_manager
tags: web tags: web
- name: Create directories - name: Create directories
@ -36,11 +51,6 @@
- include_tasks: "{{ llng_server }}.yml" - include_tasks: "{{ llng_server }}.yml"
tags: always tags: always
- name: Deploy manager's nginx configuration
template: src=nginx_manager.conf.j2 dest=/etc/nginx/ansible_conf.d/23-llng_manager.conf
when: llng_manager == True and llng_server == 'nginx'
notify: reload nginx
- include_tasks: mysql.yml - include_tasks: mysql.yml
when: llng_conf_backend == 'mysql' when: llng_conf_backend == 'mysql'
tags: always tags: always
@ -56,7 +66,7 @@
- name: Copy applications logo - name: Copy applications logo
synchronize: src=logos/ dest=/usr/share/lemonldap-ng/portal/htdocs/static/common/apps/ synchronize: src=logos/ dest=/usr/share/lemonldap-ng/portal/htdocs/static/common/apps/
when: llng_portal == True when: llng_portal
tags: web tags: web
- name: Remove old custom logo dir - name: Remove old custom logo dir
@ -121,7 +131,7 @@
mode: 0640 mode: 0640
when: when:
- llng_api_pass is defined - llng_api_pass is defined
- llng_portal == True - llng_portal
tags: web tags: web
- name: Add a cron task to renew OIDC keys - name: Add a cron task to renew OIDC keys

View File

@ -40,19 +40,39 @@
dest: /etc/nginx/ansible_location.d/10-llng_handler.conf dest: /etc/nginx/ansible_location.d/10-llng_handler.conf
- src: llng_headers.inc.j2 - src: llng_headers.inc.j2
dest: /etc/nginx/ansible_conf.d/llng_headers.inc dest: /etc/nginx/ansible_conf.d/llng_headers.inc
when: llng_handler == True when: llng_handler
notify: reload nginx
tags: web
- name: Remove handler's nginx configuration
file: path={{ item }} state=absent
loop:
- /etc/nginx/ansible_location.d/10-llng_handler.conf
- /etc/nginx/ansible_conf.d/llng_headers.inc
when: not llng_handler
notify: reload nginx notify: reload nginx
tags: web tags: web
- name: Deploy portal's nginx configuration - name: Deploy portal's nginx configuration
template: src=nginx_portal.conf.j2 dest=/etc/nginx/ansible_conf.d/22-llng_portal.conf template: src=nginx_portal.conf.j2 dest=/etc/nginx/ansible_conf.d/22-llng_portal.conf
when: llng_portal == True when: llng_portal
notify: reload nginx
tags: web
- name: Remove portal's nginx configuration
file: path=/etc/nginx/ansible_conf.d/22-llng_portal.conf state=absent
when: not llng_portal
notify: reload nginx notify: reload nginx
tags: web tags: web
- name: Deploy manager's nginx configuration - name: Deploy manager's nginx configuration
template: src=nginx_manager.conf.j2 dest=/etc/nginx/ansible_conf.d/23-llng_manager.conf template: src=nginx_manager.conf.j2 dest=/etc/nginx/ansible_conf.d/23-llng_manager.conf
when: llng_manager == True when: llng_manager and llng_server == 'nginx'
notify: reload nginx notify: reload nginx
tags: web tags: web
- name: Remove manager's nginx configuration
file: path=/etc/nginx/ansible_conf.d/23-llng_manager.conf state=absent
when: not llng_manager and llng_server == 'nginx'
notify: reload nginx
tags: web

View File

@ -4,23 +4,14 @@
logLevel = notice logLevel = notice
logger = Lemonldap::NG::Common::Logger::Syslog logger = Lemonldap::NG::Common::Logger::Syslog
userLogger = Lemonldap::NG::Common::Logger::Syslog userLogger = Lemonldap::NG::Common::Logger::Syslog
{% if llng_conf_backend == 'file' %} {% if llng_sessions_backend == 'file' %}
globalStorage = Apache::Session::File globalStorage = Apache::Session::File
globalStorageOptions = { \ globalStorageOptions = { \
'Directory' => '/var/lib/lemonldap-ng/sessions/', \ 'Directory' => '/var/lib/lemonldap-ng/sessions/', \
'LockDirectory' => '/var/lib/lemonldap-ng/sessions/lock/', \ 'LockDirectory' => '/var/lib/lemonldap-ng/sessions/lock/', \
'generateModule' => 'Lemonldap::NG::Common::Apache::Session::Generate::SHA256' \ 'generateModule' => 'Lemonldap::NG::Common::Apache::Session::Generate::SHA256' \
} }
{% endif %} {% elif llng_sessions_backend == 'mysql' %}
localSessionStorage = Cache::FileCache
localSessionStorageOptions = { \
'namespace' => 'sessions', \
'default_expires_in' => '{{ llng_session_cache }}', \
'directory_umask' => '007', \
'cache_root' => '/var/cache/lemonldap-ng', \
'cache_depth' => 3 \
}
{% if llng_conf_backend == 'mysql' %}
{% for type in llng_session_tables.keys() | list %} {% for type in llng_session_tables.keys() | list %}
{{ type }}Storage = Apache::Session::Browseable::MySQL {{ type }}Storage = Apache::Session::Browseable::MySQL
{{ type }}StorageOptions = { \ {{ type }}StorageOptions = { \
@ -34,7 +25,26 @@ localSessionStorageOptions = { \
'generateModule' => 'Lemonldap::NG::Common::Apache::Session::Generate::SHA256' \ 'generateModule' => 'Lemonldap::NG::Common::Apache::Session::Generate::SHA256' \
} }
{% endfor %} {% endfor %}
{% elif llng_sessions_backend == 'api' %}
globalStorage = Lemonldap::NG::Common::Apache::Session::REST
globalStorageOptions = { \
'baseUrl' => "{{ llng_api_sessions_url }}", \
{% if llng_api_user is defined and llng_api_pass is defined %}
'user' => "{{ llng_api_user }}", \
'password' => "{{ llng_api_pass }}", \
'realm' => "{{ llng_api_realm }}" \
{% endif %} {% endif %}
}
{% endif %}
localSessionStorage = Cache::FileCache
localSessionStorageOptions = { \
'namespace' => 'sessions', \
'default_expires_in' => '{{ llng_session_cache }}', \
'directory_umask' => '007', \
'cache_root' => '/var/cache/lemonldap-ng', \
'cache_depth' => 3 \
}
[configuration] [configuration]
{% if llng_conf_backend == 'file' %} {% if llng_conf_backend == 'file' %}
@ -42,10 +52,11 @@ type = File
dirName = /var/lib/lemonldap-ng/conf dirName = /var/lib/lemonldap-ng/conf
{% elif llng_conf_backend == 'api' %} {% elif llng_conf_backend == 'api' %}
type = REST type = REST
baseUrl = {{ llng_api_uri }} baseUrl = {{ llng_api_conf_url }}
{% if llng_api_user is defined and llng_api_pass is defined %} {% if llng_api_user is defined and llng_api_pass is defined %}
User = {{ llng_api_user }} user = {{ llng_api_user }}
Password = {{ llng_api_pass }} password = {{ llng_api_pass }}
realm = {{ llng_api_realm }}
{% endif %} {% endif %}
proxyOptions = { timeout => 5 } proxyOptions = { timeout => 5 }
{% elif llng_conf_backend == 'mysql' %} {% elif llng_conf_backend == 'mysql' %}

View File

@ -12,7 +12,7 @@ odoo_packages:
#- nodejs-less #- nodejs-less
- tar - tar
- zstd - zstd
- postgresql15 # for pg_dump - postgresql16 # for pg_dump
- git - git
- acl - acl

View File

@ -1,10 +1,10 @@
module seadrive 1.0; module seadrive 1.1;
require { require {
type init_t; type init_t;
type fusermount_exec_t; type fusermount_exec_t;
class file execute; class file { open read execute };
} }
#============= init_t ============== #============= init_t ==============
allow init_t fusermount_exec_t:file execute; allow init_t fusermount_exec_t:file { open read execute };