jean-cloud-services/provisioning/roles/deploy_all/files/bin/deployall.sh

87 lines
2.5 KiB
Bash
Raw Normal View History

2023-04-24 10:11:09 +00:00
#!/bin/bash
driglibash_run_retry=true
. driglibash-base
set -euo pipefail
2023-09-07 17:50:05 +00:00
# Already done at upload time ?
#run gen_env.sh
2023-08-28 18:25:32 +00:00
2023-04-24 10:11:09 +00:00
###############################################################################
# Variables
###############################################################################
2023-09-13 08:46:02 +00:00
set -a
. /etc/jeancloud.env
set +a
2023-04-24 10:11:09 +00:00
###############################################################################
# Helpers
###############################################################################
# Path to this directory
here="$(where 'follow_links')"
2023-09-07 17:50:05 +00:00
###############################################################################
# Test system requirements
###############################################################################
[ ! -f /data/mounted ] && die "/data is not mounted"
2023-04-24 10:11:09 +00:00
###############################################################################
# Nginx preparation
###############################################################################
driglibash_section_prefix="[Prepare nginx] "
2023-08-28 18:25:32 +00:00
section "Delete new conf directory (to start from scratch)"
2023-04-24 10:11:09 +00:00
run rm -rf "$new_nginx_conf_path"
section "Create new conf file (for tests purposes)"
sed "s#$nginx_conf_path#$new_nginx_conf_path#" "/docker/_proxy/nginx.conf" > "$proxy_dir/new_nginx.conf"
section "Create proxy dir"
run mkdir -p "$proxy_dir" /docker /data
run chown root:root /docker
run chown root:root /data
run chmod 755 /docker
run chmod 755 /data
section "Create new conf directory"
run mkdir -p "$new_nginx_conf_path"
###############################################################################
# Deploy services
###############################################################################
2023-09-07 17:50:05 +00:00
if [ -f "/data/unmounted" ] || [ ! -f "/data/mounted" ] ; then
die "Error: /data is not mounted."
fi
2023-08-28 18:25:32 +00:00
section "Start docker"
run systemctl start docker docker.socket
section "Deploy mandatory services"
deploy_service.sh deployer.jean-cloud.org noreload
2023-09-07 17:50:05 +00:00
while read line ; do
read -r service target <<<$(echo "$line")
2023-04-24 10:11:09 +00:00
# Ignore _ prefixed directories
[ "${service::1}" == '_' ] && continue
2023-09-07 17:50:05 +00:00
echo -n "$service -> "
[ ! -d "/docker/$service" ] && die "/docker/$service directory not found"
# Check if service target is localhost
[[ "$(getent hosts $target)" != "::1 "* ]] && echo 'Not here' && continue
echo "Deploying"
2023-08-28 18:25:32 +00:00
deploy_service.sh "$service" "noreload"
2023-04-24 10:11:09 +00:00
2023-09-07 17:50:05 +00:00
done < /docker/services.txt
2023-04-24 10:11:09 +00:00
2023-08-28 18:25:32 +00:00
restart_nginx.sh
2023-04-24 10:11:09 +00:00
clean