mirror of
https://github.com/iiab/iiab.git
synced 2025-03-09 15:40:17 +00:00
commit
b7d58e148f
9 changed files with 62 additions and 58 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
||||
|
|
@ -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]
|
|
@ -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() {
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue