aboutsummaryrefslogtreecommitdiffstats
path: root/roles/nextcloud/tasks/main.yml
blob: 3e143a880a2cdaed64d4c2de4684320ab9e6f652 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85

# nextcloud ~~ roles/nextcloud/tasks/main.yml
# nextcloud setup

---

- name: install nextcloud
  package: 
    name: nextcloud
    state: present

- name: install nextcloud extra dependencies
  package: 
    name: "{{ item }}"
    state: present
  loop:
    - "php-pgsql-7.3.27"
    - "php-pdo_pgsql-7.3.27"

- name: generate nextcloud httpd configuration
  template:
    src: nextcloud.conf.httpd.j2
    dest: /etc/httpd.d/nextcloud.conf
    owner: "{{ user_root }}"
    group: "{{ group_root }}"
    mode: 0644
  when: ansible_distribution == "OpenBSD"

- name: ensure extensions are enabled in php-fpm
  lineinfile:
    path: /etc/php-7.3.ini
    regexp: "{{ item }}"
    line: "{{ item }}"
  loop:
    - extension=curl
    - extension=pdo_pgsql
    - extension=intl

- name: ensure other config are corrects in php-fpm
  lineinfile:
    path: /etc/php-7.3.ini
    regexp: "^{{ item[0] }}*"
    line: "{{ item[0] }}={{ item[1] }}"
  loop:
    - [ "allow_url_fopen", "On" ]
    - [ "upload_max_filesize", "100M" ]
    - [ "post_max_size", "100M" ]
    - [ "memory_limit", "1024M" ]

- name: generate nextcloud custom config
  template:
    src: var-www-nextcloud-config-custom.config.php.j2
    dest: /var/www/nextcloud/config/custom.config.php
    owner: "www"
    group: "www"
    mode: "0644"

- name: copy configuration for domain name and tls in chroot
  shell: |
    mkdir -p /var/www/etc/ssl
    install -m 444 -o root -g bin /etc/resolv.conf /var/www/etc
    install -m 444 -o root -g bin /etc/ssl/cert.pem /etc/ssl/openssl.cnf /var/www/etc/ssl/

- name: enable cron job for nextcloud indexing and housekeeping
  cron:
    name: "nextcloud indexing"
    minute: "*/5"
    job: "php -f /var/www/nextcloud/cron.php"
    user: www

- name: ensure directories are chow to www
  file:
    path: "/var/www/nextcloud/{{ item }}"
    owner: "www"
    group: "www"
    recurse: true
  loop:
    - "apps"
    - "updater"

- name: ensure php-fpm is restarted and enabled
  service:
    name: php73_fpm
    state: restarted
    enabled: true
remember that computers suck.