mirror of
https://github.com/zulip/zulip.git
synced 2025-11-17 20:41:46 +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
|
echo -e "[machine]\npuppet_classes = $PUPPET_CLASSES\ndeploy_type = $DEPLOYMENT_TYPE" > /etc/zulip/zulip.conf
|
||||||
/root/zulip/scripts/zulip-puppet-apply -f
|
/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
|
# These server restarting bits should be moveable into puppet-land, ideally
|
||||||
apt-get -y upgrade
|
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.
|
# Check nginx was configured properly now that we've installed it.
|
||||||
# Most common failure mode is certs not having been installed.
|
# Most common failure mode is certs not having been installed.
|
||||||
nginx -t
|
nginx -t
|
||||||
service nginx restart
|
service nginx restart
|
||||||
fi
|
fi
|
||||||
|
|
||||||
/root/zulip/scripts/setup/generate_secrets.py
|
if [ "$has_appserver" = 0 ]; then
|
||||||
cp -a /root/zulip/zproject/local_settings_template.py /etc/zulip/settings.py
|
/root/zulip/scripts/setup/generate_secrets.py
|
||||||
ln -nsf /etc/zulip/settings.py /root/zulip/zproject/local_settings.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
|
# 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
|
# We don't run this in Travis CI due to a weird hang bug
|
||||||
service camo restart
|
service camo restart
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! rabbitmqctl status >/dev/null; then
|
if [ "$has_rabbit" = 0 ]; then
|
||||||
set +x
|
if ! rabbitmqctl status >/dev/null; then
|
||||||
echo; echo "RabbitMQ seems to not have started properly after the installation process."
|
set +x
|
||||||
echo "Often, this can be caused by misconfigured /etc/hosts in virtualized environments"
|
echo; echo "RabbitMQ seems to not have started properly after the installation process."
|
||||||
echo "See https://github.com/zulip/zulip/issues/53#issuecomment-143805121"
|
echo "Often, this can be caused by misconfigured /etc/hosts in virtualized environments"
|
||||||
echo "for more information"
|
echo "See https://github.com/zulip/zulip/issues/53#issuecomment-143805121"
|
||||||
echo
|
echo "for more information"
|
||||||
set -x
|
echo
|
||||||
exit 1
|
set -x
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
/root/zulip/scripts/setup/configure-rabbitmq
|
||||||
fi
|
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 [ -e "/var/run/supervisor.sock" ]; then
|
||||||
# If supervisor isn't running, no need to chown its socket
|
# If supervisor isn't running, no need to chown its socket
|
||||||
chown zulip:zulip /var/run/supervisor.sock
|
chown zulip:zulip /var/run/supervisor.sock
|
||||||
|
|||||||
Reference in New Issue
Block a user