feat(authelia): add ansible role for authelia
This commit is contained in:
		
							
								
								
									
										88
									
								
								roles/authelia/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								roles/authelia/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Ensure user {{ authelia_user }} exists
 | 
			
		||||
  user:
 | 
			
		||||
    name: "{{ authelia_user }}"
 | 
			
		||||
    state: present
 | 
			
		||||
    system: true
 | 
			
		||||
  register: authelia_user_info
 | 
			
		||||
 | 
			
		||||
- name: Ensure host directories are created with correct permissions
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ item.path }}"
 | 
			
		||||
    state: directory
 | 
			
		||||
    owner: "{{ item.owner | default(authelia_user) }}"
 | 
			
		||||
    group: "{{ item.group | default(authelia_user) }}"
 | 
			
		||||
    mode: "{{ item.mode | default('0750') }}"
 | 
			
		||||
  loop:
 | 
			
		||||
    - path: "{{ authelia_base_dir }}"
 | 
			
		||||
      mode: "0755"
 | 
			
		||||
    - path: "{{ authelia_config_dir }}"
 | 
			
		||||
      mode: "0750"
 | 
			
		||||
    - path: "{{ authelia_data_dir }}"
 | 
			
		||||
      mode: "0750"
 | 
			
		||||
 | 
			
		||||
- name: Ensure config file is generated
 | 
			
		||||
  copy:
 | 
			
		||||
    content: "{{ authelia_config | to_nice_yaml(indent=2, width=10000) }}"
 | 
			
		||||
    dest: "{{ authelia_config_file }}"
 | 
			
		||||
    owner: "{{ authelia_run_user }}"
 | 
			
		||||
    group: "{{ authelia_run_group }}"
 | 
			
		||||
    mode: "0640"
 | 
			
		||||
  notify: restart-authelia
 | 
			
		||||
 | 
			
		||||
- name: Ensure sqlite database file exists before mounting it
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ authelia_sqlite_storage_file }}"
 | 
			
		||||
    state: touch
 | 
			
		||||
    owner: "{{ authelia_run_user }}"
 | 
			
		||||
    group: "{{ authelia_run_group }}"
 | 
			
		||||
    mode: "0640"
 | 
			
		||||
    access_time: preserve
 | 
			
		||||
    modification_time: preserve
 | 
			
		||||
  when: authelia_config_storage_local_path | default(false, true)
 | 
			
		||||
 | 
			
		||||
- name: Ensure user database exists before mounting it
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ authelia_user_storage_file }}"
 | 
			
		||||
    state: touch
 | 
			
		||||
    owner: "{{ authelia_run_user }}"
 | 
			
		||||
    group: "{{ authelia_run_group }}"
 | 
			
		||||
    mode: "0640"
 | 
			
		||||
    access_time: preserve
 | 
			
		||||
    modification_time: preserve
 | 
			
		||||
  when: authelia_config_authentication_backend_file_path | default(false, true)
 | 
			
		||||
 | 
			
		||||
- name: Ensure notification reports file exists before mounting it
 | 
			
		||||
  file:
 | 
			
		||||
    path: "{{ authelia_notification_storage_file }}"
 | 
			
		||||
    state: touch
 | 
			
		||||
    owner: "{{ authelia_run_user }}"
 | 
			
		||||
    group: "{{ authelia_run_group }}"
 | 
			
		||||
    mode: "0640"
 | 
			
		||||
    access_time: preserve
 | 
			
		||||
    modification_time: preserve
 | 
			
		||||
  when: authelia_config_notifier_filesystem_filename | default(false, true)
 | 
			
		||||
 | 
			
		||||
- name: Ensure authelia container image is present
 | 
			
		||||
  community.docker.docker_image:
 | 
			
		||||
    name: "{{ authelia_container_image_ref }}"
 | 
			
		||||
    state: present
 | 
			
		||||
    source: pull
 | 
			
		||||
    force_source: "{{ authelia_container_image_force_pull }}"
 | 
			
		||||
  register: authelia_container_image_info
 | 
			
		||||
 | 
			
		||||
- name: Ensure authelia container is running
 | 
			
		||||
  docker_container:
 | 
			
		||||
    name: "{{ authelia_container_name }}"
 | 
			
		||||
    image: "{{ authelia_container_image_ref }}"
 | 
			
		||||
    env: "{{ authelia_container_env }}"
 | 
			
		||||
    user: "{{ authelia_run_user }}:{{ authelia_run_group }}"
 | 
			
		||||
    ports: "{{ authelia_container_ports | default(omit, true) }}"
 | 
			
		||||
    labels: "{{ authelia_container_labels }}"
 | 
			
		||||
    volumes: "{{ authelia_container_volumes }}"
 | 
			
		||||
    networks: "{{ authelia_container_networks | default(omit, true) }}"
 | 
			
		||||
    purge_networks: "{{ authelia_container_purge_networks | default(omit, true)}}"
 | 
			
		||||
    restart_policy: "{{ authelia_container_restart_policy }}"
 | 
			
		||||
    state: "{{ authelia_container_state }}"
 | 
			
		||||
  register: authelia_container_info
 | 
			
		||||
		Reference in New Issue
	
	Block a user