Create install_nextcloud
This commit is contained in:
162
install_nextcloud
Normal file
162
install_nextcloud
Normal file
@@ -0,0 +1,162 @@
|
||||
- name: Volledige Nextcloud-installatie met veilige Apache + Let's Encrypt
|
||||
hosts: nextcloud
|
||||
become: true
|
||||
vars:
|
||||
ansible_python_interpreter: /usr/bin/python3
|
||||
|
||||
tasks:
|
||||
- name: Installeer benodigde pakketten
|
||||
apt:
|
||||
name:
|
||||
- apache2
|
||||
- mariadb-server
|
||||
- libapache2-mod-php
|
||||
- php
|
||||
- php-mysql
|
||||
- php-xml
|
||||
- php-mbstring
|
||||
- php-curl
|
||||
- php-gd
|
||||
- php-zip
|
||||
- php-intl
|
||||
- php-bcmath
|
||||
- unzip
|
||||
- wget
|
||||
- curl
|
||||
- certbot
|
||||
- python3-certbot-apache
|
||||
- python3-pymysql
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Start Apache en MariaDB
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
enabled: true
|
||||
state: started
|
||||
loop:
|
||||
- apache2
|
||||
- mariadb
|
||||
|
||||
- name: Maak databasebeheerder aan
|
||||
mysql_user:
|
||||
name: "{{ db_admin_user }}"
|
||||
password: "{{ db_admin_password }}"
|
||||
priv: "*.*:ALL,GRANT"
|
||||
host: localhost
|
||||
state: present
|
||||
login_unix_socket: /var/run/mysqld/mysqld.sock
|
||||
|
||||
- name: Maak Nextcloud database aan
|
||||
mysql_db:
|
||||
name: "{{ nextcloud_db }}"
|
||||
state: present
|
||||
login_user: "{{ db_admin_user }}"
|
||||
login_password: "{{ db_admin_password }}"
|
||||
login_host: localhost
|
||||
|
||||
- name: Maak Nextcloud databasegebruiker aan
|
||||
mysql_user:
|
||||
name: "{{ nextcloud_db_user }}"
|
||||
password: "{{ nextcloud_db_password }}"
|
||||
priv: "{{ nextcloud_db }}.*:ALL"
|
||||
host: localhost
|
||||
state: present
|
||||
login_user: "{{ db_admin_user }}"
|
||||
login_password: "{{ db_admin_password }}"
|
||||
login_host: localhost
|
||||
|
||||
- name: Download Nextcloud
|
||||
get_url:
|
||||
url: https://download.nextcloud.com/server/releases/latest.zip
|
||||
dest: /tmp/nextcloud.zip
|
||||
|
||||
- name: Pak Nextcloud uit
|
||||
unarchive:
|
||||
src: /tmp/nextcloud.zip
|
||||
dest: /var/www/
|
||||
remote_src: yes
|
||||
creates: /var/www/nextcloud
|
||||
|
||||
- name: Zet juiste rechten
|
||||
file:
|
||||
path: /var/www/nextcloud
|
||||
owner: www-data
|
||||
group: www-data
|
||||
recurse: yes
|
||||
|
||||
- name: Voeg globale ServerName toe aan apache2.conf
|
||||
lineinfile:
|
||||
path: /etc/apache2/apache2.conf
|
||||
line: "ServerName {{ nextcloud_domain }}"
|
||||
insertafter: BOF
|
||||
|
||||
- name: Maak Apache HTTP VirtualHost (geen SSL vooraf)
|
||||
copy:
|
||||
dest: /etc/apache2/sites-available/nextcloud.conf
|
||||
content: |
|
||||
<VirtualHost *:80>
|
||||
ServerName {{ nextcloud_domain }}
|
||||
DocumentRoot /var/www/nextcloud
|
||||
|
||||
<Directory /var/www/nextcloud>
|
||||
Require all granted
|
||||
AllowOverride All
|
||||
Options FollowSymLinks MultiViews
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
- name: Activeer Apache-modules
|
||||
shell: a2enmod rewrite headers env dir mime
|
||||
register: apache_mods
|
||||
changed_when: "'enabled' in apache_mods.stdout"
|
||||
|
||||
- name: Activeer Apache-site nextcloud
|
||||
shell: a2ensite nextcloud
|
||||
register: site_enabled
|
||||
changed_when: "'enabled' in site_enabled.stdout"
|
||||
|
||||
- name: Deactiveer Apache default-site
|
||||
shell: a2dissite 000-default
|
||||
register: default_disabled
|
||||
changed_when: "'disabled' in default_disabled.stdout"
|
||||
|
||||
- name: Valideer Apache-configuratie (negeer waarschuwingen)
|
||||
shell: apache2ctl configtest 2>&1
|
||||
register: apache_config
|
||||
failed_when: apache_config.rc != 0 or ('Syntax OK' not in apache_config.stdout and 'Syntax OK' not in apache_config.stderr)
|
||||
changed_when: false
|
||||
|
||||
- name: Herstart Apache
|
||||
systemd:
|
||||
name: apache2
|
||||
state: restarted
|
||||
|
||||
- name: Vraag Let's Encrypt-certificaat aan (voegt automatisch HTTPS toe)
|
||||
command: >
|
||||
certbot --apache --non-interactive --agree-tos
|
||||
--redirect
|
||||
-m admin@{{ nextcloud_domain }}
|
||||
-d {{ nextcloud_domain }}
|
||||
args:
|
||||
creates: /etc/letsencrypt/live/{{ nextcloud_domain }}/fullchain.pem
|
||||
|
||||
- name: Installeer Nextcloud via OCC
|
||||
shell: >
|
||||
sudo -u www-data php /var/www/nextcloud/occ maintenance:install
|
||||
--database "mysql"
|
||||
--database-name "{{ nextcloud_db }}"
|
||||
--database-user "{{ nextcloud_db_user }}"
|
||||
--database-pass "{{ nextcloud_db_password }}"
|
||||
--admin-user "{{ nextcloud_admin_user }}"
|
||||
--admin-pass "{{ nextcloud_admin_password }}"
|
||||
args:
|
||||
creates: /var/www/nextcloud/config/config.php
|
||||
chdir: /var/www/nextcloud
|
||||
|
||||
- name: Voeg domein toe aan trusted_domains
|
||||
shell: >
|
||||
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1
|
||||
--value="{{ nextcloud_domain }}"
|
||||
args:
|
||||
chdir: /var/www/nextcloud
|
||||
Reference in New Issue
Block a user