--- - 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.2 - php8.2-apcu - php8.2-bcmath - php8.2-bz2 - php8.2-cli - php8.2-common - php8.2-curl - php8.2-dev - php8.2-fpm - php8.2-gd - php8.2-gmp - php8.2-imagick - php8.2-imap - php8.2-intl - php8.2-ldap - php8.2-mbstring - php8.2-mysql - php8.2-opcache - php8.2-pgsql - php8.2-readline - php8.2-redis - php8.2-soap - php8.2-sqlite3 - php8.2-tidy - php8.2-xml - php8.2-xmlrpc - php8.2-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.2-fpm copy: src=www.conf dest=/etc/php/8.2/fpm/pool.d/www.conf notify: Restart php8.2-fpm - name: Configure php8.2 opcache copy: src=opcache.ini dest=/etc/php/8.2/mods-available/opcache.ini notify: Restart php8.2-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.2-fpm service: name=php8.2-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 }}"