mirror of
https://github.com/iiab/iiab.git
synced 2025-02-13 19:52:06 +00:00
140 lines
4.1 KiB
YAML
140 lines
4.1 KiB
YAML
# we need to install the rpm in order to get the dependencies
|
|
# but we only need to do this the first time
|
|
|
|
- name: See if the Nextcloud startup page exists
|
|
stat: path={{ nextcloud_prefix }}/nextcloud/index.php
|
|
register: nextcloud_page
|
|
|
|
|
|
# but we use the tar file to get the latest version
|
|
|
|
- name: Get the Nextcloud software
|
|
get_url: url={{ nextcloud_dl_url }}/{{ nextcloud_src_file }} dest={{ downloads_dir }}/{{ nextcloud_src_file }}
|
|
when: internet_available
|
|
async: 900
|
|
poll: 15
|
|
tags:
|
|
- download
|
|
|
|
- name: Ubuntu and Debian treat names differently (Debian)
|
|
package: name={{ item }} state=present
|
|
with_items:
|
|
- libapache2-mod-php{{ php_version }}
|
|
- php{{ php_version }}-mbstring
|
|
- php{{ php_version }}-zip
|
|
when: is_debian
|
|
|
|
- name: Ubuntu and Debian treat names differently (Ubuntu)
|
|
package: name={{ item }} state=present
|
|
with_items:
|
|
- libapache2-mod-php
|
|
- php-imagick
|
|
- php-zip
|
|
- php-mbstring
|
|
when: is_ubuntu
|
|
|
|
- name: Install list of packages (debuntu)
|
|
package: name={{ item }} state=present
|
|
with_items:
|
|
- php{{ php_version }}-gd
|
|
- php{{ php_version }}-json
|
|
- php{{ php_version }}-mysql
|
|
- php{{ php_version }}-curl
|
|
- php{{ php_version }}-intl
|
|
- php{{ php_version }}-mcrypt
|
|
when: is_debuntu
|
|
|
|
- name: Install list of packages (redhat)
|
|
package: name={{ item }} state=present
|
|
with_items:
|
|
- php
|
|
- php-gd
|
|
- php-json
|
|
- php-mysql
|
|
- php-curl
|
|
- php-intl
|
|
- php-mcrypt
|
|
# centos does not have a package for php-imagick
|
|
# - php-imagick
|
|
when: is_redhat
|
|
|
|
- name: Copy it to permanent location /opt (OS's other than Fedora 18)
|
|
unarchive: src={{ downloads_dir }}/{{ nextcloud_src_file }}
|
|
dest={{ nextcloud_prefix }}
|
|
creates={{ nextcloud_prefix }}/nextcloud/version.php
|
|
when: not is_F18
|
|
|
|
# ansible 1.4.1 does not have "creates"
|
|
- name: Copy it to permanent location /opt (Fedora 18)
|
|
unarchive: src={{ downloads_dir }}/{{ nextcloud_src_file }}
|
|
dest={{ nextcloud_prefix }}
|
|
when: is_F18
|
|
|
|
- name: In CentOS, the following config dir is symlink to /etc/nextcloud
|
|
file: path=/etc/nextcloud
|
|
state=directory
|
|
when: is_centos
|
|
|
|
- name: Add autoconfig file (CentOS)
|
|
template: src=autoconfig.php.j2
|
|
dest={{ nextcloud_prefix }}/nextcloud/config/autoconfig.php
|
|
owner={{ apache_user }}
|
|
group={{ apache_user }}
|
|
mode=0640
|
|
when: is_centos
|
|
|
|
- name: Make Apache owner
|
|
file: path={{ nextcloud_prefix }}/nextcloud
|
|
owner={{ apache_user }}
|
|
group={{ apache_user }}
|
|
recurse=yes
|
|
state=directory
|
|
|
|
- name: Create data directory library
|
|
file: path={{ item }}
|
|
mode=0750
|
|
owner={{ apache_user }}
|
|
group={{ apache_user }}
|
|
state=directory
|
|
with_items:
|
|
- "{{ nextcloud_data_dir }}"
|
|
|
|
- name: Create a MySQL database for Nextcloud
|
|
mysql_db: name={{ nextcloud_dbname }}
|
|
when: mysql_enabled and nextcloud_enabled
|
|
|
|
- name: Create a user to access the Nextcloud database
|
|
mysql_user: name={{ nextcloud_dbuser }} host={{ item }} password={{ nextcloud_dbpassword }} priv={{ nextcloud_dbname }}.*:ALL,GRANT
|
|
with_items:
|
|
- "{{ nextcloud_dbhost }}"
|
|
- 127.0.0.1
|
|
- ::1
|
|
- localhost
|
|
when: mysql_enabled and nextcloud_enabled
|
|
|
|
|
|
- name: Restart Apache, so it picks up the new aliases
|
|
service: name={{ apache_service }} state=restarted
|
|
when: not nextcloud_enabled
|
|
|
|
# Enable nextcloud by copying template to httpd config
|
|
|
|
# following enables and disables
|
|
- include_tasks: nextcloud_enabled.yml
|
|
|
|
- name: Add 'nextcloud' to list of services at /etc/iiab/iiab.ini
|
|
ini_file: dest='{{ service_filelist }}'
|
|
section=nextcloud
|
|
option='{{ item.option }}'
|
|
value='{{ item.value }}'
|
|
with_items:
|
|
- option: name
|
|
value: nextcloud
|
|
- option: description
|
|
value: '"NextCloud is a local server-based facility for sharing files, photos, contacts, calendars, etc."'
|
|
- option: path
|
|
value: "{{ nextcloud_prefix }}/nextcloud"
|
|
- option: source
|
|
value: "{{ nextcloud_src_file }}"
|
|
- option: enabled
|
|
value: "{{ nextcloud_enabled }}"
|