[INFO] Créer le dépôt #1
45
README.md
45
README.md
@ -1,3 +1,44 @@
|
|||||||
# role_modele
|
# role_radicale
|
||||||
|
|
||||||
Modèle
|
Rôle de déploiement de radicale.
|
||||||
|
|
||||||
|
## Dépendance
|
||||||
|
|
||||||
|
Le rôle *users* est requis afin que l'utilisateur `radicale` exécutant le service soit créé.
|
||||||
|
|
||||||
|
## Variables
|
||||||
|
|
||||||
|
### radicale_root_path
|
||||||
|
|
||||||
|
Emplacement pour la configuration et les données.
|
||||||
|
|
||||||
|
*<span style="text-decoration: underline">Valeur par défaut:</span> `/srv/radicale`*
|
||||||
|
|
||||||
|
### radicale_auth_type
|
||||||
|
|
||||||
|
Type d'authentification à radicale.
|
||||||
|
|
||||||
|
*<span style="text-decoration: underline">Valeur par défaut:</span> aucune*
|
||||||
|
|
||||||
|
## Exemple d'utilisation
|
||||||
|
|
||||||
|
### inventory.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
|
||||||
|
all:
|
||||||
|
hosts:
|
||||||
|
host1.ykn.local:
|
||||||
|
```
|
||||||
|
|
||||||
|
### playbook.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Déployer radicale
|
||||||
|
hosts: host1.ykn.local
|
||||||
|
roles:
|
||||||
|
- name: radicale
|
||||||
|
```
|
||||||
|
6
defaults/main.yml
Normal file
6
defaults/main.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
# defaults file for radicale
|
||||||
|
|
||||||
|
radicale_root_path: /srv/radicale
|
||||||
|
|
||||||
|
radicale_auth_type: ""
|
10
handlers/main.yml
Normal file
10
handlers/main.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# handlers file for dnsmasq
|
||||||
|
|
||||||
|
- name: Redémarrer radicale.service
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
state: restarted
|
||||||
|
daemon_reload: true
|
||||||
|
enabled: true
|
||||||
|
name: radicale.service
|
||||||
|
become: true
|
@ -1,7 +1,7 @@
|
|||||||
galaxy_info:
|
galaxy_info:
|
||||||
namespace: ykn
|
namespace: ykn
|
||||||
author: pulsar89.5
|
author: pulsar89.5
|
||||||
description: Rôle modèle
|
description: Rôle de déploiement de radicale
|
||||||
|
|
||||||
license: GPL-3.0-or-later
|
license: GPL-3.0-or-later
|
||||||
|
|
||||||
@ -12,4 +12,12 @@ galaxy_info:
|
|||||||
versions:
|
versions:
|
||||||
- all
|
- all
|
||||||
|
|
||||||
dependencies: []
|
dependencies:
|
||||||
|
- role: users
|
||||||
|
vars:
|
||||||
|
users_role_radicale:
|
||||||
|
- name: radicale
|
||||||
|
comment: "Dedicated user for radicale"
|
||||||
|
update_password: on_create
|
||||||
|
password_lock: true
|
||||||
|
shell: /sbin/nologin
|
||||||
|
44
tasks/main.yml
Normal file
44
tasks/main.yml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
# tasks file for radicale
|
||||||
|
|
||||||
|
- name: Installer les prérequis
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: python3-pip
|
||||||
|
state: latest
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Installer le paquet via pip
|
||||||
|
ansible.builtin.pip:
|
||||||
|
name: radicale
|
||||||
|
state: latest
|
||||||
|
become: true
|
||||||
|
notify: Redémarrer radicale.service
|
||||||
|
|
||||||
|
- name: Créer l'emplacement de stockage
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ radicale_root_path }}"
|
||||||
|
state: directory
|
||||||
|
owner: radicale
|
||||||
|
group: radicale
|
||||||
|
mode: u=rwX,g=rX,o=
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Déployer le service
|
||||||
|
ansible.builtin.template:
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: u=rw,g=r,o=r
|
||||||
|
src: radicale.service.j2
|
||||||
|
dest: /etc/systemd/system/radicale.service
|
||||||
|
become: true
|
||||||
|
notify: Redémarrer radicale.service
|
||||||
|
|
||||||
|
- name: Déployer la configuration
|
||||||
|
ansible.builtin.template:
|
||||||
|
owner: root
|
||||||
|
group: radicale
|
||||||
|
mode: u=rw,g=r,o=
|
||||||
|
src: radicale.conf.j2
|
||||||
|
dest: "{{ radicale_root_path }}/radicale.conf"
|
||||||
|
become: true
|
||||||
|
notify: Redémarrer radicale.service
|
22
templates/radicale.conf.j2
Normal file
22
templates/radicale.conf.j2
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% if radicale_auth_type | length > 0 %}
|
||||||
|
[auth]
|
||||||
|
type={{ radicale_auth_type }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[encoding]
|
||||||
|
request=utf-8
|
||||||
|
stock=utf-8
|
||||||
|
|
||||||
|
[logging]
|
||||||
|
level=debug
|
||||||
|
|
||||||
|
[rights]
|
||||||
|
type=owner_only
|
||||||
|
|
||||||
|
[server]
|
||||||
|
hosts=0.0.0.0:5232, [::]:5232
|
||||||
|
|
||||||
|
[storage]
|
||||||
|
filesystem_folder={{ radicale_root_path }}
|
27
templates/radicale.service.j2
Normal file
27
templates/radicale.service.j2
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=A simple CalDAV (calendar) and CardDAV (contact) server
|
||||||
|
After=network.target
|
||||||
|
Requires=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment="RADICALE_CONFIG={{ radicale_root_path }}/radicale.conf"
|
||||||
|
ExecStart=/usr/bin/env python3 -m radicale
|
||||||
|
Restart=on-failure
|
||||||
|
User=radicale
|
||||||
|
# Deny other users access to the calendar data
|
||||||
|
UMask=0027
|
||||||
|
# Optional security settings
|
||||||
|
PrivateTmp=true
|
||||||
|
ProtectSystem=strict
|
||||||
|
ProtectHome=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
ProtectKernelModules=true
|
||||||
|
ProtectControlGroups=true
|
||||||
|
NoNewPrivileges=true
|
||||||
|
ReadWritePaths={{ radicale_root_path }}
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user