You've already forked role_radicale
							
							feat: Create role
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -21,4 +21,3 @@ tags
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# ---> Ansible
 | 
					# ---> Ansible
 | 
				
			||||||
*.retry
 | 
					*.retry
 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					# defaults file for radicale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					radicale_user: radicale
 | 
				
			||||||
 | 
					radicale_root_path: /srv/radicale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					radicale_users: []
 | 
				
			||||||
 | 
					# Example:
 | 
				
			||||||
 | 
					#  - name: toto
 | 
				
			||||||
 | 
					#    password: <secret>
 | 
				
			||||||
							
								
								
									
										10
									
								
								handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					# handlers file for dnsmasq
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Restart 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: Deploy radicale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  license: GPL-3.0-or-later
 | 
					  license: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										63
									
								
								tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					# tasks file for radicale
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Install prerequisites
 | 
				
			||||||
 | 
					  ansible.builtin.apt:
 | 
				
			||||||
 | 
					    state: latest
 | 
				
			||||||
 | 
					    name: pipx
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Install radicale
 | 
				
			||||||
 | 
					  community.general.pipx:
 | 
				
			||||||
 | 
					    state: latest
 | 
				
			||||||
 | 
					    name: radicale
 | 
				
			||||||
 | 
					    install_deps: true
 | 
				
			||||||
 | 
					    include_injected: true
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					  environment:
 | 
				
			||||||
 | 
					    PIPX_HOME: /opt/pipx
 | 
				
			||||||
 | 
					    PIPX_BIN_DIR: /usr/local/bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Ensure pipx is in path
 | 
				
			||||||
 | 
					  ansible.builtin.command:
 | 
				
			||||||
 | 
					    cmd: pipx ensurepath
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Create storage path
 | 
				
			||||||
 | 
					  ansible.builtin.file:
 | 
				
			||||||
 | 
					    path: "{{ radicale_root_path }}"
 | 
				
			||||||
 | 
					    state: directory
 | 
				
			||||||
 | 
					    owner: "{{ radicale_user }}"
 | 
				
			||||||
 | 
					    group: "{{ radicale_user }}"
 | 
				
			||||||
 | 
					    mode: u=rwX,g=rX,o=
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy 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: Restart radicale.service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy authentication file
 | 
				
			||||||
 | 
					  ansible.builtin.template:
 | 
				
			||||||
 | 
					    src: users.htpasswd.j2
 | 
				
			||||||
 | 
					    dest: "{{ radicale_root_path }}/users.htpasswd"
 | 
				
			||||||
 | 
					    owner: root
 | 
				
			||||||
 | 
					    group: "{{ radicale_user }}"
 | 
				
			||||||
 | 
					    mode: u=rw,g=r,o=
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					  notify: Restart radicale.service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Deploy configuration file
 | 
				
			||||||
 | 
					  ansible.builtin.template:
 | 
				
			||||||
 | 
					    src: radicale.conf.j2
 | 
				
			||||||
 | 
					    dest: "{{ radicale_root_path }}/radicale.conf"
 | 
				
			||||||
 | 
					    owner: root
 | 
				
			||||||
 | 
					    group: "{{ radicale_user }}"
 | 
				
			||||||
 | 
					    mode: u=rw,g=r,o=
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					  notify: Restart radicale.service
 | 
				
			||||||
							
								
								
									
										21
									
								
								templates/radicale.conf.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								templates/radicale.conf.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					# {{ ansible_managed }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[auth]
 | 
				
			||||||
 | 
					type = htpasswd
 | 
				
			||||||
 | 
					htpasswd_filename = {{ radicale_root_path }}/users.htpasswd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[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 }}
 | 
				
			||||||
							
								
								
									
										31
									
								
								templates/radicale.service.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								templates/radicale.service.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					# {{ 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/local/bin/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
 | 
				
			||||||
							
								
								
									
										5
									
								
								templates/users.htpasswd.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								templates/users.htpasswd.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# {{ ansible_managed }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% for user in radicale_users %}
 | 
				
			||||||
 | 
					{{ user.name }}:{{ user.password }}
 | 
				
			||||||
 | 
					{% endfor %}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user