- name: Install ejabberd packages package: name={{ item }} state=present with_items: - ejabberd tags: - download - name: Configure ejabberd template: backup=yes src={{ item.src }} dest={{ item.dest }} owner=root group=root mode={{ item.mode }} with_items: - { src: 'ejabberd-iiab.cfg.j2', dest: '/etc/ejabberd/ejabberd-iiab.cfg' , mode: '0644' } - { src: 'ejabberdctl.cfg.j2', dest: '/etc/ejabberd/ejabberdctl-iiab.cfg', mode: '0644' } - { src: 'ejabberd-iiab', dest: '/etc/sysconfig/ejabberd-iiab', mode: '0755' } # - { src: 'ejabberd-domain-config', dest: '/etc/sysconfig/olpc-scripts/domain_config.d/ejabberd', mode: '0755'} # - { src: 'ejabberd', dest: '/etc/sysconfig/olpc-scripts/domain_config.d/ejabberd' , mode: '0755' } - { src: 'ejabberd-iiab.service.j2', dest: '/etc/systemd/system/ejabberd-iiab.service', mode: '0755' } - { src: 'iiab-ejabberd-srg', dest: '/usr/bin/iiab-ejabberd-srg' , mode: '0755' } # - { src: '10-ejabberdmoodle', dest: '/etc/sudoers.d/10-ejabberdmoodle', mode: '0440' } - { src: 'ejabberd.tmpfiles', dest: '/etc/tmpfiles.d/ejabberd.conf', mode: '0640' } register: ejabberd_config - name: Stop and disable OS provided systemd ejabberd service service: name=ejabberd state=stopped enabled=no - name: Put the startup script in place - debian template: src='ejabberd-iiab.init' dest='/etc/init.d/ejabberd-iiab' when: is_debuntu - name: Put the startup script in place - non debian template: src='ejabberd-iiab.init' dest='/usr/libexec/ejabberd-iiab' when: not is_debuntu - name: Remove ejabberd_domain if domain changes file: path=/etc/sysconfig/ejabberd_domain_name state=absent when: ejabberd_config.changed - name: Enable ejabberd service file: src=/etc/systemd/system/ejabberd-iiab.service dest=/etc/systemd/system/multi-user.target.wants/ejabberd-iiab.service owner=root group=root state=link - name: Start ejabberd service service: name=ejabberd-iiab state=restarted enabled=yes when: ejabberd_config.changed and ejabberd_enabled - name: Wait for ejabberd service start wait_for: port=5280 delay=15 state=started timeout=300 when: ejabberd_config.changed and ejabberd_enabled # ejabberd-iiab.init has the logic for the below, needs to be done once # and only if the group does not exist based on presence of # /var/lib/ejabberd online_src_created #- name: Create online group # shell: ejabberdctl srg_create Online "{{ iiab_hostname }}" Online "Online_Users" Online # when: ejabberd_config.changed #- name: Add all users to online group # shell: ejabberdctl srg_user_add '@online@' "{{ iiab_hostname }}" Online "schoolserver" # when: ejabberd_config.changed