mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	Keep old ejabberd (#125)
* preserve old ejabberd as ejabberd-xs * have 5-xo-services use ejabberd-xs * install latest ejabberd on is_redhat * move ejabberd to 6-generic-apps * move the repo exclude * rename directory from - to _ * make disabled work
This commit is contained in:
		
							parent
							
								
									e7a9fab5db
								
							
						
					
					
						commit
						fb858ac56e
					
				
					 16 changed files with 1075 additions and 28 deletions
				
			
		|  | @ -19,14 +19,6 @@ | |||
|    - iiab-centos.repo | ||||
|    - li.nux.ro.repo | ||||
| 
 | ||||
| - name: Disable updating ejabberd on CentOS | ||||
|   shell: sed -i -e '/^enabled=/a exclude=ejabberd' {{ item }} | ||||
|   with_items: | ||||
|     - /etc/yum.repos.d/CentOS-Base.repo | ||||
|     - /etc/yum.repos.d/CentOS-CR.repo | ||||
|     - /etc/yum.repos.d/CentOS-fasttrack.repo | ||||
|     - /etc/yum.repos.d/CentOS-Vault.repo | ||||
| 
 | ||||
| - name: Disable updating ansible on CentOS | ||||
|   shell: sed -i -e '/^enabled=/a exclude=ansible' {{ item }} | ||||
|   with_items: | ||||
|  | @ -35,4 +27,3 @@ | |||
|     - /etc/yum.repos.d/CentOS-fasttrack.repo | ||||
|     - /etc/yum.repos.d/CentOS-Vault.repo | ||||
|   when: ansible_distribution == "CentOS" | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,13 +14,6 @@ | |||
|   shell: yum --enablerepo=rpmfusion-free-updates install exfat-utils fuse-exfat | ||||
|   when: exFAT_enabled == "True" | ||||
| 
 | ||||
| - name: Disable updating ejabberd on Fedora | ||||
|   shell: sed -i -e '/^enabled=/a exclude=ejabberd' {{ item }} | ||||
|   with_items: | ||||
|     - /etc/yum.repos.d/fedora.repo | ||||
|     - /etc/yum.repos.d/fedora-updates.repo | ||||
|     - /etc/yum.repos.d/fedora-updates-testing.repo | ||||
| 
 | ||||
| - name: Disable updating ansible on Fedora | ||||
|   shell: sed -i -e '/^enabled=/a exclude=ansible' {{ item }} | ||||
|   with_items: | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| dependencies: | ||||
|    - { role: ejabberd, tags: ['olpc','ejabberd','xo-services'], when: ejabberd_install } | ||||
|    - { role: ejabberd_xs, tags: ['olpc','ejabberd-xs','xo-services'], when: ejabberd_xs_install } | ||||
|    - { role: idmgr,  tags: ['olpc','idmgr','xo-services'], when: idmgr_install } | ||||
|    - { role: activity-server, tags: ['olpc','activity-server','xo-services'], when: activity_server_install  }    | ||||
|    - { role: activity-server, tags: ['olpc','activity-server','xo-services'], when: activity_server_install } | ||||
|  |  | |||
|  | @ -6,3 +6,4 @@ dependencies: | |||
|    - { role: dokuwiki, tags: ['generic','dokuwiki'], when: dokuwiki_install } | ||||
|    - { role: wordpress, tags: ['generic','wordpress'], when: wordpress_install } | ||||
|    - { role: calibre, tags: ['generic','calibre'], when: calibre_install } | ||||
|    - { role: ejabberd, tags: ['generic','ejabberd'], when: ejabberd_install } | ||||
|  |  | |||
|  | @ -1,12 +1,3 @@ | |||
| - name: Install ejabberd packages | ||||
|   package: name={{ item }} | ||||
|            state=present | ||||
|   with_items: | ||||
|    - ejabberd-2.1.11 | ||||
|   tags: | ||||
|     - download | ||||
|   when: not is_debuntu | ||||
| 
 | ||||
| - name: Install ejabberd packages | ||||
|   package: name={{ item }} | ||||
|            state=present | ||||
|  | @ -14,7 +5,6 @@ | |||
|    - ejabberd | ||||
|   tags: | ||||
|     - download | ||||
|   when: is_debuntu | ||||
| 
 | ||||
| - name: Configure ejabberd | ||||
|   template: backup=yes | ||||
|  |  | |||
							
								
								
									
										88
									
								
								roles/ejabberd_xs/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								roles/ejabberd_xs/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,88 @@ | |||
| - name: Install ejabberd packages | ||||
|   package: name={{ item }} | ||||
|            state=present | ||||
|   with_items: | ||||
|    - ejabberd-2.1.11 | ||||
|   tags: | ||||
|     - download | ||||
|   when: not is_debuntu | ||||
| 
 | ||||
| # need to use lineinfile and better regexp | ||||
| - name: Disable updating ejabberd on CentOS | ||||
|   shell: sed -i -e '/^enabled=/a exclude=ejabberd' {{ item }} | ||||
|   with_items: | ||||
|     - /etc/yum.repos.d/CentOS-Base.repo | ||||
|     - /etc/yum.repos.d/CentOS-CR.repo | ||||
|     - /etc/yum.repos.d/CentOS-fasttrack.repo | ||||
|     - /etc/yum.repos.d/CentOS-Vault.repo | ||||
|   when: ejabberd_xs_install and is_centos | ||||
| 
 | ||||
| - name: Disable updating ejabberd on Fedora | ||||
|   shell: sed -i -e '/^enabled=/a exclude=ejabberd' {{ item }} | ||||
|   with_items: | ||||
|     - /etc/yum.repos.d/fedora.repo | ||||
|     - /etc/yum.repos.d/fedora-updates.repo | ||||
|     - /etc/yum.repos.d/fedora-updates-testing.repo | ||||
|   when: ejabberd_xs_install and ansible_distribution == "Fedora" | ||||
| 
 | ||||
| - name: Configure ejabberd | ||||
|   template: backup=yes | ||||
|             src={{ item.src }} | ||||
|             dest={{ item.dest }} | ||||
|             owner=root | ||||
|             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-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.tmpfiles', dest: '/etc/tmpfiles.d/ejabberd.conf', mode: '0640' } | ||||
|   register: ejabberd_config | ||||
|   when: not is_debuntu | ||||
| 
 | ||||
| - name: Put the startup script in place - non debian | ||||
|   template: src='ejabberd-xs.init' | ||||
|             dest='/usr/libexec/ejabberd-xs' | ||||
|   when: not is_debuntu | ||||
| 
 | ||||
| - name: Remove ejabberd_domain if domain changes | ||||
|   file: path=/etc/sysconfig/ejabberd_domain_name | ||||
|         state=absent | ||||
|   when: ejabberd_config.changed and ejabberd_config is defined and not is_debuntu | ||||
| 
 | ||||
| - name: Enable ejabberd service | ||||
|   file: src=/etc/systemd/system/ejabberd-xs.service | ||||
|         dest=/etc/systemd/system/multi-user.target.wants/ejabberd-xs.service | ||||
|         owner=root | ||||
|         group=root | ||||
|         state=link | ||||
|   when: not is_debuntu and ejabberd_xs_enabled | ||||
| 
 | ||||
| - name: Start ejabberd service | ||||
|   service: name=ejabberd-xs | ||||
|            state=restarted | ||||
|            enabled=yes | ||||
|   when: ejabberd_config.changed and ejabberd_xs_enabled and not is_debuntu | ||||
| 
 | ||||
| - name: Wait for ejabberd service start | ||||
|   wait_for: port=5280 | ||||
|             delay=15 | ||||
|             state=started | ||||
|             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 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										12
									
								
								roles/ejabberd_xs/templates/10-ejabberdmoodle
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								roles/ejabberd_xs/templates/10-ejabberdmoodle
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| ## | ||||
| ## 10-ejabberdmoodle | ||||
| ## for ejabberd-moodle interaction | ||||
| ## | ||||
| 
 | ||||
| # allow the apache user to invoke ejabberdctl and start/stop/condrestart  | ||||
| Defaults:apache !requiretty | ||||
| Cmnd_Alias EJABBERDCTL = /usr/sbin/ejabberdctl  | ||||
| Cmnd_Alias EJABBERDINIT = /etc/init.d/ejabberd start , /etc/init.d/ejabberd stop , /etc/init.d/ejabberd condrestart | ||||
| 
 | ||||
| apache ALL = (ejabberd) NOPASSWD: EJABBERDCTL | ||||
| apache ALL = (root) NOPASSWD: EJABBERDINIT | ||||
							
								
								
									
										62
									
								
								roles/ejabberd_xs/templates/ejabberd
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										62
									
								
								roles/ejabberd_xs/templates/ejabberd
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,62 @@ | |||
| #!/bin/sh -e | ||||
| 
 | ||||
| # | ||||
| # ejabberd now handles domain changes in the initrd script | ||||
| # | ||||
| SERVICE_NAME=ejabberd-xs | ||||
| 
 | ||||
| CONFIG_LIST="/etc/ejabberd/ejabberd-xs.cfg" | ||||
| 
 | ||||
| # taken from ejabberd spec %post | ||||
| # taken from ejabberd spec %post | ||||
| #function do-cert(){ | ||||
| #    (cd /etc/ejabberd | ||||
| #    if [ ! -f ejabberd.pem ] | ||||
| #    then	 | ||||
| #	echo "Generating SSL certificate /etc/ejabberd/ejabberd.pem..." | ||||
| #	HOSTNAME=$(hostname -s) | ||||
| #	DOMAINNAME=$(hostname -d) | ||||
| #	openssl req -new -x509 -days 36500 -nodes -out ejabberd.pem -keyout ejabberd.pem > /dev/null 2>&1 << +++ | ||||
| #	. | ||||
| #	. | ||||
| #	. | ||||
| #	$DOMAINNAME | ||||
| #	$HOSTNAME | ||||
| #	ejabberd | ||||
| #	root@$HOSTNAME.$DOMAINNAME | ||||
| #	+++ | ||||
| #	chown ejabberd:ejabberd ejabberd.pem | ||||
| #	chmod 600 ejabberd.pem | ||||
| #    fi) | ||||
| #} | ||||
| 
 | ||||
| #  This is the suffix which original versions of modified files will have | ||||
| BACKUP_SUFFIX=old | ||||
| 
 | ||||
| short_host=`hostname -s` | ||||
| new_name=$short_host.$1 | ||||
| 
 | ||||
| for config in $CONFIG_LIST; | ||||
| do | ||||
|     if [ -e $config.in ]; then | ||||
| 	if [ -e $config ]; then | ||||
| 	    mv $config $config.$BACKUP_SUFFIX | ||||
| 	fi | ||||
| 	sed -e s/{{ iiab_hostname }}/$new_name/ $config.in > $config ; | ||||
|     else | ||||
| 	echo WARNING: Skipped $config - template file is missing! | ||||
|     fi | ||||
| done | ||||
| 
 | ||||
| #if [ -e /etc/ejabberd/ejabberd.pem.$1 ]; then | ||||
| #    rm /etc/ejabberd/ejabberd.pem.$1	 | ||||
| #fi | ||||
| #mv /etc/ejabberd/ejabberd.pem /etc/ejabberd/ejabberd.pem.$1 | ||||
| #do-cert | ||||
| 
 | ||||
| # Since for the community edition, we don't really expect all modules to be present | ||||
| #   Just exit, and expect the user to do a restart | ||||
| 
 | ||||
| exit 0 | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										13
									
								
								roles/ejabberd_xs/templates/ejabberd-xs
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								roles/ejabberd_xs/templates/ejabberd-xs
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| ## Settings for ejabberd | ||||
| 
 | ||||
| ## Where should ejabberd find its configuration file? | ||||
| # | ||||
| CONFIG_FILE=/etc/ejabberd/ejabberd-xs.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 | ||||
| ## (usually 1024) will be used.  ejabberd will want over twice as many | ||||
| ## open files as it has active connections, so if you have a few | ||||
| ## hundred or more users you will want to set this. | ||||
| # | ||||
| ULIMIT_MAX_FILES=40000 | ||||
							
								
								
									
										454
									
								
								roles/ejabberd_xs/templates/ejabberd-xs.cfg.j2
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										454
									
								
								roles/ejabberd_xs/templates/ejabberd-xs.cfg.j2
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,454 @@ | |||
| %%% | ||||
| %%%               ejabberd configuration file | ||||
| %%% | ||||
| 
 | ||||
| %%% The parameters used in this configuration file are explained in more detail | ||||
| %%% in the ejabberd Installation and Operation Guide. | ||||
| %%% Please consult the Guide in case of doubts, it is included in  | ||||
| %%% your copy of ejabberd, and is also available online at | ||||
| %%% http://www.process-one.net/en/ejabberd/docs/ | ||||
| 
 | ||||
| %%% This configuration file contains Erlang terms. | ||||
| %%% In case you want to understand the syntax, here are the concepts: | ||||
| %%% | ||||
| %%%  - The character to comment a line is % | ||||
| %%% | ||||
| %%%  - Each term ends in a dot, for example: | ||||
| %%%      override_global. | ||||
| %%% | ||||
| %%%  - A tuple has a fixed definition, its elements are  | ||||
| %%%    enclosed in {}, and separated with commas: | ||||
| %%%      {loglevel, 4}. | ||||
| %%% | ||||
| %%%  - A list can have as many elements as you want,  | ||||
| %%%    and is enclosed in [], for example: | ||||
| %%%      [http_poll, web_admin, tls] | ||||
| %%% | ||||
| %%%  - A keyword of ejabberd is a word in lowercase.  | ||||
| %%%    The strings are enclosed in "" and can have spaces, dots... | ||||
| %%%      {language, "en"}. | ||||
| %%%      {ldap_rootdn, "dc=example,dc=com"}.  | ||||
| %%% | ||||
| %%%  - This term includes a tuple, a keyword, a list and two strings: | ||||
| %%%      {hosts, ["jabber.example.net", "im.example.com"]}. | ||||
| %%% | ||||
| 
 | ||||
| 
 | ||||
| %%%   ======================= | ||||
| %%%   OVERRIDE STORED OPTIONS | ||||
| 
 | ||||
| %% | ||||
| %% Override the old values stored in the database. | ||||
| %% | ||||
| 
 | ||||
| %% | ||||
| %% Override global options (shared by all ejabberd nodes in a cluster). | ||||
| %% | ||||
| override_global. | ||||
| 
 | ||||
| %% | ||||
| %% Override local options (specific for this particular ejabberd node). | ||||
| %% | ||||
| override_local. | ||||
| 
 | ||||
| %% | ||||
| %% Remove the Access Control Lists before new ones are added. | ||||
| %% | ||||
| override_acls. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ========= | ||||
| %%%   DEBUGGING | ||||
| 
 | ||||
| %% | ||||
| %% loglevel: Verbosity of log files generated by ejabberd. | ||||
| %% 0: No ejabberd log at all (not recommended) | ||||
| %% 1: Critical | ||||
| %% 2: Error | ||||
| %% 3: Warning | ||||
| %% 4: Info | ||||
| %% 5: Debug | ||||
| %% | ||||
| {loglevel, 4}. | ||||
| 
 | ||||
| %% | ||||
| %% watchdog_admins: If an ejabberd process consumes too much memory,  | ||||
| %% send live notifications to those Jabber accounts. | ||||
| %% | ||||
| %%{watchdog_admins, ["bob@example.com"]}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ================ | ||||
| %%%   SERVED HOSTNAMES | ||||
| 
 | ||||
| %% | ||||
| %% hosts: Domains served by ejabberd. | ||||
| %% You can define one or several, for example: | ||||
| %% {hosts, ["example.net", "example.com", "example.org"]}. | ||||
| %% | ||||
| {hosts, ["{{ iiab_hostname }}.{{ iiab_domain }}"]}. | ||||
| 
 | ||||
| %% | ||||
| %% route_subdomains: Delegate subdomains to other Jabber server. | ||||
| %% For example, if this ejabberd serves example.org and you want | ||||
| %% to allow communication with a Jabber server called im.example.org. | ||||
| %% | ||||
| %%{route_subdomains, s2s}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   =============== | ||||
| %%%   LISTENING PORTS | ||||
| 
 | ||||
| %% | ||||
| %% listen: Which ports will ejabberd listen, which service handles it | ||||
| %% and what options to start it with. | ||||
| %% | ||||
| {listen, | ||||
|  [ | ||||
| 
 | ||||
|   {5222, ejabberd_c2s, [ | ||||
| 
 | ||||
| 			%% | ||||
| 			%% If TLS is compiled and you installed a SSL | ||||
| 			%% certificate, put the correct path to the  | ||||
| 			%% file and uncomment this line: | ||||
| 			%% | ||||
| 			%%{certfile, "/path/t/etc/ejabberd/ejabberd.pem"}, starttls, | ||||
|                         inet6, | ||||
| 			{access, c2s}, | ||||
| 			{shaper, c2s_shaper}, | ||||
| 			{max_stanza_size, 524288} | ||||
| 		       ]} | ||||
| 
 | ||||
|   %% | ||||
|   %% To enable the old SSL connection method in port 5223: | ||||
|   %% | ||||
|   , {5223, ejabberd_c2s, [ | ||||
|                         inet6, | ||||
|   			{access, c2s}, | ||||
|   			{shaper, c2s_shaper}, | ||||
|   			tls, {certfile, "/etc/ejabberd/ejabberd.pem"}, | ||||
|   			{max_stanza_size, 524288} | ||||
|   		       ]} | ||||
| 
 | ||||
|   %% , {5269, ejabberd_s2s_in, [ | ||||
|   %%			   {shaper, s2s_shaper}, | ||||
|   %%			   {max_stanza_size, 131072} | ||||
|   %%			  ]}, | ||||
| 
 | ||||
|   %% | ||||
|   %% ejabberd_service: Interact with external components (transports...) | ||||
|   %% | ||||
|   %% , {8888, ejabberd_service, [ | ||||
|   %%			    {access, all},  | ||||
|   %%			    {shaper_rule, fast}, | ||||
|   %%			    {ip, {127, 0, 0, 1}}, | ||||
|   %%			    {hosts, ["icq.example.org", "sms.example.org"], | ||||
|   %%			     [{password, "secret"}] | ||||
|   %%			    } | ||||
|   %%			   ]} | ||||
| 
 | ||||
|   , {5280, ejabberd_http, [ | ||||
|                          inet6, | ||||
|   			 http_poll,  | ||||
|   			 web_admin | ||||
|   			]} | ||||
| 
 | ||||
|  ]}. | ||||
| 
 | ||||
| %% | ||||
| %% s2s_use_starttls: Enable STARTTLS + Dialback for S2S connections. | ||||
| %% Allowed values are: true or false. | ||||
| %% You must specify a certificate file. | ||||
| %% | ||||
| %%{s2s_use_starttls, true}. | ||||
| 
 | ||||
| %% | ||||
| %% s2s_certfile: Specify a certificate file. | ||||
| %% | ||||
| %%{s2s_certfile, "/path/t/etc/ejabberd/ejabberd.pem"}. | ||||
| 
 | ||||
| %% | ||||
| %% domain_certfile: Specify a different certificate for each served hostname. | ||||
| %% | ||||
| %%{domain_certfile, "example.org", "/path/to/example_org.pem"}. | ||||
| %%{domain_certfile, "example.com", "/path/to/example_com.pem"}. | ||||
| 
 | ||||
| %% | ||||
| %% S2S whitelist or blacklist | ||||
| %% | ||||
| %% Default s2s policy for undefined hosts. | ||||
| %% | ||||
| {s2s_default_policy, deny}. | ||||
| 
 | ||||
| %% | ||||
| %% Allow or deny communication with specific servers. | ||||
| %% | ||||
| %%{{ '{{' }}s2s_host, "goodhost.org"}, allow}. | ||||
| %%{{ '{{' }}s2s_host, "badhost.org"}, deny}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ============== | ||||
| %%%   AUTHENTICATION | ||||
| 
 | ||||
| %% | ||||
| %% auth_method: Method used to authenticate the users. | ||||
| %% The default method is the internal. | ||||
| %% If you want to use a different method,  | ||||
| %% comment this line and enable the correct ones. | ||||
| %% | ||||
| {auth_method, internal}. | ||||
| 
 | ||||
| %% | ||||
| %% Authentication using external script | ||||
| %% Make sure the script is executable by ejabberd. | ||||
| %% | ||||
| %%{auth_method, external}. | ||||
| %%{extauth_program, "/path/to/authentication/script"}. | ||||
| 
 | ||||
| %% | ||||
| %% Authentication using ODBC | ||||
| %% Remember to setup a database in the next section. | ||||
| %% | ||||
| %%{auth_method, odbc}. | ||||
| 
 | ||||
| %% | ||||
| %% Authentication using PAM | ||||
| %% | ||||
| %%{auth_method, pam}. | ||||
| %%{pam_service, "pamservicename"}. | ||||
| 
 | ||||
| %% | ||||
| %% Authentication using LDAP | ||||
| %% | ||||
| %%{auth_method, ldap}. | ||||
| %% | ||||
| %% List of LDAP servers: | ||||
| %%{ldap_servers, ["localhost"]}.     | ||||
| %% | ||||
| %% LDAP attribute that holds user ID: | ||||
| %%{ldap_uids, [{"mail", "%u@mail.example.org"}]}.  | ||||
| %% | ||||
| %% Search base of LDAP directory: | ||||
| %%{ldap_base, "dc=example,dc=com"}.  | ||||
| %% | ||||
| %% LDAP manager: | ||||
| %%{ldap_rootdn, "dc=example,dc=com"}.  | ||||
| %% | ||||
| %% Password to LDAP manager: | ||||
| %%{ldap_password, "******"}.  | ||||
| 
 | ||||
| %% | ||||
| %% Anonymous login support: | ||||
| %%   auth_method: anonymous | ||||
| %%   anonymous_protocol: sasl_anon | login_anon | both | ||||
| %%   allow_multiple_connections: true | false | ||||
| %% | ||||
| %%{host_config, "public.example.org", [{auth_method, anonymous}, | ||||
| %%                                     {allow_multiple_connections, false}, | ||||
| %%                                     {anonymous_protocol, sasl_anon}]}. | ||||
| %% | ||||
| %% To use both anonymous and internal authentication: | ||||
| %% | ||||
| %%{host_config, "public.example.org", [{auth_method, [internal, anonymous]}]}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ============== | ||||
| %%%   DATABASE SETUP | ||||
| 
 | ||||
| %% ejabberd uses by default the internal Mnesia database, | ||||
| %% so you can avoid this section. | ||||
| %% This section provides configuration examples in case | ||||
| %% you want to use other database backends. | ||||
| %% Please consult the ejabberd Guide for details about database creation. | ||||
| 
 | ||||
| %% | ||||
| %% MySQL server: | ||||
| %% | ||||
| %%{odbc_server, {mysql, "server", "database", "username", "password"}}. | ||||
| %% | ||||
| %% If you want to specify the port: | ||||
| %%{odbc_server, {mysql, "server", 1234, "database", "username", "password"}}. | ||||
| 
 | ||||
| %% | ||||
| %% PostgreSQL server: | ||||
| %% | ||||
| %%{odbc_server, {pgsql, "server", "database", "username", "password"}}. | ||||
| %% | ||||
| %% If you want to specify the port: | ||||
| %%{odbc_server, {pgsql, "server", 1234, "database", "username", "password"}}. | ||||
| %% | ||||
| %% If you use PostgreSQL, have a large database, and need a | ||||
| %% faster but inexact replacement for "select count(*) from users" | ||||
| %% | ||||
| %%{pgsql_users_number_estimate, true}. | ||||
| 
 | ||||
| %% | ||||
| %% ODBC compatible or MSSQL server: | ||||
| %% | ||||
| %%{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   =============== | ||||
| %%%   TRAFFIC SHAPERS | ||||
| 
 | ||||
| %% | ||||
| %% The "normal" shaper limits traffic speed to 1.000 B/s | ||||
| %% | ||||
| {shaper, normal, {maxrate, 1000}}. | ||||
| 
 | ||||
| %% | ||||
| %% The "fast" shaper limits traffic speed to 50.000 B/s | ||||
| %% | ||||
| {shaper, fast, {maxrate, 50000}}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ==================== | ||||
| %%%   ACCESS CONTROL LISTS | ||||
| 
 | ||||
| %% | ||||
| %% The 'admin' ACL grants administrative privileges to Jabber accounts. | ||||
| %% You can put as many accounts as you want. | ||||
| %% | ||||
| %%{acl, admin, {user, "aleksey", "localhost"}}. | ||||
| %%{acl, admin, {user, "ermine", "example.org"}}. | ||||
| {acl, admin, {user, "admin", "{{ iiab_hostname }}.{{ iiab_domain }}"}}. | ||||
| 
 | ||||
| %% | ||||
| %% Blocked users | ||||
| %% | ||||
| %%{acl, blocked, {user, "baduser", "example.org"}}. | ||||
| %%{acl, blocked, {user, "test"}}. | ||||
| 
 | ||||
| %% | ||||
| %% Local users: dont modify this line. | ||||
| %% | ||||
| {acl, local, {user_regexp, ""}}. | ||||
| 
 | ||||
| %% | ||||
| %% More examples of ACLs | ||||
| %% | ||||
| %%{acl, jabberorg, {server, "jabber.org"}}. | ||||
| %%{acl, aleksey, {user, "aleksey", "jabber.ru"}}. | ||||
| %%{acl, test, {user_regexp, "^test"}}. | ||||
| %%{acl, test, {user_glob, "test*"}}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ============ | ||||
| %%%   ACCESS RULES | ||||
| 
 | ||||
| %% Define the maximum number of time a single user is allowed to connect: | ||||
| {access, max_user_sessions, [{10, all}]}. | ||||
| 
 | ||||
| %% This rule allows access only for local users: | ||||
| {access, local, [{allow, local}]}. | ||||
| 
 | ||||
| %% Only non-blocked users can use c2s connections: | ||||
| {access, c2s, [{deny, blocked}, | ||||
| 	       {allow, all}]}. | ||||
| 
 | ||||
| %% For all users except admins used "normal" shaper | ||||
| {access, c2s_shaper, [{none, admin}, | ||||
| 		      {fast, all}]}. | ||||
| 
 | ||||
| %% For all S2S connections used "fast" shaper | ||||
| {access, s2s_shaper, [{fast, all}]}. | ||||
| 
 | ||||
| %% Only admins can send announcement messages: | ||||
| {access, announce, [{allow, admin}]}. | ||||
| 
 | ||||
| %% Only admins can use configuration interface: | ||||
| {access, configure, [{allow, admin}]}. | ||||
| 
 | ||||
| %% Admins of this server are also admins of MUC service: | ||||
| {access, muc_admin, [{allow, admin}]}. | ||||
| 
 | ||||
| %% All users are allowed to use MUC service: | ||||
| {access, muc, [{allow, all}]}. | ||||
| 
 | ||||
| %% Every username can be registered via in-band registration: | ||||
| %% To disable in-band registration, replace 'allow' with 'deny'. | ||||
| {access, register, [{allow, all}]}. | ||||
| 
 | ||||
| %% Allow repeat registration from the same client (necessary for testing) | ||||
| %% Set to a positive integer (or comment out) to restrict with a timeout. | ||||
| %% (infinity means zero; 0 does not work) | ||||
| % {registration_timeout, infinity}. | ||||
| 
 | ||||
| %% Everybody can create pubsub nodes | ||||
| {access, pubsub_createnode, [{allow, all}]}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ================ | ||||
| %%%   DEFAULT LANGUAGE | ||||
| 
 | ||||
| %% | ||||
| %% language: Default language used for server messages. | ||||
| %% | ||||
| {language, "en"}. | ||||
| 
 | ||||
| 
 | ||||
| %%%   ======= | ||||
| %%%   MODULES | ||||
| 
 | ||||
| %% | ||||
| %% Modules enabled in all ejabberd virtual hosts. | ||||
| %% | ||||
| {modules, | ||||
|  [ | ||||
|   {mod_adhoc,    []}, | ||||
|   {mod_announce, [{access, announce}]}, % requires mod_adhoc | ||||
|   {mod_caps,     []}, | ||||
|   {mod_configure,[]}, % requires mod_adhoc | ||||
|   {mod_admin_extra, []}, | ||||
|   {mod_disco,    []}, | ||||
|   %%{mod_echo,   [{host, "echo.localhost"}]}, | ||||
|   {mod_irc,      []}, | ||||
|   {mod_last,     []}, | ||||
|   {mod_muc,      [ | ||||
| 		  {host, "conference.@HOST@"}, | ||||
| 		  {access, muc}, | ||||
| 		  {access_create, muc}, | ||||
| 		  {access_persistent, muc}, | ||||
| 		  {access_admin, muc_admin} | ||||
| 		 ]}, | ||||
|   %%{mod_muc_log,[]}, | ||||
|   {mod_offline,  []}, | ||||
|   {mod_privacy,  []}, | ||||
|   {mod_private,  []}, | ||||
|   %%{mod_proxy65,[]}, | ||||
|   {mod_pubsub,   [{access_createnode, pubsub_createnode}, | ||||
|                   {plugins, ["default", "pep"]} | ||||
|                  ]}, | ||||
|   {mod_register, [ | ||||
| 		  %% | ||||
| 		  %% After successful registration, the user receives  | ||||
| 		  %% a message with this subject and body. | ||||
| 		  %% | ||||
| 		  %%{welcome_message, {"Welcome!",  | ||||
| 		  %%		     "Welcome to this Jabber server."}}, | ||||
| 
 | ||||
| 		  %% | ||||
| 		  %% When a user registers, send a notification to  | ||||
| 		  %% these Jabber accounts. | ||||
| 		  %% | ||||
| 		  %%{registration_watchers, ["admin1@example.org"]}, | ||||
| 
 | ||||
| 		  {access, register} | ||||
| 		 ]}, | ||||
|   {mod_roster,   []}, | ||||
|   %%{mod_service_log,[]}, | ||||
|   {mod_shared_roster,[]}, | ||||
|   {mod_stats,    []}, | ||||
|   {mod_time,     []}, | ||||
|   {mod_vcard,    []}, | ||||
|   {mod_version,  []} | ||||
|  ]}. | ||||
| 
 | ||||
| 
 | ||||
| %%% $Id: ejabberd.cfg.example 988 2007-11-26 21:29:14Z badlop $ | ||||
| 
 | ||||
| %%% Local Variables: | ||||
| %%% mode: erlang | ||||
| %%% End: | ||||
| %%% vim: set filetype=erlang tabstop=8: | ||||
							
								
								
									
										222
									
								
								roles/ejabberd_xs/templates/ejabberd-xs.init
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										222
									
								
								roles/ejabberd_xs/templates/ejabberd-xs.init
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,222 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # ejabberd    Start and stop ejabberd. | ||||
| 
 | ||||
| # chkconfig: - 40 60 | ||||
| # description: ejabberd | ||||
| # processname: ejabberd | ||||
| # pidfile: /var/run/ejabberd/ejabberd.pid | ||||
| 
 | ||||
| ### BEGIN INIT INFO | ||||
| # Provides: ejabberd | ||||
| # Required-Start: network | ||||
| # Required-Stop: network | ||||
| # Default-Start: | ||||
| # Default-Stop: 0 1 6 | ||||
| # Short-Description: Start and stop ejabberd | ||||
| # Description: A distributed, fault-tolerant Jabber/XMPP server | ||||
| ### END INIT INFO | ||||
| 
 | ||||
| . /etc/rc.d/init.d/functions | ||||
| 
 | ||||
| if [ -r /etc/sysconfig/ejabberd-xs ]; then | ||||
| 	. /etc/sysconfig/ejabberd-xs | ||||
| fi | ||||
| 
 | ||||
| if [ ! "$CONFIG_FILE" ]; then | ||||
| 	CONFIG_FILE=/etc/ejabberd/ejabberd.cfg | ||||
| fi | ||||
| 
 | ||||
| # /var/run is tmpfs in fc18, so need to create every time | ||||
| mkdir -p /var/run/ejabberd | ||||
| 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 | ||||
| 	exit 1; | ||||
|     fi | ||||
| 
 | ||||
|     domain=`cat "$SYS_DOMAIN_FILE" ` | ||||
|     if [ "$domain" == "random.xs.laptop.org" ]; then | ||||
| 	echo "Domain not configured yet" > /dev/stderr | ||||
| 	exit 1; | ||||
|     fi | ||||
| 
 | ||||
|     #hostname=`hostname -f` | ||||
|     hostname=`hostname ` | ||||
|     if [ "$hostname" == "localhost.localdomain" ]; then | ||||
|          echo "Domain not configured yet" > /dev/stderr | ||||
|     fi | ||||
| 
 | ||||
| #    if [ "$hostname" != "schoolserver.$domain" ]; then | ||||
| #         echo "Domain changed -- restart to enable ejabberd" > /dev/stderr | ||||
| #    fi | ||||
| 
 | ||||
|     short_host=`hostname -s` | ||||
|     node_name=`cat $OUR_DOMAIN_FILE` | ||||
| 
 | ||||
| #    if [ ! -e "$OUR_DOMAIN_FILE" ] || ! cmp "$SYS_DOMAIN_FILE" "$OUR_DOMAIN_FILE" ; then | ||||
|     if [ ! -e "$OUR_DOMAIN_FILE" ] ; then | ||||
| 	update_domain | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| update_domain() { | ||||
| 
 | ||||
|     BACKUP_SUFFIX=old | ||||
| 
 | ||||
|     if [ -e $CONFIG_FILE ]; then | ||||
| 	cp $CONFIG_FILE $CONFIG_FILE.$BACKUP_SUFFIX || exit 1 | ||||
|     fi | ||||
| 
 | ||||
|     new_name=$short_host.$domain | ||||
| 
 | ||||
|     #(sed -e s/@@BASEDNSNAME2@@/$new_name/ $CONFIG_FILE.in > $CONFIG_FILE.tmp ) && mv $CONFIG_FILE.tmp $CONFIG_FILE || exit 1 | ||||
| 
 | ||||
|     # If we are changing the domain, we must clear the DB. | ||||
|     if [ -e /var/lib/ejabberd/online_src_created ] ; then | ||||
| 	rm -f /var/lib/ejabberd/online_src_created | ||||
|     fi | ||||
|     if [ -d /var/lib/ejabberd/spool/ ]; then | ||||
| 	rm -f /var/lib/ejabberd/spool/* | ||||
|     fi | ||||
| 
 | ||||
|     # Mark as done - | ||||
|     # cp "$SYS_DOMAIN_FILE" "$OUR_DOMAIN_FILE" | ||||
|     echo "$domain" > "$OUR_DOMAIN_FILE" | ||||
| } | ||||
| 
 | ||||
| setup_online_srg() { | ||||
| 
 | ||||
|     if [ -e /var/lib/ejabberd/online_src_created ]; then | ||||
| 	return 0 | ||||
|     fi; | ||||
| 
 | ||||
|     # give ejabberd a bit of time to startup on XO-1 HW :-) | ||||
|     sleep 10; | ||||
| 
 | ||||
|     short_host=`hostname -s` | ||||
|     domain=`cat "$SYS_DOMAIN_FILE"` | ||||
| 
 | ||||
|     # Note: grep -q exits as soon as the match is found, which ejabberdctl | ||||
|     # doesn't like. So we send the output to /dev/null instead - more | ||||
|     # portable too. | ||||
|     # | ||||
|     # ejabberdctl should handle SIGPIPE without messing up, but that's | ||||
|     # a minor problem anyway. | ||||
|     # | ||||
|     if ! ejabberdctl srg_list "$short_host.$domain" | grep '^Online$' > /dev/null ; then | ||||
| 	# ejabberdctl doesn't like spaces in the description field. | ||||
| 	# backslashes work - but escaping is better left alone for now :-) | ||||
| 	ejabberdctl srg_create Online "$short_host.$domain" \ | ||||
| 	    Online "Created_by_ejabberd_init" Online | ||||
| 	[ $? -eq 0 ] || return 1 | ||||
|     fi | ||||
| 
 | ||||
|     if ! ejabberdctl srg_get_info Online "$short_host.$domain" | grep '^online_users: true$' > /dev/null ; then | ||||
| 	ejabberdctl srg_user_add '@online@' "$short_host.$domain" \ | ||||
| 	    Online "$short_host.$domain" | ||||
| 	[ $? -eq 0 ] || return 1 | ||||
|     fi | ||||
| 
 | ||||
|     # mark success | ||||
|     touch /var/lib/ejabberd/online_src_created | ||||
| } | ||||
| 
 | ||||
| is_running() { | ||||
| 	/sbin/runuser -s /bin/bash - ejabberd -c "$progctl status" &>/dev/null | ||||
| } | ||||
| 
 | ||||
| start() { | ||||
|         echo -n $"Starting ejabberd: " | ||||
| 	#if [ "$ULIMIT_MAX_FILES" ]; then | ||||
| 	#	ulimit -n $ULIMIT_MAX_FILES | ||||
| 	#fi | ||||
| 
 | ||||
| 	check_domain_configured | ||||
| 
 | ||||
| 	# check whether ejabberd was already started | ||||
| 	if is_running; then | ||||
| 		echo -n "already running" && warning && echo | ||||
| 		return 0 | ||||
| 	fi | ||||
| 
 | ||||
| 	daemon --user=ejabberd $progctl start	--config $CONFIG_FILE \ | ||||
| 				--ctl-config /etc/ejabberd/ejabberdctl.cfg \ | ||||
| 				--logs "/var/log/ejabberd" \ | ||||
| 				--spool "/var/lib/ejabberd/spool" \ | ||||
| 				2>/dev/null | ||||
|         RETVAL=$? | ||||
|         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd | ||||
|         echo | ||||
| 
 | ||||
| 	# it takes some time to actually start necessary nodes | ||||
| 	sleep 5 | ||||
| 
 | ||||
| 	# Ignore the return val of setup_online_srg | ||||
| 	# ==> startup even if the SRG setup had errors. | ||||
|     set +e; | ||||
|     setup_online_srg | ||||
| 
 | ||||
|         return $RETVAL | ||||
| } | ||||
| 
 | ||||
| stop() { | ||||
|         # Stop daemons. | ||||
|         echo -n "Shutting down ejabberd: " | ||||
| 
 | ||||
| 	# check whether ejabberd was already stopped | ||||
| 	if ! is_running; then | ||||
| 		echo -n "already stopped" && warning && echo | ||||
| 		return 0 | ||||
| 	fi | ||||
| 
 | ||||
| 	daemon $progctl stop 2>/dev/null | ||||
|         RETVAL=$? | ||||
|         [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ejabberd | ||||
|         echo | ||||
| 
 | ||||
| 	# it takes some time to actually stop necessary nodes | ||||
| 	sleep 5 | ||||
| 
 | ||||
|         return $RETVAL | ||||
| } | ||||
| 
 | ||||
| restart() { | ||||
|         stop | ||||
| 	sleep 5 | ||||
|         start | ||||
| } | ||||
| 
 | ||||
| # See how we were called. | ||||
| case "$1" in | ||||
|   start) | ||||
|         start | ||||
|         ;; | ||||
|   stop) | ||||
|         stop | ||||
|         ;; | ||||
|   restart|force-reload) | ||||
|         restart | ||||
|         ;; | ||||
|   condrestart|try-restart) | ||||
|         [ -f /var/lock/subsys/ejabberd ] && restart || : | ||||
|         ;; | ||||
|   status) | ||||
| 	$progctl status | ||||
|         ;; | ||||
|   *) | ||||
|         echo "Usage: ejabberd {start|stop|restart|force-reload|condrestart|try-restart|status}" | ||||
|         exit 2 | ||||
| esac | ||||
| 
 | ||||
| exit $RETVAL | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										17
									
								
								roles/ejabberd_xs/templates/ejabberd-xs.service.j2
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								roles/ejabberd_xs/templates/ejabberd-xs.service.j2
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,17 @@ | |||
| [Unit] | ||||
| Description=A distributed, fault-tolerant Jabber/XMPP server | ||||
| After=network.target local-fs.target | ||||
| 
 | ||||
| [Service] | ||||
| Type=oneshot | ||||
| 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 | ||||
| RemainAfterExit=yes | ||||
| 
 | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
							
								
								
									
										2
									
								
								roles/ejabberd_xs/templates/ejabberd.tmpfiles
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/ejabberd_xs/templates/ejabberd.tmpfiles
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| d /run/lock/ejabberdctl 0750 ejabberd ejabberd | ||||
| d /var/run/ejabberd 0750 ejabberd ejabberd | ||||
							
								
								
									
										154
									
								
								roles/ejabberd_xs/templates/ejabberdctl.cfg.j2
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										154
									
								
								roles/ejabberd_xs/templates/ejabberdctl.cfg.j2
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,154 @@ | |||
| # | ||||
| # In this file you can configure options that are passed by ejabberdctl | ||||
| # to the erlang runtime system when starting ejabberd | ||||
| # | ||||
| 
 | ||||
| #' POLL: Kernel polling ([true|false]) | ||||
| # | ||||
| # The kernel polling option requires support in the kernel. | ||||
| # Additionally, you need to enable this feature while compiling Erlang. | ||||
| # | ||||
| # Default: true | ||||
| # | ||||
| #POLL=true | ||||
| 
 | ||||
| #. | ||||
| #' SMP: SMP support ([enable|auto|disable]) | ||||
| # | ||||
| # Explanation in Erlang/OTP documentation: | ||||
| # enable: starts the Erlang runtime system with SMP support enabled. | ||||
| #   This may fail if no runtime system with SMP support is available. | ||||
| # auto: starts the Erlang runtime system with SMP support enabled if it | ||||
| #   is available and more than one logical processor are detected. | ||||
| # disable: starts a runtime system without SMP support. | ||||
| # | ||||
| # Default: auto | ||||
| # | ||||
| #SMP=auto | ||||
| 
 | ||||
| #. | ||||
| #' ERL_MAX_PORTS: Maximum number of simultaneously open Erlang ports | ||||
| # | ||||
| # ejabberd consumes two or three ports for every connection, either | ||||
| # from a client or from another Jabber server. So take this into | ||||
| # account when setting this limit. | ||||
| # | ||||
| # Default: 32000 | ||||
| # Maximum: 268435456 | ||||
| # | ||||
| #ERL_MAX_PORTS=32000 | ||||
| 
 | ||||
| #. | ||||
| #' FIREWALL_WINDOW: Range of allowed ports to pass through a firewall | ||||
| # | ||||
| # If Ejabberd is configured to run in cluster, and a firewall is blocking ports, | ||||
| # it's possible to make Erlang use a defined range of port (instead of dynamic | ||||
| # ports) for node communication. | ||||
| # | ||||
| # Default: not defined | ||||
| # Example: 4200-4210 | ||||
| # | ||||
| #FIREWALL_WINDOW= | ||||
| 
 | ||||
| #. | ||||
| #' INET_DIST_INTERFACE: IP address where this Erlang node listens other nodes | ||||
| # | ||||
| # This communication is used by ejabberdctl command line tool, | ||||
| # and in a cluster of several ejabberd nodes. | ||||
| # Notice that the IP address must be specified in the Erlang syntax. | ||||
| # | ||||
| # Default: {127,0,0,1} | ||||
| # | ||||
| #INET_DIST_INTERFACE={127,0,0,1} | ||||
| 
 | ||||
| #. | ||||
| #' ERL_EPMD_ADDRESS: IP addresses where epmd listens for connections | ||||
| # | ||||
| # IMPORTANT: This option works only in Erlang/OTP R14B03 and newer. | ||||
| # | ||||
| # This environment variable may be set to a comma-separated | ||||
| # list of IP addresses, in which case the epmd daemon | ||||
| # will listen only on the specified address(es) and on the | ||||
| # loopback address (which is implicitly added to the list if it | ||||
| # has not been specified). The default behaviour is to listen on | ||||
| # all available IP addresses. | ||||
| # | ||||
| # Default: 0.0.0.0 | ||||
| # | ||||
| #ERL_EPMD_ADDRESS=127.0.0.1 | ||||
| 
 | ||||
| #. | ||||
| #' ERL_PROCESSES: Maximum number of Erlang processes | ||||
| # | ||||
| # Erlang consumes a lot of lightweight processes. If there is a lot of activity | ||||
| # on ejabberd so that the maximum number of processes is reached, people will | ||||
| # experience greater latency times. As these processes are implemented in | ||||
| # Erlang, and therefore not related to the operating system processes, you do | ||||
| # not have to worry about allowing a huge number of them. | ||||
| # | ||||
| # Default: 250000 | ||||
| # Maximum: 268435456 | ||||
| # | ||||
| #ERL_PROCESSES=250000 | ||||
| 
 | ||||
| #. | ||||
| #' ERL_MAX_ETS_TABLES: Maximum number of ETS and Mnesia tables | ||||
| # | ||||
| # The number of concurrent ETS and Mnesia tables is limited. When the limit is | ||||
| # reached, errors will appear in the logs: | ||||
| #   ** Too many db tables ** | ||||
| # You can safely increase this limit when starting ejabberd. It impacts memory | ||||
| # consumption but the difference will be quite small. | ||||
| # | ||||
| # Default: 1400 | ||||
| # | ||||
| #ERL_MAX_ETS_TABLES=1400 | ||||
| 
 | ||||
| #. | ||||
| #' ERL_OPTIONS: Additional Erlang options | ||||
| # | ||||
| # The next variable allows to specify additional options passed to erlang while | ||||
| # starting ejabberd. Some useful options are -noshell, -detached, -heart. When | ||||
| # ejabberd is started from an init.d script options -noshell and -detached are | ||||
| # added implicitly. See erl(1) for more info. | ||||
| # | ||||
| # It might be useful to add "-pa /usr/local/lib/ejabberd/ebin" if you | ||||
| # want to add local modules in this path. | ||||
| # | ||||
| # Default: "" | ||||
| # | ||||
| #ERL_OPTIONS="" | ||||
| 
 | ||||
| #. | ||||
| #' ERLANG_NODE: Erlang node name | ||||
| # | ||||
| # The next variable allows to explicitly specify erlang node for ejabberd | ||||
| # It can be given in different formats: | ||||
| # ERLANG_NODE=ejabberd | ||||
| #   Lets erlang add hostname to the node (ejabberd uses short name in this case) | ||||
| # ERLANG_NODE=ejabberd@hostname | ||||
| #   Erlang uses node name as is (so make sure that hostname is a real | ||||
| #   machine hostname or you'll not be able to control ejabberd) | ||||
| # ERLANG_NODE=ejabberd@hostname.domainname | ||||
| #   The same as previous, but erlang will use long hostname | ||||
| #   (see erl (1) manual for details) | ||||
| # | ||||
| # Default: ejabberd@localhost | ||||
| # | ||||
| #ERLANG_NODE=ejabberd@localhost | ||||
| 
 | ||||
| #. | ||||
| #' EJABBERD_PID_PATH: ejabberd PID file | ||||
| # | ||||
| # Indicate the full path to the ejabberd Process identifier (PID) file. | ||||
| # If this variable is defined, ejabberd writes the PID file when starts, | ||||
| # and deletes it when stops. | ||||
| # Remember to create the directory and grant write permission to ejabberd. | ||||
| # | ||||
| # Default: don't write PID file | ||||
| # | ||||
| EJABBERD_PID_PATH=/var/run/ejabberd/ejabberd.pid | ||||
| 
 | ||||
| #. | ||||
| #' | ||||
| # vim: foldmarker=#',#. foldmethod=marker: | ||||
							
								
								
									
										46
									
								
								roles/ejabberd_xs/templates/xs-ejabberd-srg
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								roles/ejabberd_xs/templates/xs-ejabberd-srg
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,46 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| progctl=/usr/sbin/ejabberdctl | ||||
| 
 | ||||
| SYS_DOMAIN_FILE=/etc/sysconfig/xs_domain_name | ||||
| OUR_DOMAIN_FILE=/etc/sysconfig/ejabberd_domain_name | ||||
| 
 | ||||
| setup_online_srg() { | ||||
| 
 | ||||
|     if [ -e /var/lib/ejabberd/online_src_created ]; then | ||||
| 	return 0 | ||||
|     fi; | ||||
| 
 | ||||
|     # give ejabberd a bit of time to startup on XO-1 HW :-) | ||||
|     sleep 10; | ||||
| 
 | ||||
|     short_host=`hostname -s` | ||||
|     domain=`cat "$SYS_DOMAIN_FILE"` | ||||
| 
 | ||||
|     # Note: grep -q exits as soon as the match is found, which ejabberdctl | ||||
|     # doesn't like. So we send the output to /dev/null instead - more | ||||
|     # portable too. | ||||
|     # | ||||
|     # ejabberdctl should handle SIGPIPE without messing up, but that's | ||||
|     # a minor problem anyway. | ||||
|     # | ||||
|     if ! ejabberdctl srg_list "$short_host.$domain" | grep '^Online$' > /dev/null ; then | ||||
| 	# ejabberdctl doesn't like spaces in the description field. | ||||
| 	# backslashes work - but escaping is better left alone for now :-) | ||||
| 	ejabberdctl srg_create Online "$short_host.$domain" \ | ||||
| 	    Online "Created_by_ejabberd_init" Online | ||||
| 	[ $? -eq 0 ] || return 1 | ||||
|     fi | ||||
| 
 | ||||
|     if ! ejabberdctl srg_get_info Online "$short_host.$domain" | grep '^online_users: true$' > /dev/null ; then | ||||
| 	ejabberdctl srg_user_add '@online@' "$short_host.$domain" \ | ||||
| 	    Online "$short_host.$domain" | ||||
| 	[ $? -eq 0 ] || return 1 | ||||
|     fi | ||||
| 
 | ||||
|     # mark success | ||||
|     touch /var/lib/ejabberd/online_src_created | ||||
| } | ||||
| 
 | ||||
| setup_online_srg | ||||
| 
 | ||||
|  | @ -173,6 +173,8 @@ ejabberd_enabled: False | |||
| idmgr_install: True | ||||
| activity_server_install: False | ||||
| xo_services_enabled: False | ||||
| ejabberd_xs_install: False | ||||
| ejabberd_xs_enabled: False | ||||
| 
 | ||||
| # 6-GENERIC-APPS | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue