- name: Install PHP apt: pkg={{ item }} with_items: - php5-fpm - php5-ldap - php5-gd - php5-pspell - name: Install Roundcube apt: pkg={{ item }} default_release={{ ansible_lsb.codename }}-backports with_items: - roundcube-core - roundcube-mysql - roundcube-plugins - name: Copy fripost's logo copy: src=var/lib/roundcube/skins/logo_webmail.png dest=/var/lib/roundcube/skins/logo_webmail.png owner=root group=root mode=0644 - name: Configure Roundcube lineinfile: dest=/etc/roundcube/main.inc.php "regexp=^\\s*\\$rcmail_config\\['{{ item.var }}'\\]\\s*=" "line=$rcmail_config['{{ item.var }}'] = {{ item.value }};" owner=root group=www-data mode=0640 with_items: # Logging/Debugging - { var: smtp_log, value: "FALSE" } # IMAP - { var: default_host, value: "'localhost'" } - { var: default_port, value: "143" } - { var: imap_auth_type, value: "'plain'" } - { var: imap_cache, value: "null" } - { var: messages_cache, value: "null" } # SMTP - { var: smtp_server, value: "'localhost'" } - { var: smtp_port, value: "2580" } # System - { var: force_https, value: "TRUE" } - { var: login_autocomplete, value: "2" } - { var: skin_logo, value: "'skins/logo_webmail.png'" } - { var: username_domain, value: "'fripost.org'" } - { var: product_name, value: "'Fripost'" } # Plugins - { var: plugins, value: "array('additional_message_headers','managesieve','password')" } # User Interface - { var: skin, value: "'classic'" } - { var: language, value: "'sv_SE'" } - { var: create_default_folders, value: "TRUE" } # User Preferences - { var: htmleditor, value: "TRUE" } - { var: skip_deleted, value: "TRUE" } - { var: check_all_folders, value: "FALSE" } - name: Make the logo a hyperlink to the website lineinfile: dest=/usr/share/roundcube/skins/{{ item }}/templates/login.html regexp='^(]* />)$' line='\1' backrefs=yes owner=root group=root mode=0644 with_items: - classic - larry - name: Configure Roundcube plugins template: src=usr/share/roundcube/plugins/{{ item }}/config.inc.php.j2 dest=/usr/share/roundcube/plugins/{{ item }}/config.inc.php owner=root group=root mode=0644 with_items: - additional_message_headers - managesieve - password - name: Start php5-fpm service: name=php5-fpm state=started - name: Generate a private key and a X.509 certificate for Nginx command: genkeypair.sh x509 --pubkey=/etc/nginx/ssl/mail.fripost.org.pem --privkey=/etc/nginx/ssl/mail.fripost.org.key --ou=WWW --cn=mail.fripost.org --dns=mail.fripost.org -t rsa -b 4096 -h sha512 register: r1 changed_when: r1.rc == 0 failed_when: r1.rc > 1 notify: - Restart Nginx tags: - genkey - name: Copy /etc/nginx/sites-available/roundcube copy: src=etc/nginx/sites-available/roundcube dest=/etc/nginx/sites-available/roundcube owner=root group=root mode=0644 register: r2 notify: - Restart Nginx - name: Create /etc/nginx/sites-enabled/roundcube file: src=../sites-available/roundcube dest=/etc/nginx/sites-enabled/roundcube owner=root group=root state=link force=yes register: r3 notify: - Restart Nginx - name: Start Nginx service: name=nginx state=started when: not (r1.changed or r2.changed or r3.changed) - meta: flush_handlers