Compare commits
24 Commits
Author | SHA1 | Date |
---|---|---|
|
48d7ecb348 | |
|
e95bb92fc7 | |
|
bf9943994a | |
|
8318ecf7be | |
|
ffa5177bec | |
|
9c573014c1 | |
|
a528558a57 | |
|
883816a354 | |
|
0c52fcc5aa | |
|
3d5462191a | |
|
ba93602f5f | |
|
58e18ae12f | |
|
380fa30fe5 | |
|
4bb4897e44 | |
|
1178672916 | |
|
ed301fb05e | |
|
ca136f40b5 | |
|
9d466e4abc | |
|
5b7753778d | |
|
819a8b69e1 | |
|
fb624c54ca | |
|
904f420092 | |
|
0458ae2177 | |
|
76e32ed1a1 |
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>ansible-role-epas-client-timbrature</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"ansible.python.interpreterPath": "/opt/local/bin/python3.10"
|
||||||
|
}
|
10
README.md
10
README.md
|
@ -11,10 +11,7 @@ The most important variables are listed below:
|
||||||
``` yaml
|
``` yaml
|
||||||
epas_client_timbrature_stack_name: 'epas_c_timbrature'
|
epas_client_timbrature_stack_name: 'epas_c_timbrature'
|
||||||
epas_client_timbrature_service_name: 'epas_timbrature'
|
epas_client_timbrature_service_name: 'epas_timbrature'
|
||||||
epas_client_timbrature_docker_registry: 'docker-registry.services.iit.cnr.it'
|
epas_client_timbrature_docker_client_timbrature_image: 'consiglionazionalericerche/epas-client:area-cnr-pisa'
|
||||||
epas_client_timbrature_docker_registry_user: 'epas.user'
|
|
||||||
epas_client_timbrature_docker_registry_pwd: 'use a vault file'
|
|
||||||
epas_client_timbrature_docker_client_timbrature_image: '{{ epas_client_timbrature_docker_registry }}/epas/area-pisa-client:stable'
|
|
||||||
epas_client_timbrature_docker_client_timbrature_data_node: 'localhost'
|
epas_client_timbrature_docker_client_timbrature_data_node: 'localhost'
|
||||||
epas_client_timbrature_data_volume: 'epas_dati_timbrature'
|
epas_client_timbrature_data_volume: 'epas_dati_timbrature'
|
||||||
epas_client_timbrature_node_constraints: 'node.labels.epas_client == timbrature'
|
epas_client_timbrature_node_constraints: 'node.labels.epas_client == timbrature'
|
||||||
|
@ -22,6 +19,7 @@ epas_client_timbrature_behind_haproxy: False
|
||||||
epas_client_timbrature_haproxy_public_net: 'haproxy-public'
|
epas_client_timbrature_haproxy_public_net: 'haproxy-public'
|
||||||
epas_client_timbrature_compose_dir: '/srv/epas_client_timbrature'
|
epas_client_timbrature_compose_dir: '/srv/epas_client_timbrature'
|
||||||
|
|
||||||
|
epas_client_timbrature_stampings_server_protocol: 'ftp'
|
||||||
epas_client_timbrature_ftp_server_name: '127.0.0.1'
|
epas_client_timbrature_ftp_server_name: '127.0.0.1'
|
||||||
epas_client_timbrature_ftp_username: 'anonymous'
|
epas_client_timbrature_ftp_username: 'anonymous'
|
||||||
#epas_client_timbrature_ftp_pwd: 'use a vault file'
|
#epas_client_timbrature_ftp_pwd: 'use a vault file'
|
||||||
|
@ -33,6 +31,10 @@ epas_client_timbrature_epas_server_port: 443
|
||||||
epas_client_timbrature_user: 'user'
|
epas_client_timbrature_user: 'user'
|
||||||
#epas_client_timbrature_password: 'use a vault file'
|
#epas_client_timbrature_password: 'use a vault file'
|
||||||
epas_client_timbrature_loglevel: 'INFO'
|
epas_client_timbrature_loglevel: 'INFO'
|
||||||
|
epas_client_timbrature_fix_causale_pausa_pranzo: 'False'
|
||||||
|
epas_client_timbrature_causale_pausa_pranzo_min_hour: '12'
|
||||||
|
epas_client_timbrature_causale_pausa_pranzo_max_hour: '15'
|
||||||
|
epas_client_timbrature_send_all_stampings_everytime: 'True'
|
||||||
```
|
```
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
|
|
|
@ -1,17 +1,25 @@
|
||||||
---
|
---
|
||||||
epas_client_timbrature_stack_name: 'epas_c_timbrature'
|
epas_client_timbrature_stack_name: 'epas_c_timbrature'
|
||||||
epas_client_timbrature_service_name: 'epas_timbrature'
|
epas_client_timbrature_service_name: 'epas_timbrature'
|
||||||
epas_client_timbrature_docker_registry: 'docker-registry.services.iit.cnr.it'
|
#epas_client_timbrature_docker_registry: 'docker-registry.services.iit.cnr.it'
|
||||||
epas_client_timbrature_docker_registry_user: 'epas.user'
|
#epas_client_timbrature_docker_registry_user: 'epas.user'
|
||||||
epas_client_timbrature_docker_registry_pwd: 'use a vault file'
|
#epas_client_timbrature_docker_registry_pwd: 'use a vault file'
|
||||||
epas_client_timbrature_docker_client_timbrature_image: '{{ epas_client_timbrature_docker_registry }}/epas/area-pisa-client:latest'
|
#epas_client_timbrature_docker_client_timbrature_image: '{{ epas_client_timbrature_docker_registry }}/epas/area-pisa-client:latest'
|
||||||
|
epas_client_timbrature_docker_registry: ''
|
||||||
|
epas_client_timbrature_docker_registry_user: ''
|
||||||
|
epas_client_timbrature_docker_registry_pwd: ''
|
||||||
|
epas_client_timbrature_docker_client_timbrature_image: 'consiglionazionalericerche/epas-client:area-cnr-pisa'
|
||||||
epas_client_timbrature_docker_client_timbrature_data_node: 'localhost'
|
epas_client_timbrature_docker_client_timbrature_data_node: 'localhost'
|
||||||
|
epas_client_timbrature_data_remote_volume: false
|
||||||
|
epas_client_timbrature_data_remote_volume_opts: "nfsvers=4,addr=127.0.0.1,rw"
|
||||||
|
epas_client_timbrature_data_remote_volume_dev: ":/mnt"
|
||||||
epas_client_timbrature_data_volume: 'epas_dati_timbrature'
|
epas_client_timbrature_data_volume: 'epas_dati_timbrature'
|
||||||
epas_client_timbrature_node_constraints: 'node.labels.epas_client == timbrature'
|
epas_client_timbrature_node_constraints: 'node.labels.epas_client == timbrature'
|
||||||
epas_client_timbrature_behind_haproxy: False
|
epas_client_timbrature_behind_haproxy: False
|
||||||
epas_client_timbrature_haproxy_public_net: 'haproxy-public'
|
epas_client_timbrature_haproxy_public_net: 'haproxy-public'
|
||||||
epas_client_timbrature_compose_dir: '/srv/epas_client_timbrature'
|
epas_client_timbrature_compose_dir: '/srv/epas_client_timbrature'
|
||||||
|
|
||||||
|
epas_client_timbrature_stampings_server_protocol: 'ftp'
|
||||||
epas_client_timbrature_ftp_server_name: '127.0.0.1'
|
epas_client_timbrature_ftp_server_name: '127.0.0.1'
|
||||||
epas_client_timbrature_ftp_username: 'anonymous'
|
epas_client_timbrature_ftp_username: 'anonymous'
|
||||||
#epas_client_timbrature_ftp_pwd: 'use a vault file'
|
#epas_client_timbrature_ftp_pwd: 'use a vault file'
|
||||||
|
@ -23,3 +31,13 @@ epas_client_timbrature_epas_server_port: 443
|
||||||
epas_client_timbrature_user: 'user'
|
epas_client_timbrature_user: 'user'
|
||||||
#epas_client_timbrature_password: 'use a vault file'
|
#epas_client_timbrature_password: 'use a vault file'
|
||||||
epas_client_timbrature_loglevel: 'INFO'
|
epas_client_timbrature_loglevel: 'INFO'
|
||||||
|
epas_client_timbrature_regex_stamping: '^(?P<operazione>\\\d{2})(?P<lettore>\\\d{2})[!|\\\s](?P<causale>\\\d{4})\\\w(?P<matricolaFirma>[\\\w,\\\s,.]{17})(?P<anno>\\\d\\\d)(?P<mese>\\\d\\\d)(?P<giorno>\\\d\\\d)(?P<ora>\\\d\\\d)(?P<minuti>\\\d\\\d)$'
|
||||||
|
epas_client_timbrature_offset_anno_badge: '1980'
|
||||||
|
epas_client_timbrature_fix_causale_pausa_pranzo: 'False'
|
||||||
|
epas_client_timbrature_mapping_causali_client_server: "" # Default '{\'0000\': None, \'2345\': None,\'0001\':\'motiviDiServizio\'}'
|
||||||
|
epas_client_timbrature_causale_pausa_pranzo_min_hour: '12'
|
||||||
|
epas_client_timbrature_causale_pausa_pranzo_max_hour: '15'
|
||||||
|
epas_client_timbrature_send_all_stampings_everytime: 'True'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,11 @@
|
||||||
galaxy_info:
|
galaxy_info:
|
||||||
author: Andrea Dell'Amico
|
author: Andrea Dell'Amico
|
||||||
description: Systems Architect
|
namespace: adellam
|
||||||
|
role_name: epas_client_timbrature
|
||||||
|
description: Role that installs the EPAS client that collects data from the badge readers
|
||||||
company: ISTI-CNR
|
company: ISTI-CNR
|
||||||
|
|
||||||
issue_tracker_url: https://support.d4science.org/projects/d4science-operation
|
|
||||||
|
|
||||||
license: EUPL 1.2+
|
license: EUPL 1.2+
|
||||||
|
min_ansible_version: "2.9"
|
||||||
min_ansible_version: 2.8
|
|
||||||
|
|
||||||
# To view available platforms and versions (or releases), visit:
|
|
||||||
# https://galaxy.ansible.com/api/v1/platforms/
|
|
||||||
#
|
|
||||||
platforms:
|
|
||||||
- name: Ubuntu
|
|
||||||
versions:
|
|
||||||
- bionic
|
|
||||||
- name: EL
|
|
||||||
versions:
|
|
||||||
- 7
|
|
||||||
|
|
||||||
galaxy_tags:
|
galaxy_tags:
|
||||||
- epas
|
- epas
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
labels:
|
labels:
|
||||||
epas_client: 'timbrature'
|
epas_client: 'timbrature'
|
||||||
labels_state: 'merge'
|
labels_state: 'merge'
|
||||||
|
when: not epas_client_timbrature_data_remote_volume
|
||||||
|
|
||||||
- name: Create the directory where the compose file will be placed
|
- name: Create the directory where the compose file will be placed
|
||||||
file: dest={{ epas_client_timbrature_compose_dir }} state=directory owner=root group=root mode=0750
|
file: dest={{ epas_client_timbrature_compose_dir }} state=directory owner=root group=root mode=0750
|
||||||
|
@ -14,8 +15,10 @@
|
||||||
- name: Install the docker compose file
|
- name: Install the docker compose file
|
||||||
template: src=epas-client-timbrature-docker-compose.yml.j2 dest={{ epas_client_timbrature_compose_dir }}/docker-epas-client-timbrature-stack.yml owner=root group=root mode='0400'
|
template: src=epas-client-timbrature-docker-compose.yml.j2 dest={{ epas_client_timbrature_compose_dir }}/docker-epas-client-timbrature-stack.yml owner=root group=root mode='0400'
|
||||||
|
|
||||||
- name: Login into the IIT registry
|
# If registry not is docker hub
|
||||||
shell: docker login -u {{ epas_client_timbrature_docker_registry_user }} -p {{ epas_client_timbrature_docker_registry_pwd }} {{ epas_client_timbrature_docker_registry }}
|
#
|
||||||
|
#- name: Login into the IIT registry
|
||||||
|
# shell: docker login -u {{ epas_client_timbrature_docker_registry_user }} -p {{ epas_client_timbrature_docker_registry_pwd }} {{ epas_client_timbrature_docker_registry }}
|
||||||
|
|
||||||
- name: Start the ePAS stack
|
- name: Start the ePAS stack
|
||||||
docker_stack:
|
docker_stack:
|
||||||
|
|
|
@ -8,6 +8,14 @@ networks:
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
{{ epas_client_timbrature_data_volume }}:
|
{{ epas_client_timbrature_data_volume }}:
|
||||||
|
{% if epas_client_timbrature_data_remote_volume %}
|
||||||
|
driver: local
|
||||||
|
driver_opts:
|
||||||
|
type: nfs4
|
||||||
|
o: "{{ epas_client_timbrature_data_remote_volume_opts }}"
|
||||||
|
device: "{{ epas_client_timbrature_data_remote_volume_dev }}"
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
{{ epas_client_timbrature_service_name }}:
|
{{ epas_client_timbrature_service_name }}:
|
||||||
|
@ -21,6 +29,7 @@ services:
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
environment:
|
environment:
|
||||||
|
- STAMPINGS_SERVER_PROTOCOL={{ epas_client_timbrature_stampings_server_protocol }} # Protocollo per prelevare le timbrature. Possibili valori: smartclock, local, ftp, sftp
|
||||||
- FTP_SERVER_NAME={{ epas_client_timbrature_ftp_server_name }} # Obbligatorio
|
- FTP_SERVER_NAME={{ epas_client_timbrature_ftp_server_name }} # Obbligatorio
|
||||||
- FTP_USERNAME={{ epas_client_timbrature_ftp_username }} # Obbligatorio
|
- FTP_USERNAME={{ epas_client_timbrature_ftp_username }} # Obbligatorio
|
||||||
- FTP_PASSWORD={{ epas_client_timbrature_ftp_pwd }} # Obbligatorio
|
- FTP_PASSWORD={{ epas_client_timbrature_ftp_pwd }} # Obbligatorio
|
||||||
|
@ -32,6 +41,14 @@ services:
|
||||||
- EPAS_CLIENT_USER={{ epas_client_timbrature_user }} # utente configurato in epas dentro sorgenti timbrature
|
- EPAS_CLIENT_USER={{ epas_client_timbrature_user }} # utente configurato in epas dentro sorgenti timbrature
|
||||||
- EPAS_CLIENT_PASSWORD={{ epas_client_timbrature_password }}
|
- EPAS_CLIENT_PASSWORD={{ epas_client_timbrature_password }}
|
||||||
- LOG_LEVEL={{ epas_client_timbrature_loglevel }} # Default: INFO
|
- LOG_LEVEL={{ epas_client_timbrature_loglevel }} # Default: INFO
|
||||||
|
- REGEX_STAMPING={{ epas_client_timbrature_regex_stamping }}
|
||||||
|
- OFFSET_ANNO_BADGE={{ epas_client_timbrature_offset_anno_badge }}
|
||||||
|
- FIX_CAUSALE_PAUSA_PRANZO={{ epas_client_timbrature_fix_causale_pausa_pranzo}}
|
||||||
|
- "MAPPING_CAUSALI_CLIENT_SERVER={% raw %}{{% endraw %}{{ epas_client_timbrature_mapping_causali_client_server }}{% raw %}}{% endraw %}"
|
||||||
|
|
||||||
|
- CAUSALE_PAUSA_PRANZO_MIN_HOUR={{ epas_client_timbrature_causale_pausa_pranzo_min_hour }} # Default: 12
|
||||||
|
- CAUSALE_PAUSA_PRANZO_MAX_HOUR={{ epas_client_timbrature_causale_pausa_pranzo_max_hour }} # Default: 15
|
||||||
|
- SEND_ALL_STAMPINGS_EVERYTIME={{ epas_client_timbrature_send_all_stampings_everytime }}
|
||||||
#- CRON=*/30 7-22 * * * # Default: ogni mezz'ora tra le 7 e le 22. utilizzare il formato richiesto dal crontab. Riferimenti -> https://en.wikipedia.org/wiki/Cron#Examples
|
#- CRON=*/30 7-22 * * * # Default: ogni mezz'ora tra le 7 e le 22. utilizzare il formato richiesto dal crontab. Riferimenti -> https://en.wikipedia.org/wiki/Cron#Examples
|
||||||
deploy:
|
deploy:
|
||||||
mode: replicated
|
mode: replicated
|
||||||
|
@ -42,7 +59,11 @@ services:
|
||||||
placement:
|
placement:
|
||||||
constraints:
|
constraints:
|
||||||
- node.role == worker
|
- node.role == worker
|
||||||
|
{% if not epas_client_timbrature_data_remote_volume %}
|
||||||
- {{ epas_client_timbrature_node_constraints }}
|
- {{ epas_client_timbrature_node_constraints }}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
delay: 5s
|
delay: 5s
|
||||||
|
|
Loading…
Reference in New Issue