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.
215 lines
4.0 KiB
215 lines
4.0 KiB
2 years ago
|
- name: install dependencies
|
||
|
package:
|
||
|
name:
|
||
|
- php7
|
||
|
- curl
|
||
|
- libgd
|
||
|
- php7-fpm
|
||
|
- aspell-libs
|
||
|
- aspell-en
|
||
|
- aspell-ru
|
||
|
- aspell
|
||
|
- aspell-lang
|
||
|
- gnupg
|
||
|
|
||
|
|
||
|
- name: install php7 dependencies
|
||
|
package:
|
||
|
name:
|
||
|
- php7-dom
|
||
|
- php7-session
|
||
|
- php7-xml
|
||
|
- php7-intl
|
||
|
- php7-json
|
||
|
- php7-pdo
|
||
|
- php7-pdo_mysql
|
||
|
- php7-pdo_pgsql
|
||
|
- php7-mbstring
|
||
|
- php7-openssl
|
||
|
- php7-ctype
|
||
|
|
||
|
- php7-curl
|
||
|
- php7-fileinfo
|
||
|
- php7-exif
|
||
|
- php7-iconv
|
||
|
- php7-gd
|
||
|
- php7-zip
|
||
|
|
||
|
- php7-pspell
|
||
|
- php7-pcntl
|
||
|
- php7-xmlwriter
|
||
|
- php7-tokenizer
|
||
|
|
||
|
|
||
|
- name: create user and group
|
||
|
include_tasks: tasks/create_user.yml
|
||
|
vars:
|
||
|
user:
|
||
|
name: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
dir: "{{ mail_dir }}"
|
||
|
create_home: no
|
||
|
|
||
|
|
||
|
- name: create mail dir
|
||
|
file:
|
||
|
path: "{{ mail_dir }}"
|
||
|
state: directory
|
||
|
mode: 0775
|
||
|
owner: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
|
||
|
|
||
|
- name: create key dir for enigma plugin
|
||
|
file:
|
||
|
path: "{{ mail_dir }}/{{ mail_enigma_subdir }}"
|
||
|
state: directory
|
||
|
mode: 0770
|
||
|
owner: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
|
||
|
|
||
|
- name: template php7 custom config
|
||
|
template:
|
||
|
src: php.j2
|
||
|
dest: /etc/php7/conf.d/50_override.ini
|
||
|
force: yes
|
||
|
mode: 0640
|
||
|
notify: restart php fpm
|
||
|
|
||
|
|
||
|
- name: template fpm custom config
|
||
|
template:
|
||
|
src: fpm.j2
|
||
|
dest: /etc/php7/php-fpm.d/roundcube.conf
|
||
|
force: yes
|
||
|
mode: 0640
|
||
|
notify: restart php fpm
|
||
|
|
||
|
|
||
|
- name: delete www fpm config
|
||
|
file:
|
||
|
path: /etc/php7/php-fpm.d/www.conf
|
||
|
state: absent
|
||
|
|
||
|
|
||
|
- name: install and configure nginx
|
||
|
include_role:
|
||
|
name: nginx
|
||
|
vars:
|
||
|
nginx:
|
||
|
servers:
|
||
|
- conf: nginx_server
|
||
|
certs: true
|
||
|
group: "{{ mail_group }}"
|
||
|
fastcgi: yes
|
||
|
|
||
|
|
||
|
- name: get latest version of roundcube
|
||
|
include_tasks: get_lastversion.yml
|
||
|
vars:
|
||
|
package:
|
||
|
name: roundcube/roundcubemail
|
||
|
location: github
|
||
|
assets: true
|
||
|
asset_filter: 'complete.tar.gz$'
|
||
|
file: "{{ mail_dir }}/last_version"
|
||
|
extract: "{{ mail_dir }}"
|
||
|
user: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
notify: restart php fpm
|
||
|
strip_first_dir: yes
|
||
|
|
||
|
|
||
|
- name: ensure roundcube logs/temp directories are writable
|
||
|
file:
|
||
|
path: "{{ mail_dir }}/{{ item }}"
|
||
|
mode: 0775
|
||
|
state: directory
|
||
|
loop:
|
||
|
- logs
|
||
|
- temp
|
||
|
|
||
|
|
||
|
- name: download mime types
|
||
|
get_url:
|
||
|
url: https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
|
||
|
dest: "{{ mail_dir }}/config/{{ mail_mime_types_file }}"
|
||
|
mode: 0440
|
||
|
owner: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
notify: restart php fpm
|
||
|
|
||
|
|
||
|
- name: create custom directory
|
||
|
file:
|
||
|
path: "{{ mail_dir }}/public_html/custom"
|
||
|
mode: 0775
|
||
|
owner: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
state: directory
|
||
|
|
||
|
|
||
|
- name: upload files to custom directory
|
||
|
copy:
|
||
|
src: "{{ item }}"
|
||
|
dest: "{{ mail_dir }}/public_html/custom/{{ item }}"
|
||
|
mode: 0444
|
||
|
owner: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
loop:
|
||
|
- favicon.ico
|
||
|
- logo.png
|
||
|
|
||
|
|
||
|
- name: template roundcube config
|
||
|
template:
|
||
|
src: config.j2
|
||
|
dest: "{{ mail_dir }}/config/config.inc.php"
|
||
|
force: yes
|
||
|
mode: 0660
|
||
|
owner: "{{ mail_user }}"
|
||
|
group: "{{ mail_group }}"
|
||
|
notify: restart php fpm
|
||
|
|
||
|
|
||
|
- name: delete sample config
|
||
|
file:
|
||
|
path: "{{ mail_dir }}/config/config.inc.php.sample"
|
||
|
state: absent
|
||
|
|
||
|
|
||
|
- name: setup database
|
||
|
include_tasks: db.yml
|
||
|
|
||
|
|
||
|
- name: install plugins
|
||
|
include_tasks: plugin.yml
|
||
|
loop: "{{ mail_plugins }}"
|
||
|
|
||
|
|
||
|
- name: add cleandb cron job
|
||
|
cron:
|
||
|
name: roundcube database cleanup
|
||
|
job: "{{ mail_dir }}/bin/cleandb.sh > /dev/null"
|
||
|
hour: "5"
|
||
|
minute: "0"
|
||
|
user: "{{ mail_user }}"
|
||
|
|
||
|
|
||
|
- name: add directories to backup plan
|
||
|
include_role:
|
||
|
name: backup
|
||
|
vars:
|
||
|
function: add
|
||
|
backup_items:
|
||
|
- "{{ mail_dir }}"
|
||
|
|
||
|
|
||
|
- name: enable and start php-fpm7
|
||
|
service:
|
||
|
name: php-fpm7
|
||
|
state: started
|
||
|
enabled: yes
|
||
|
|