ReinerNippes / nextcloud

Ansible playbook to install nextcloud, php, nginx or apache, mariadb or postgres, redis-server, onlyoffice or collabora office
MIT License
413 stars 140 forks source link

nextcloud-reloaded branch + Buster issues #110

Open LinuksGuru opened 3 years ago

LinuksGuru commented 3 years ago

Hi,

There are couple of issues with nextcloud-reloaded on latestDebian buster. 1) Fixable - firewalld sections must be removed or commented out in order to playbook to run. 2) Not fixed yrt - playbook throws error "collabora : set allow domain cloud1.myserver.com - 'missing parameter(s) required by ''attribute'': value'". Resulting system displays "FIle not found" on startup page. nextcloud error log:

2021/02/22 16:46:11 [error] 9999#9999: *2 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.93, server: cloud1.myserver.com, request: "GET / HTTP/2.0", upstream: "fastcgi://unix:/run/php/php7.4-fpm.sock:", host: "cloud1.myserver.com"

Playbook errors:

2021/02/22 16:46:11 [error] 9999#9999: *2 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.93, server: cloud1.myserver.com, request: "GET / HTTP/2.0", upstream: "fastcgi://unix:/run/php/php7.4-fpm.sock:", host: "cloud1.myserver.com"

[DEPRECATION WARNING]: ALLOW_WORLD_READABLE_TMPFILES option, moved to a per plugin approach that is more flexible, use mostly the same config will work, but 
now controlled from the plugin itself and not using the general constant. instead. This feature will be removed from ansible-base in version 2.14. Deprecation
 warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
ERROR! couldn't resolve module/action 'firewalld'. This often indicates a misspelling, missing collection, or incorrect module path.

The error appears to be in '/home/andrei/Downloads/nextcloud/roles/onlyoffice/tasks/main.yml': line 38, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

- name: open firewall ports {{ nextcloud_web_port }}/{{ nextcloud_ssl_port }}

# ----------------------------------

ERROR! couldn't resolve module/action 'firewalld'. This often indicates a misspelling, missing collection, or incorrect module path.

The error appears to be in '/home/andrei/Downloads/nextcloud/roles/talk/tasks/main.yml': line 27, column 5, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  block:
  - name: open firewall ports 3478/tcp/udp
    ^ here

# -------------------------------------

fatal: [localhost]: FAILED! => 
  reason: |-
    couldn't resolve module/action 'firewalld'. This often indicates a misspelling, missing collection, or incorrect module path.

    The error appears to be in '/home/andrei/Downloads/nextcloud/roles/webserver/tasks/firewall_config.yml': line 39, column 5, but may
    be elsewhere in the file depending on the exact syntax problem.

    The offending line appears to be:

      block:
      - name: open firewall ports {{ nextcloud_web_port }}/{{ nextcloud_ssl_port }}
        ^ here
    We could be wrong, but this one looks like it might be an issue with
    missing quotes. Always quote template expression brackets when they
    start a value. For instance:

        with_items:
          - {{ foo }}

    Should be written as:

        with_items:
          - "{{ foo }}"

# -------------------------------------

TASK [collabora : set allow domain cloud1.myserver.com] ********************************************************************************************************
Monday 22 February 2021  16:43:39 +0200 (0:13:38.679)       0:16:45.726 ******* 
fatal: [localhost]: FAILED! => changed=false 
  msg: 'missing parameter(s) required by ''attribute'': value'
ReinerNippes commented 3 years ago

Ansible starts to rename all modul names. Starting with firewalld (which is used only for RedHat based distrios.)

Should be fixed with 68ec322

librecloudhost commented 3 years ago

I have merged 68ec322 with my fork and tried building with an Ubuntu 20.04 AMI with no luck.

Ansible TASK [check install status] **************************************************** Thursday 04 March 2021 23:01:47 +0000 (0:00:01.810) 0:06:11.590 ******** fatal: [localhost]: FAILED! => changed=false connection: close content: '' content_type: text/html; charset=UTF-8 date: Thu, 04 Mar 2021 23:01:48 GMT elapsed: 0 msg: 'Status code was 500 and not [200]: HTTP Error 500: Internal Server Error' redirected: false referrer_policy: no-referrer server: nginx status: 500 transfer_encoding: chunked url: https://test2247.example.com/status.php x_content_type_options: nosniff x_download_options: noopen x_frame_options: SAMEORIGIN x_permitted_cross_domain_policies: none x_robots_tag: none x_xss_protection: 1; mode=block Nextcloud Could not boot files_versionsCould not resolve OCA\\Files_Versions\\Versions\\IVersionManager! Class can not be instantiated"},"userAgent":"--","version":"20.0.7.1"}

librecloudhost commented 3 years ago

I managed to fix this by setting the inventory file to use PHP8 and using fixes 18569a4634a3e79ea341fa95a2aa1ed7735e287f and 2fcb3f953045d47a72ddbcf5999f145ac3b5b1d6.

Redis was actually the underlying issue because it is now using PHP8 and Nextcloud was using PHP7.

ReinerNippes commented 3 years ago

I made some changes to code so it's working also with php 8.0 right now. I also disabled the setting of the default loglevel to 1. That crashed any occ command executed later.