feat(pixelfed): add ansible role

This commit is contained in:
2022-02-03 20:11:09 +01:00
parent 998d2a5f5e
commit 7c4169c424
8 changed files with 545 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
---
- name: Ensure docker container '{{ pixelfed_container_name }}' is running
docker_container:
name: "{{ pixelfed_container_name }}"
image: "{{ pixelfed_container_image }}"
env: "{{ pixelfed_container_env }}"
env_file: "{{ pixelfed_config_path }}/env"
labels: "{{ pixelfed_container_labels }}"
volumes: "{{ pixelfed_container_volumes }}"
ports: "{{ pixelfed_container_ports | default(omit, True) }}"
networks: "{{ pixelfed_container_networks | default(omit, True) }}"
purge_networks: "{{ pixelfed_container_purge_networks|default(False) }}"
restart_policy: "{{ pixelfed_container_restart_policy }}"
state: started
- name: Ensure docker container '{{ pixelfed_worker_container_name }}' is running
docker_container:
name: "{{ pixelfed_worker_container_name }}"
image: "{{ pixelfed_container_image }}"
env: "{{ pixelfed_container_env }}"
env_file: "{{ pixelfed_config_path }}/env"
volumes: "{{ pixelfed_container_volumes }}"
networks: "{{ pixelfed_container_networks | default(omit, True) }}"
purge_networks: "{{ pixelfed_container_purge_networks|default(False) }}"
restart_policy: "{{ pixelfed_container_restart_policy }}"
command: "gosu www-data php artisan horizon"
state: started

View File

@@ -0,0 +1,28 @@
---
- name: Ensure docker container image is pulled
docker_image:
name: "{{ pixelfed_container_image }}"
state: present
source: pull
force_source: "{{ true if docker_container_image_tag else false }}"
when: not pixelfed_container_image_local_build
- name: Ensure upstream git repository is cloned to source folder
git:
repo: "{{ pixelfed_source_upstream_git_repo }}"
dest: "{{ pixelfed_source_path }}"
update: yes
clone: yes
when: pixelfed_container_image_local_build
- name: Build docker container image '{{ pixelfed_container_image }}' locally
docker_image:
name: "{{ pixelfed_container_image_name }}"
tag: "{{ pixelfed_container_image_tag | default('v' + pixelfed_version) }}"
state: present
source: build
build:
dockerfile: "contrib/docker/Dockerfile.apache"
path: "{{ pixelfed_source_path }}"
when: pixelfed_container_image_local_build

View File

@@ -0,0 +1,48 @@
---
- name: Ensure user '{{ pixelfed_user }}' for pixelfed is created
user:
name: "{{ pixelfed_user }}"
state: present
system: true
register: pixelfed_user_stat
- name: Ensure file system paths exist for persisting data
file:
path: "{{ dir.path }}"
state: directory
owner: "{{ dir.user | default(pixelfed_run_user) }}"
group: "{{ dir.group | default(pixelfed_run_group) }}"
mode: "{{ dir.mode }}"
loop: "{{ pixelfed_app_paths }}"
loop_control:
loop_var: dir
label: "{{ dir.path }}"
- name: Ensure pixelfed configuration is templated
copy:
content: |+
{% for key in pixelfed_config | dict2items %}
{% if pixelfed_config[key] %}
{{ key }}={{ pixelfed_config[key] }}
{% endif %}
{% endfor %}
dest: "{{ pixelfed_config_path }}/env"
owner: "{{ pixelfed_run_user }}"
group: "{{ pixelfed_run_group }}"
mode: "0640"
notify: restart-pixelfed
- name: Ensure docker container image is available
include_tasks:
file: docker-image.yml
when: 'docker' in pixelfed_deployment_method
- name: Ensure pixelfed instance is started
block:
- name: Ensure pixelfed instance is started (docker)
include_tasks:
file: docker-deploy.yml
when: 'docker' in pixelfed_deployment_method