mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	install: Improve support for non-default puppet rules.
Previously, the install script would fail if you passed various non-default puppet rules, since the code to configure and restart services that runs later on in the install script largely ran unconditionally, regardless of whether the relevant service was actually installed on the target system. This should make the main install script reusable for installing e.g. a dedicated Postgres server for use with Zulip.
This commit is contained in:
		@@ -49,49 +49,65 @@ mkdir -p /etc/zulip
 | 
			
		||||
echo -e "[machine]\npuppet_classes = $PUPPET_CLASSES\ndeploy_type = $DEPLOYMENT_TYPE" > /etc/zulip/zulip.conf
 | 
			
		||||
/root/zulip/scripts/zulip-puppet-apply -f
 | 
			
		||||
 | 
			
		||||
# Detect which features were selected for the below
 | 
			
		||||
[ -e "/etc/init.d/camo" ]; has_camo=$?
 | 
			
		||||
[ -e "/etc/init.d/nginx" ]; has_nginx=$?
 | 
			
		||||
[ -e "/etc/supervisor/conf.d/zulip.conf" ]; has_appserver=$?
 | 
			
		||||
[ -e "/etc/cron.d/rabbitmq-numconsumers" ]; has_rabbit=$?
 | 
			
		||||
[ -e "/etc/init.d/postgresql" ]; has_postgres=$?
 | 
			
		||||
 | 
			
		||||
# These server restarting bits should be moveable into puppet-land, ideally
 | 
			
		||||
apt-get -y upgrade
 | 
			
		||||
if [ -e "/etc/init.d/nginx" ]; then
 | 
			
		||||
 | 
			
		||||
if [ "$has_nginx" = 0 ]; then
 | 
			
		||||
    # Check nginx was configured properly now that we've installed it.
 | 
			
		||||
    # Most common failure mode is certs not having been installed.
 | 
			
		||||
    nginx -t
 | 
			
		||||
    service nginx restart
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
/root/zulip/scripts/setup/generate_secrets.py
 | 
			
		||||
cp -a /root/zulip/zproject/local_settings_template.py /etc/zulip/settings.py
 | 
			
		||||
ln -nsf /etc/zulip/settings.py /root/zulip/zproject/local_settings.py
 | 
			
		||||
if [ "$has_appserver" = 0 ]; then
 | 
			
		||||
    /root/zulip/scripts/setup/generate_secrets.py
 | 
			
		||||
    cp -a /root/zulip/zproject/local_settings_template.py /etc/zulip/settings.py
 | 
			
		||||
    ln -nsf /etc/zulip/settings.py /root/zulip/zproject/local_settings.py
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Restart camo since generate_secrets.py likely replaced its secret key
 | 
			
		||||
if [ -z "$TRAVIS" ]; then
 | 
			
		||||
if [ "$has_camo" = 0 ] && [ -z "$TRAVIS" ]; then
 | 
			
		||||
    # We don't run this in Travis CI due to a weird hang bug
 | 
			
		||||
    service camo restart
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if ! rabbitmqctl status >/dev/null; then
 | 
			
		||||
    set +x
 | 
			
		||||
    echo; echo "RabbitMQ seems to not have started properly after the installation process."
 | 
			
		||||
    echo "Often, this can be caused by misconfigured /etc/hosts in virtualized environments"
 | 
			
		||||
    echo "See https://github.com/zulip/zulip/issues/53#issuecomment-143805121"
 | 
			
		||||
    echo "for more information"
 | 
			
		||||
    echo
 | 
			
		||||
    set -x
 | 
			
		||||
    exit 1
 | 
			
		||||
if [ "$has_rabbit" = 0 ]; then
 | 
			
		||||
    if ! rabbitmqctl status >/dev/null; then
 | 
			
		||||
        set +x
 | 
			
		||||
        echo; echo "RabbitMQ seems to not have started properly after the installation process."
 | 
			
		||||
        echo "Often, this can be caused by misconfigured /etc/hosts in virtualized environments"
 | 
			
		||||
        echo "See https://github.com/zulip/zulip/issues/53#issuecomment-143805121"
 | 
			
		||||
        echo "for more information"
 | 
			
		||||
        echo
 | 
			
		||||
        set -x
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
    /root/zulip/scripts/setup/configure-rabbitmq
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
/root/zulip/scripts/setup/configure-rabbitmq
 | 
			
		||||
if [ "$has_postgres" = 0 ]; then
 | 
			
		||||
    /root/zulip/scripts/setup/postgres-init-db
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
/root/zulip/scripts/setup/postgres-init-db
 | 
			
		||||
if [ "$has_appserver" = 0 ]; then
 | 
			
		||||
    deploy_path=$(/root/zulip/zulip_tools.py make_deploy_path)
 | 
			
		||||
    mv /root/zulip "$deploy_path"
 | 
			
		||||
    ln -nsf /home/zulip/deployments/next /root/zulip
 | 
			
		||||
    ln -nsf "$deploy_path" /home/zulip/deployments/next
 | 
			
		||||
    ln -nsf "$deploy_path" /home/zulip/deployments/current
 | 
			
		||||
    ln -nsf /etc/zulip/settings.py "$deploy_path"/zproject/local_settings.py
 | 
			
		||||
    mkdir -p "$deploy_path"/prod-static/serve
 | 
			
		||||
    cp -rT "$deploy_path"/prod-static/serve /home/zulip/prod-static
 | 
			
		||||
    chown -R zulip:zulip /home/zulip /var/log/zulip /etc/zulip/settings.py
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
deploy_path=$(/root/zulip/zulip_tools.py make_deploy_path)
 | 
			
		||||
mv /root/zulip "$deploy_path"
 | 
			
		||||
ln -nsf /home/zulip/deployments/next /root/zulip
 | 
			
		||||
ln -nsf "$deploy_path" /home/zulip/deployments/next
 | 
			
		||||
ln -nsf "$deploy_path" /home/zulip/deployments/current
 | 
			
		||||
ln -nsf /etc/zulip/settings.py "$deploy_path"/zproject/local_settings.py
 | 
			
		||||
mkdir -p "$deploy_path"/prod-static/serve
 | 
			
		||||
cp -rT "$deploy_path"/prod-static/serve /home/zulip/prod-static
 | 
			
		||||
chown -R zulip:zulip /home/zulip /var/log/zulip /etc/zulip/settings.py
 | 
			
		||||
if [ -e "/var/run/supervisor.sock" ]; then
 | 
			
		||||
    # If supervisor isn't running, no need to chown its socket
 | 
			
		||||
    chown zulip:zulip /var/run/supervisor.sock
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user