forked from infra/ansible
95 lines
2.7 KiB
YAML
95 lines
2.7 KiB
YAML
---
|
|
|
|
- name: Enable sury php apt-key
|
|
apt_key: url="https://packages.sury.org/php/apt.gpg"
|
|
|
|
- name: Enable sury php repository
|
|
apt_repository: repo="deb https://packages.sury.org/php/ {{ ansible_distribution_release }} main"
|
|
|
|
- name: Enable collaboraoffice apt-key
|
|
apt_key: url="https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg"
|
|
|
|
- name: Enable collaboraoffice repository
|
|
apt_repository: repo="deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian11 ./"
|
|
|
|
- name: Install packages
|
|
apt:
|
|
name:
|
|
- php8.1
|
|
- php8.1-apcu
|
|
- php8.1-bcmath
|
|
- php8.1-bz2
|
|
- php8.1-cli
|
|
- php8.1-common
|
|
- php8.1-curl
|
|
- php8.1-dev
|
|
- php8.1-fpm
|
|
- php8.1-gd
|
|
- php8.1-gmp
|
|
- php8.1-imagick
|
|
- php8.1-imap
|
|
- php8.1-intl
|
|
- php8.1-ldap
|
|
- php8.1-mbstring
|
|
- php8.1-mysql
|
|
- php8.1-opcache
|
|
- php8.1-pgsql
|
|
- php8.1-readline
|
|
- php8.1-redis
|
|
- php8.1-soap
|
|
- php8.1-sqlite3
|
|
- php8.1-tidy
|
|
- php8.1-xml
|
|
- php8.1-xmlrpc
|
|
- php8.1-zip
|
|
- postgresql
|
|
- python3-psycopg2
|
|
|
|
- name: Configure PostgreSQL database
|
|
postgresql_db: name={{ nextcloud_dbname }}
|
|
become: true
|
|
become_user: postgres
|
|
|
|
- name: Configure PostgreSQL user
|
|
postgresql_user: db={{ nextcloud_dbname }} name={{ nextcloud_dbuser }} password={{ nextcloud_dbpass }} priv=ALL state=present
|
|
become: true
|
|
become_user: postgres
|
|
|
|
- name: Ensure certificates are available
|
|
command: openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/nginx/ssl/{{ nextcloud_domain }}.key -out /etc/nginx/ssl/{{ nextcloud_domain }}.crt -days 730 -subj "/CN={{ nextcloud_domain }}" creates=/etc/nginx/ssl/{{ nextcloud_domain }}.crt
|
|
notify: Restart nginx
|
|
|
|
- name: Configure certificate manager for nextcloud
|
|
template: src=certs.j2 dest=/etc/acertmgr/{{ nextcloud_domain }}.conf
|
|
notify: Run acertmgr
|
|
|
|
- name: Create vhost directory
|
|
file: path=/var/www/nextcloud state=directory owner=www-data group=www-data
|
|
|
|
- name: Configure vhost
|
|
template: src=vhost.j2 dest=/etc/nginx/sites-available/nextcloud
|
|
notify: Restart nginx
|
|
|
|
- name: Configure php8.1-fpm
|
|
copy: src=www.conf dest=/etc/php/8.1/fpm/pool.d/www.conf
|
|
notify: Restart php8.1-fpm
|
|
|
|
- name: Configure php8.1 opcache
|
|
copy: src=opcache.ini dest=/etc/php/8.1/mods-available/opcache.ini
|
|
notify: Restart php8.1-fpm
|
|
|
|
- name: Enable vhost
|
|
file: src=/etc/nginx/sites-available/nextcloud dest=/etc/nginx/sites-enabled/nextcloud state=link
|
|
notify: Restart nginx
|
|
|
|
- name: Start php8.1-fpm
|
|
service: name=php8.1-fpm state=started enabled=yes
|
|
|
|
- name: Start PostgreSQL
|
|
service: name=postgresql state=started enabled=yes
|
|
|
|
- name: Enable monitoring
|
|
include_role: name=icinga-monitor tasks_from=http
|
|
vars:
|
|
vhost: "{{ nextcloud_domain }}"
|