Nextcloud broken into roles.

Updated the web nginx.conf and the source is not given in the readme.
Restricted to gondor.
Webserver image and container names are now picked from the vars file.
This commit is contained in:
tanshu committed 2024-01-23 22:15:11 +05:30
1 parent e26809cec9
commit 008ac0d198
9 files changed
+150 -149

No files matched your search

+39
View File
@@ -0,0 +1,39 @@
---
# Tasks for Nextcloud role
- name: Pull Nextcloud image
docker_image:
name: "{{ container_image }}"
source: pull
force_source: yes
- name: Ensure Nextcloud Directory exists
file:
path: "/var/lib/{{ host_directory }}"
state: directory
mode: 0755
- name: Create Nextcloud container
docker_container:
name: "{{ container_name }}"
image: "{{ container_image }}"
state: started
restart_policy: "unless-stopped"
env:
POSTGRES_DB: "{{ db_name }}"
POSTGRES_USER: "{{ db_user }}"
POSTGRES_PASSWORD: "{{ db_pass }}"
POSTGRES_HOST: "{{ db_host }}"
REDIS_HOST: "redis"
links:
- "postgres:db"
- "redis:redis"
published_ports:
- "127.0.0.1:9000:9000"
volumes:
- "/var/lib/{{ host_directory }}:/var/www/html"
- name: Add cron job
cron:
name: Nextcloud cron
minute: "*/5"
job: "docker exec -u www-data {{ container_name }} php cron.php"
+6
View File
@@ -0,0 +1,6 @@
---
# Handlers for Nginx role
- name: Reload Nginx
service:
name: nginx
state: reloaded
+24
View File
@@ -0,0 +1,24 @@
---
# Tasks for Nginx role
- name: Check if Nginx conf file exists
stat:
path: "/etc/nginx/sites-available/{{ http_conf }}"
register: status
- name: No need to reload Nginx
debug:
msg: "No need to reload Nginx as sites-available entries have already been created"
- name: Set Nginx conf file
when: status.stat.exists == false
template:
src: "files/nginx.conf.j2"
dest: "/etc/nginx/sites-available/{{ http_conf }}"
- name: Enable new site
when: status.stat.exists == false
file:
src: "/etc/nginx/sites-available/{{ http_conf }}"
dest: "/etc/nginx/sites-enabled/{{ http_conf }}"
state: link
notify: Reload Nginx
+28
View File
@@ -0,0 +1,28 @@
---
# Tasks for Nextcloud webserver role
- name: Copy dockerfile
synchronize: src=web dest=/tmp
- name: Build nginx webserver image
docker_image:
name: "{{ web_container_image }}"
build:
path: /tmp/web/
dockerfile: /tmp/web/Dockerfile
pull: yes
state: present
source: build
force_source: yes
- name: Create webserver container
docker_container:
name: "{{ web_container_name }}"
image: "{{ web_container_image }}"
state: started
restart_policy: "unless-stopped"
links:
- "{{ container_name }}:app"
published_ports:
- "127.0.0.1:9080:80"
volumes:
- "/var/lib/{{ host_directory }}:/var/www/html:ro"