diff --git a/roles/ejabberd/tasks/main.yml b/roles/ejabberd/tasks/main.yml index b0341521a..3e99df865 100644 --- a/roles/ejabberd/tasks/main.yml +++ b/roles/ejabberd/tasks/main.yml @@ -14,25 +14,30 @@ group=root mode={{ item.mode }} with_items: - - { src: 'ejabberd-xs.cfg.j2', dest: '/etc/ejabberd/ejabberd-xs.cfg' , mode: '0644' } - - { src: 'ejabberdctl.cfg.j2', dest: '/etc/ejabberd/ejabberdctl.cfg', mode: '0644' } - - { src: 'ejabberd-xs', dest: '/etc/sysconfig/ejabberd-xs', mode: '0755' } + - { 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-xs.service.j2', dest: '/etc/systemd/system/ejabberd-xs.service', mode: '0755' } - - { src: 'xs-ejabberd-srg', dest: '/usr/bin/xs-ejabberd-srg' , mode: '0755' } - - { src: '10-ejabberdmoodle', dest: '/etc/sudoers.d/10-ejabberdmoodle', mode: '0440' } + - { 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-xs.init' - dest='/etc/init.d/ejabberd-xs' + 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-xs.init' - dest='/usr/libexec/ejabberd-xs' + template: src='ejabberd-iiab.init' + dest='/usr/libexec/ejabberd-iiab' when: not is_debuntu - name: Remove ejabberd_domain if domain changes @@ -41,14 +46,14 @@ when: ejabberd_config.changed - name: Enable ejabberd service - file: src=/etc/systemd/system/ejabberd-xs.service - dest=/etc/systemd/system/multi-user.target.wants/ejabberd-xs.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-xs + service: name=ejabberd-iiab state=restarted enabled=yes when: ejabberd_config.changed and ejabberd_enabled @@ -60,10 +65,14 @@ timeout=300 when: ejabberd_config.changed and ejabberd_enabled -- name: Create online group - shell: ejabberdctl srg_create Online "schoolserver" Online "Online_Users" Online - when: ejabberd_config.changed and not is_debuntu +# 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: Add all users to online group - shell: ejabberdctl srg_user_add '@online@' "schoolserver" Online "schoolserver" - when: ejabberd_config.changed and not is_debuntu +#- 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 diff --git a/roles/ejabberd/templates/ejabberd b/roles/ejabberd/templates/ejabberd index bf0d2505c..ef7fa5c5e 100755 --- a/roles/ejabberd/templates/ejabberd +++ b/roles/ejabberd/templates/ejabberd @@ -3,9 +3,9 @@ # # ejabberd now handles domain changes in the initrd script # -SERVICE_NAME=ejabberd-xs +SERVICE_NAME=ejabberd-iiab -CONFIG_LIST="/etc/ejabberd/ejabberd-xs.cfg" +CONFIG_LIST="/etc/ejabberd/ejabberd-iiab.cfg" # taken from ejabberd spec %post # taken from ejabberd spec %post diff --git a/roles/ejabberd/templates/ejabberd-xs b/roles/ejabberd/templates/ejabberd-iiab similarity index 90% rename from roles/ejabberd/templates/ejabberd-xs rename to roles/ejabberd/templates/ejabberd-iiab index 627260af5..ab85fb555 100755 --- a/roles/ejabberd/templates/ejabberd-xs +++ b/roles/ejabberd/templates/ejabberd-iiab @@ -2,7 +2,7 @@ ## Where should ejabberd find its configuration file? # -CONFIG_FILE=/etc/ejabberd/ejabberd-xs.cfg +CONFIG_FILE=/etc/ejabberd/ejabberd-iiab.cfg ## ULIMIT_MAX_FILES alters the number of files that ejabberd is ## allowed to have open at once. If it is unset the system default diff --git a/roles/ejabberd/templates/ejabberd-xs.cfg.j2 b/roles/ejabberd/templates/ejabberd-iiab.cfg.j2 similarity index 100% rename from roles/ejabberd/templates/ejabberd-xs.cfg.j2 rename to roles/ejabberd/templates/ejabberd-iiab.cfg.j2 diff --git a/roles/ejabberd/templates/ejabberd-xs.init b/roles/ejabberd/templates/ejabberd-iiab.init similarity index 92% rename from roles/ejabberd/templates/ejabberd-xs.init rename to roles/ejabberd/templates/ejabberd-iiab.init index 9585e2ada..a944ead9a 100755 --- a/roles/ejabberd/templates/ejabberd-xs.init +++ b/roles/ejabberd/templates/ejabberd-iiab.init @@ -17,14 +17,17 @@ # Description: A distributed, fault-tolerant Jabber/XMPP server ### END INIT INFO +SYS_DOMAIN_FILE=/etc/sysconfig/iiab_domain_name +OUR_DOMAIN_FILE=/etc/sysconfig/ejabberd_domain_name + . /etc/rc.d/init.d/functions -if [ -r /etc/sysconfig/ejabberd-xs ]; then - . /etc/sysconfig/ejabberd-xs +if [ -r /etc/sysconfig/ejabberd-iiab ]; then + . /etc/sysconfig/ejabberd-iiab fi if [ ! "$CONFIG_FILE" ]; then - CONFIG_FILE=/etc/ejabberd/ejabberd.cfg + CONFIG_FILE=/etc/ejabberd/ejabberd-iiab.cfg fi # /var/run is tmpfs in fc18, so need to create every time @@ -34,25 +37,22 @@ chown ejabberd:ejabberd /var/run/ejabberd # avoid using consolehelper, call ejabberdctl directly progctl=/usr/sbin/ejabberdctl -SYS_DOMAIN_FILE=/etc/sysconfig/xs_domain_name -OUR_DOMAIN_FILE=/etc/sysconfig/ejabberd_domain_name - check_domain_configured() { - if [ ! -e /etc/sysconfig/xs_domain_name ]; then - echo "Domain not configured yet" > /dev/stderr + if [ ! -e $SYS_DOMAIN_FILE ]; then + echo "Domain not configured yet 1" > /dev/stderr exit 1; fi domain=`cat "$SYS_DOMAIN_FILE" ` if [ "$domain" == "random.xs.laptop.org" ]; then - echo "Domain not configured yet" > /dev/stderr + echo "Domain not configured yet 2" > /dev/stderr exit 1; fi #hostname=`hostname -f` hostname=`hostname ` if [ "$hostname" == "localhost.localdomain" ]; then - echo "Domain not configured yet" > /dev/stderr + echo "Domain not configured yet 3" > /dev/stderr fi # if [ "$hostname" != "schoolserver.$domain" ]; then @@ -149,7 +149,7 @@ start() { fi daemon --user=ejabberd $progctl start --config $CONFIG_FILE \ - --ctl-config /etc/ejabberd/ejabberdctl.cfg \ + --ctl-config /etc/ejabberd/ejabberdctl-iiab.cfg \ --logs "/var/log/ejabberd" \ --spool "/var/lib/ejabberd/spool" \ 2>/dev/null @@ -218,5 +218,3 @@ case "$1" in esac exit $RETVAL - - diff --git a/roles/ejabberd/templates/ejabberd-xs.service.j2 b/roles/ejabberd/templates/ejabberd-iiab.service.j2 similarity index 64% rename from roles/ejabberd/templates/ejabberd-xs.service.j2 rename to roles/ejabberd/templates/ejabberd-iiab.service.j2 index 73a9b9ea3..28f1b10dc 100755 --- a/roles/ejabberd/templates/ejabberd-xs.service.j2 +++ b/roles/ejabberd/templates/ejabberd-iiab.service.j2 @@ -8,9 +8,9 @@ User=root Group=root LimitNOFILE=50000 RestartSec=5 -EnvironmentFile=/etc/sysconfig/ejabberd-xs -ExecStart=/usr/libexec/ejabberd-xs start -ExecStop=/usr/libexec/ejabberd-xs stop +EnvironmentFile=/etc/sysconfig/ejabberd-iiab +ExecStart=/usr/libexec/ejabberd-iiab start +ExecStop=/usr/libexec/ejabberd-iiab stop RemainAfterExit=yes [Install] diff --git a/roles/ejabberd/templates/xs-ejabberd-srg b/roles/ejabberd/templates/iiab-ejabberd-srg similarity index 96% rename from roles/ejabberd/templates/xs-ejabberd-srg rename to roles/ejabberd/templates/iiab-ejabberd-srg index 4f3b5bc32..f794020bf 100755 --- a/roles/ejabberd/templates/xs-ejabberd-srg +++ b/roles/ejabberd/templates/iiab-ejabberd-srg @@ -2,7 +2,7 @@ progctl=/usr/sbin/ejabberdctl -SYS_DOMAIN_FILE=/etc/sysconfig/xs_domain_name +SYS_DOMAIN_FILE=/etc/sysconfig/iiab_domain_name OUR_DOMAIN_FILE=/etc/sysconfig/ejabberd_domain_name setup_online_srg() { diff --git a/roles/ejabberd_xs/tasks/main.yml b/roles/ejabberd_xs/tasks/main.yml index 503adeaf1..e73ecf7eb 100644 --- a/roles/ejabberd_xs/tasks/main.yml +++ b/roles/ejabberd_xs/tasks/main.yml @@ -34,7 +34,7 @@ mode={{ item.mode }} with_items: - { src: 'ejabberd-xs.cfg.j2', dest: '/etc/ejabberd/ejabberd-xs.cfg' , mode: '0644' } - - { src: 'ejabberdctl.cfg.j2', dest: '/etc/ejabberd/ejabberdctl.cfg', mode: '0644' } + - { src: 'ejabberdctl.cfg.j2', dest: '/etc/ejabberd/ejabberdctl-xs.cfg', mode: '0644' } - { src: 'ejabberd-xs', dest: '/etc/sysconfig/ejabberd-xs', 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' } @@ -76,13 +76,10 @@ timeout=300 when: ejabberd_config.changed and ejabberd_xs_enabled -- name: Create online group - shell: ejabberdctl srg_create Online "schoolserver" Online "Online_Users" Online - when: ejabberd_config.changed and not is_debuntu and ejabberd_xs_enabled - -- name: Add all users to online group - shell: ejabberdctl srg_user_add '@online@' "schoolserver" Online "schoolserver" - when: ejabberd_config.changed and not is_debuntu and ejabberd_xs_enabled - - +#- name: Create online group +# shell: ejabberdctl srg_create Online "schoolserver" Online "Online_Users" Online +# when: ejabberd_config.changed and not is_debuntu and ejabberd_xs_enabled +#- name: Add all users to online group +# shell: ejabberdctl srg_user_add '@online@' "schoolserver" Online "schoolserver" +# when: ejabberd_config.changed and not is_debuntu and ejabberd_xs_enabled diff --git a/roles/ejabberd_xs/templates/ejabberd-xs.init b/roles/ejabberd_xs/templates/ejabberd-xs.init index 9585e2ada..ca1ef8618 100755 --- a/roles/ejabberd_xs/templates/ejabberd-xs.init +++ b/roles/ejabberd_xs/templates/ejabberd-xs.init @@ -17,6 +17,9 @@ # Description: A distributed, fault-tolerant Jabber/XMPP server ### END INIT INFO +SYS_DOMAIN_FILE=/etc/sysconfig/iiab_domain_name +OUR_DOMAIN_FILE=/etc/sysconfig/ejabberd_domain_name + . /etc/rc.d/init.d/functions if [ -r /etc/sysconfig/ejabberd-xs ]; then @@ -24,7 +27,7 @@ if [ -r /etc/sysconfig/ejabberd-xs ]; then fi if [ ! "$CONFIG_FILE" ]; then - CONFIG_FILE=/etc/ejabberd/ejabberd.cfg + CONFIG_FILE=/etc/ejabberd/ejabberd-xs.cfg fi # /var/run is tmpfs in fc18, so need to create every time @@ -34,25 +37,22 @@ chown ejabberd:ejabberd /var/run/ejabberd # avoid using consolehelper, call ejabberdctl directly progctl=/usr/sbin/ejabberdctl -SYS_DOMAIN_FILE=/etc/sysconfig/xs_domain_name -OUR_DOMAIN_FILE=/etc/sysconfig/ejabberd_domain_name - check_domain_configured() { - if [ ! -e /etc/sysconfig/xs_domain_name ]; then - echo "Domain not configured yet" > /dev/stderr + if [ ! -e $SYS_DOMAIN_FILE ]; then + echo "Domain not configured yet 1" > /dev/stderr exit 1; fi domain=`cat "$SYS_DOMAIN_FILE" ` if [ "$domain" == "random.xs.laptop.org" ]; then - echo "Domain not configured yet" > /dev/stderr + echo "Domain not configured yet 2" > /dev/stderr exit 1; fi #hostname=`hostname -f` hostname=`hostname ` if [ "$hostname" == "localhost.localdomain" ]; then - echo "Domain not configured yet" > /dev/stderr + echo "Domain not configured yet 3" > /dev/stderr fi # if [ "$hostname" != "schoolserver.$domain" ]; then @@ -149,7 +149,7 @@ start() { fi daemon --user=ejabberd $progctl start --config $CONFIG_FILE \ - --ctl-config /etc/ejabberd/ejabberdctl.cfg \ + --ctl-config /etc/ejabberd/ejabberdctl-xs.cfg \ --logs "/var/log/ejabberd" \ --spool "/var/lib/ejabberd/spool" \ 2>/dev/null