--- - name: "Add packages" ansible.builtin.apt: name: - mariadb-server - php - php-bcmath - php-cli - php-common - php-curl - php-fpm - php-gd - php-gmp - php-imagick - php-intl - php-mbstring - php-mysql - php-redis - php-xml - php-zip - python3-pymysql - rsync - sudo - tmux - unzip - vim state: present become: true - name: "Create a new database" community.mysql.mysql_db: name: nextcloud state: present login_unix_socket: /run/mysqld/mysqld.sock become: true - name: "Add mariadb account" community.mysql.mysql_user: name: username host: localhost password: password priv: 'nextcloud.*:ALL' state: present login_unix_socket: /run/mysqld/mysqld.sock become: true - name: "Copy apache site" ansible.builtin.template: src: templates/vps.conf.j2 dest: /etc/apache2/sites-available/vps.conf owner: root group: root mode: '0644' become: true - name: "Test my site" ansible.builtin.stat: path: /etc/apache2/sites-enabled/vps.conf register: mysite - name: "Activate site" ansible.builtin.command: a2ensite vps changed_when: false when: not mysite.stat.exists become: true - name: "Enable ssl module" community.general.apache2_module: name: "{{ item }}" state: present loop: - ssl - rewrite - headers - env - dir - mime become: true - name: "Restart apache" ansible.builtin.systemd: name: apache2 state: restarted become: true - name: "Test my site" ansible.builtin.stat: path: /var/www/nextcloud register: wwwdata - name: Unarchive a file that needs to be downloaded (added in 2.0) ansible.builtin.unarchive: src: https://download.nextcloud.com/server/releases/latest.zip dest: /var/www owner: www-data group: www-data mode: "0755" remote_src: true become: true when: not wwwdata.stat.isdir - name: "Copy apache site" ansible.builtin.template: src: templates/autoconfig.php.j2 dest: /var/www/nextcloud/config/autoconfig.php owner: www-data group: www-data mode: '0640' become: true