You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

113 lines
2.6 KiB

---
# NOTE: https://wiki.alpinelinux.org/wiki/DokuWiki
- name: testing ssh connection to container
hosts: dokuwiki
tags: containers
vars:
lighttpd_user: lighttpd
lighttpd_group: lighttpd
docroot: /var/www/localhost/htdocs
doku_url: https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
doku_tar: /tmp/dokuwiki-stable.tgz
doku_dir: "{{ docroot }}/dokuwiki"
tasks:
- name: install packages
vars:
packages:
- lighttpd
- php7-common
- php7-session
- php7-iconv
- php7-json
- php7-gd
- php7-curl
- php7-xml
- php7-mysqli
- php7-imap
- php7-cgi
- php7-pdo
- php7-pdo_mysql
- php7-soap
- php7-xmlrpc
- php7-posix
- php7-mcrypt
- php7-gettext
- php7-ldap
- php7-ctype
- php7-dom
- fcgi
- tar
apk:
name: "{{ packages | join(' ') }}"
state: present
# TODO: break out lighttpd default config to a separate playlist
- name: copy lighttpd.conf
copy:
src: ../templates/lighttpd.conf.j2
dest: /etc/lighttpd/lighttpd.conf
- name: ensure lighttpd service is started
service:
name: lighttpd
enabled: yes
state: started
- name: test if dokuwiki was already installed
find:
paths: "{{ doku_dir }}"
pattern: README
register: doku_find_result
- name: download dokuwiki stable
get_url:
url: "{{ doku_url }}"
dest: "{{ doku_tar }}"
when: doku_find_result.matched == 0
- name: make directory for dokiwiki in docroot
file:
path: "{{ doku_dir }}"
state: directory
owner: "{{ lighttpd_user }}"
group: "{{ lighttpd_group }}"
when: doku_find_result.matched == 0
- name: unarchive downloaded file
unarchive:
remote_src: yes
src: "{{ doku_tar }}"
dest: /tmp
owner: "{{ lighttpd_user }}"
group: "{{ lighttpd_group }}"
when: doku_find_result.matched == 0
- name: find doku temporary directory
find:
paths: /tmp/
file_type: directory
pattern: "dokuwiki-20*"
use_regex: true
register: doku_tmp_dir
- name: copy dokuwiki files to webroot
copy:
remote_src: yes
src: "{{ doku_tmp_dir.files[0].path }}"
dest: "{{ doku_dir }}"
when: doku_tmp_dir.matched > 0
- name: remove archive
file:
path: "{{ doku_tar }}"
state: absent
- name: remove temporary files
file:
path: "{{ doku_tmp_dir.files[0].path }}"
state: absent
when: doku_tmp_dir.matched > 0
# TODO: copy archived dokuwiki files