feat(pixelfed): add ansible role
This commit is contained in:
28
roles/pixelfed/tasks/docker-deploy.yml
Normal file
28
roles/pixelfed/tasks/docker-deploy.yml
Normal 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
|
28
roles/pixelfed/tasks/docker-image.yml
Normal file
28
roles/pixelfed/tasks/docker-image.yml
Normal 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
|
39
roles/pixelfed/tasks/main.yml
Normal file
39
roles/pixelfed/tasks/main.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
|
||||
- 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 env file for pixelfed is templated
|
||||
template:
|
||||
src: env.docker.j2
|
||||
dest: "{{ pixelfed_config_path }}/env"
|
||||
owner: "{{ pixelfed_run_user }}"
|
||||
group: "{{ pixelfed_run_group }}"
|
||||
mode: "0640"
|
||||
|
||||
- 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
|
Reference in New Issue
Block a user