Adjust parametersetting in case of gitlab installation.

This commit is contained in:
Christoph 2019-05-14 03:58:57 +02:00
parent 0525664333
commit 873368edfe

View File

@ -294,6 +294,20 @@ elif [[ "$WEBSERVER_INSTALLATION" = "GitLab" ]] ;then
GITLAB_CONF_FILE=/etc/gitlab/gitlab.rb GITLAB_CONF_FILE=/etc/gitlab/gitlab.rb
gitlab_ctl_script=/usr/bin/gitlab-ctl gitlab_ctl_script=/usr/bin/gitlab-ctl
gitlab_installed=true gitlab_installed=true
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "Insert hostname (external_url)"
echo ""
_HOST_NAME="$(hostname --fqdn)"
HOST_NAME=
echononl "Hostname [${_HOST_NAME}]: "
read HOST_NAME
if [[ "X${HOST_NAME}" = "X" ]] ; then
HOST_NAME="${_HOST_NAME}"
fi
else else
APACHE_VHOST_DIR= APACHE_VHOST_DIR=
APACHE_CONF_DIR= APACHE_CONF_DIR=
@ -302,6 +316,8 @@ else
warn "This Type of Webserver Installation is not yet available" warn "This Type of Webserver Installation is not yet available"
fi fi
HOST_NAME=git.warenform.de
echo "" echo ""
echo "" echo ""
@ -319,7 +335,7 @@ echo ""
if [[ "$DH_CRON_TYPE" = "system" ]]; then if [[ "$DH_CRON_TYPE" = "system" ]]; then
echo "DH Cronjob Type...............: Installed as file in /etc/cron.d" echo "DH Cronjob Type...............: Installed as file in /etc/cron.d"
elif [[ "$DH_CRON_TYPE" = "user" ]]; then elif [[ "$DH_CRON_TYPE" = "user" ]]; then
echo "DH Cronjob Type...............: Added to /var/spool/cron/root" echo "DH Cronjob Type...............: Added to root cronjobs"
else else
echo -e "DH Cronjob Type...............: \033[33mSkip activation\033[m" echo -e "DH Cronjob Type...............: \033[33mSkip activation\033[m"
fi fi
@ -333,7 +349,10 @@ if [[ "$WEBSERVER_INSTALLATION" =~ Apache2 ]]; then
elif [[ "$WEBSERVER_INSTALLATION" =~ Nginx ]]; then elif [[ "$WEBSERVER_INSTALLATION" =~ Nginx ]]; then
echo "nginx Directory.,............: $NGINX_BASE_DIR" echo "nginx Directory.,............: $NGINX_BASE_DIR"
echo "nginx Vhost Directory........: $NGINX_VHOST_DIR" echo "nginx Vhost Directory........: $NGINX_VHOST_DIR"
elif [[ "$WEBSERVER_INSTALLATION" =~ GitLab ]]; then
echo "Hostname (external_url)......: $HOST_NAME"
fi fi
echo ""
echononl "Start with that configuration? [yes/no]: " echononl "Start with that configuration? [yes/no]: "
read OK read OK
@ -467,7 +486,93 @@ fi
if [[ -n "$GITLAB_CONF_FILE" ]]; then if [[ -n "$GITLAB_CONF_FILE" ]]; then
echononl " 1. Adjust GitLab Configuration (${GITLAB_CONF_FILE})" echononl " Adjust ${GITLAB_CONF_FILE} - letsencrypt['enable']"
if ! grep -E "^\s*letsencrypt\['enable'\]" $GITLAB_CONF_FILE 2> /dev/null | grep -q -E "false" 2> /dev/null ; then
if grep -q -E "^\s*letsencrypt\['enable'\]" $GITLAB_CONF_FILE 2> /dev/null ; then
perl -i -n -p -e "s#^(\s*(letsencrypt\['enable'\]).*)#\#\# \1\n\2 = false#" $GITLAB_CONF_FILE
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
elif ! grep -q -E "^\s*#\s*letsencrypt\['enable'\]" $GITLAB_CONF_FILE 2> /dev/null ; then
cat <<EOF >> ${GITLAB_CONF_FILE}
################################################################################
## Added by dehydrated install script $(basename $0)
################################################################################
letsencrypt['enable'] = false
EOF
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
else
perl -i -n -p -e "s#^(\s*\#\s*(letsencrypt\['enable'\]).*)#\1\n\2 = false#" $GITLAB_CONF_FILE
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
fi
else
echo_skipped
fi
echononl " Adjust ${GITLAB_CONF_FILE} - external_url"
if ! grep -E "^\s*external_url" $GITLAB_CONF_FILE 2> /dev/null | grep -q -E "${HOST_NAME}" 2> /dev/null ; then
if grep -q -E "^\s*external_url" $GITLAB_CONF_FILE 2> /dev/null ; then
perl -i -n -p -e "s#^(\s*(external_url).*)#\#\# \1\n\2 'https://${HOST_NAME}'#" $GITLAB_CONF_FILE
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
elif ! grep -q -E "^\s*#\s*external_url" $GITLAB_CONF_FILE 2> /dev/null ; then
cat <<EOF >> ${GITLAB_CONF_FILE}
################################################################################
## Added by dehydrated install script $(basename $0)
################################################################################
external_url 'https://${HOST_NAME}'
EOF
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
else
perl -i -n -p -e "s#^(\s*\#\s*(external_url).*)#\1\n\2 'https://${HOST_NAME}'#" $GITLAB_CONF_FILE
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
fi
else
echo_skipped
fi
echononl " Adjust ${GITLAB_CONF_FILE} - nginx['custom_gitlab_server_config']"
if ! grep -E "^\s*nginx\['custom_gitlab_server_config'\]" $GITLAB_CONF_FILE 2> /dev/null | grep -q ".well-known/acme-challenge" 2> /dev/null ; then if ! grep -E "^\s*nginx\['custom_gitlab_server_config'\]" $GITLAB_CONF_FILE 2> /dev/null | grep -q ".well-known/acme-challenge" 2> /dev/null ; then
if ! grep -q -E "^\s*#\s*nginx\['custom_gitlab_server_config'\]" $GITLAB_CONF_FILE 2> /dev/null ; then if ! grep -q -E "^\s*#\s*nginx\['custom_gitlab_server_config'\]" $GITLAB_CONF_FILE 2> /dev/null ; then
@ -499,7 +604,7 @@ EOF
echo_skipped echo_skipped
fi fi
echononl " 2. Adjust GitLab Configuration (${GITLAB_CONF_FILE})" echononl " Adjust ${GITLAB_CONF_FILE} - nginx['listen_addresses']"
if ! grep -E "^\s*nginx\['listen_addresses'\]" $GITLAB_CONF_FILE 2> /dev/null | grep -q -E "\['\*',\s*'\[::]'\]" 2> /dev/null ; then if ! grep -E "^\s*nginx\['listen_addresses'\]" $GITLAB_CONF_FILE 2> /dev/null | grep -q -E "\['\*',\s*'\[::]'\]" 2> /dev/null ; then
@ -532,6 +637,93 @@ EOF
echo_skipped echo_skipped
fi fi
echononl " Adjust ${GITLAB_CONF_FILE} - nginx['redirect_http_to_https']"
if ! grep -E "^\s*nginx\['redirect_http_to_https'\]" $GITLAB_CONF_FILE 2> /dev/null | grep -q -E "true" 2> /dev/null ; then
if grep -q -E "^\s*nginx\['redirect_http_to_https'\]" $GITLAB_CONF_FILE 2> /dev/null ; then
perl -i -n -p -e "s#^(\s*(nginx\['redirect_http_to_https'\]).*)#\#\# \1\n\2 = true#" $GITLAB_CONF_FILE
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
elif ! grep -q -E "^\s*#\s*nginx\['redirect_http_to_https'\]" $GITLAB_CONF_FILE 2> /dev/null ; then
cat <<EOF >> ${GITLAB_CONF_FILE}
################################################################################
## Added by dehydrated install script $(basename $0)
################################################################################
nginx['redirect_http_to_https'] = true
EOF
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
else
perl -i -n -p -e "s#^(\s*\#\s*(nginx\['redirect_http_to_https'\]).*)#\1\n\2 = true#" $GITLAB_CONF_FILE
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
fi
else
echo_skipped
fi
echononl " Create Directory '/etc/gitlab/ssl'.."
if [[ ! -d "/etc/gitlab/ssl" ]]; then
mkdir -p "/etc/gitlab/ssl" > /dev/null 2>&1
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
else
echo_skipped
fi
echononl " Create Symlink '/etc/gitlab/ssl/${HOST_NAME}.key'.."
if [[ -h "/etc/gitlab/ssl/${HOST_NAME}.key" ]] \
&& [[ "$(readlink -qs "/etc/gitlab/ssl/${HOST_NAME}.key")" = "/var/lib/dehydrated/certs/${HOST_NAME}/privkey.pem" ]] ; then
echo_skipped
else
rm -rf "/etc/gitlab/ssl/${HOST_NAME}.key" > /dev/null 2>&1
ln -s "/var/lib/dehydrated/certs/${HOST_NAME}/privkey.pem" "/etc/gitlab/ssl/${HOST_NAME}.key" > /dev/null 2>&1
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
fi
echononl " Create Symlink '/etc/gitlab/ssl/${HOST_NAME}.crt'.."
if [[ -h "/etc/gitlab/ssl/${HOST_NAME}.crt" ]] \
&& [[ "$(readlink -qs "/etc/gitlab/ssl/${HOST_NAME}.crt")" = "/var/lib/dehydrated/certs/${HOST_NAME}/fullchain.pem" ]]; then
echo_skipped
else
rm -rf "/etc/gitlab/ssl/${HOST_NAME}.crt" > /dev/null 2>&1
ln -s "/var/lib/dehydrated/certs/${HOST_NAME}/fullchain.pem" "/etc/gitlab/ssl/${HOST_NAME}.crt" > /dev/null 2>&1
if [[ $? -eq 0 ]] ; then
echo_ok
gitlab_reconfigure=true
else
echo_failed
fi
fi
fi fi