nextcloud-aws/roles/nextcloud/tasks/main.yaml

121 lines
3 KiB
YAML
Raw Normal View History

---
- name: create paths
file:
2022-01-08 11:06:17 -08:00
path: "/srv/nextcloud/{{item}}"
state: directory
recurse: true
with_items:
- db
- data
- nginx/conf.d
- name: install dependencies
2022-01-01 14:55:44 -08:00
apt:
force_apt_get: yes
name: "{{ packages }}"
vars:
packages:
- openssl
2022-01-01 14:55:44 -08:00
# --
- name: check for existing cert
stat:
path: /srv/nextcloud/letsencrypt/etc/live/cloud.stoopid.club
register: certpath
- name: seed initial cert data
command: |
docker run -it --rm --name certbot \
-v "/srv/nextcloud/letsencrypt/etc:/etc/letsencrypt" \
-v "/srv/nextcloud/letsencrypt/var:/var/lib/letsencrypt" \
-p 80:80 \
certbot/certbot:arm64v8-latest certonly \
-m erik@erikstambaugh.com \
--agree-tos \
-n \
--standalone \
-d cloud.stoopid.club
when: certpath.stat.isdir is not defined
- name: pick up latest nginx ssl config
get_url:
url: https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf
dest: /srv/nextcloud/letsencrypt/etc/options-ssl-nginx.conf
register: certbotnginx
- name: check for dhparams
stat:
path: /srv/nextcloud/letsencrypt/etc/ssl-dhparams.pem
register: dhparams
- name: "create dhparams (this could take up to an hour)"
command: openssl dhparam -out ssl-dhparams.pem 4096
args:
chdir: /srv/nextcloud/letsencrypt/etc
when: dhparams.stat.exists == False
# ---
- name: nextcloud docker-compose
template:
src: templates/docker-compose.yaml
dest: /srv/nextcloud/docker-compose.yaml
vars:
nextcloud_admin_password: "{{ lookup('file', 'files/adminpass') }}"
nextcloud_admin_user: b4rry
mysql_host: nextcloud_db
mysql_db: nextcloud
mysql_user: nextcloud
mysql_password: s00p3rs3krit
mysql_root_password: s00p3rs3krit
register: dockercompose
- name: nextcloud nginx.conf
copy:
src: files/nginx.conf
dest: /srv/nextcloud/nginx/nginx.conf
register: nginxconf
- name: install nextcloud
command: docker-compose up -d
args:
chdir: /srv/nextcloud
- name: restart via docker-compose
command: docker-compose restart
args:
chdir: /srv/nextcloud
when: nginxconf.changed or certbotnginx.changed
# ---
- name: edit config.php
lineinfile:
path: /srv/nextcloud/www/config/config.php
insertbefore: '^\);'
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
with_items:
- regexp: " 'overwrite.cli.url' => .*"
line: " 'overwrite.cli.url' => 'https://cloud.stoopid.club',"
- regexp: " 'overwriteprotocol' => .*"
line: " 'overwriteprotocol' => 'https',"
- regexp: " 'overwritehost' => .*"
line: " 'overwritehost' => 'cloud.stoopid.club',"
register: configphp
- name: restart nextcloud
command: docker restart nextcloud
when: configphp.changed
# ---
2022-01-01 14:55:44 -08:00
- name: do some cleanup
command: "{{item}}"
with_items:
- "docker image prune -a --force"
- "docker system prune --volumes --force"