Create tools/install_prereqs.sh
* Factor system package prereq installs out to tools/install_prereqs.sh * Set minimum time between runs with PREREQ_RERUN_HOURS default = 2 hours * Create re_export_proxy_variables Change-Id: I4a182b1da685f403d6abdd8540d2114796c01682
This commit is contained in:
parent
63ea3185de
commit
7be0b047dc
21
functions
21
functions
@ -710,6 +710,27 @@ function restart_service() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# HTTP and HTTPS proxy servers are supported via the usual environment variables [1]
|
||||||
|
# ``http_proxy``, ``https_proxy`` and ``no_proxy``. They can be set in
|
||||||
|
# ``localrc`` or on the command line if necessary::
|
||||||
|
#
|
||||||
|
# [1] http://www.w3.org/Daemon/User/Proxies/ProxyClients.html
|
||||||
|
#
|
||||||
|
# http_proxy=http://proxy.example.com:3128/ no_proxy=repo.example.net ./stack.sh
|
||||||
|
|
||||||
|
function re_export_proxy_variables() {
|
||||||
|
if [[ -n "$http_proxy" ]]; then
|
||||||
|
export http_proxy=$http_proxy
|
||||||
|
fi
|
||||||
|
if [[ -n "$https_proxy" ]]; then
|
||||||
|
export https_proxy=$https_proxy
|
||||||
|
fi
|
||||||
|
if [[ -n "$no_proxy" ]]; then
|
||||||
|
export no_proxy=$no_proxy
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Helper to launch a service in a named screen
|
# Helper to launch a service in a named screen
|
||||||
# screen_it service "command-line"
|
# screen_it service "command-line"
|
||||||
function screen_it {
|
function screen_it {
|
||||||
|
20
stack.sh
20
stack.sh
@ -644,25 +644,7 @@ set -o xtrace
|
|||||||
|
|
||||||
# Install package requirements
|
# Install package requirements
|
||||||
echo_summary "Installing package prerequisites"
|
echo_summary "Installing package prerequisites"
|
||||||
if is_ubuntu; then
|
$TOP_DIR/tools/install_prereqs.sh
|
||||||
install_package $(get_packages $FILES/apts)
|
|
||||||
elif is_fedora; then
|
|
||||||
install_package $(get_packages $FILES/rpms)
|
|
||||||
elif is_suse; then
|
|
||||||
install_package $(get_packages $FILES/rpms-suse)
|
|
||||||
else
|
|
||||||
exit_distro_not_supported "list of packages"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $SYSLOG != "False" ]]; then
|
|
||||||
if is_ubuntu || is_fedora; then
|
|
||||||
install_package rsyslog-relp
|
|
||||||
elif is_suse; then
|
|
||||||
install_package rsyslog-module-relp
|
|
||||||
else
|
|
||||||
exit_distro_not_supported "rsyslog-relp installation"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if is_service_enabled rabbit; then
|
if is_service_enabled rabbit; then
|
||||||
# Install rabbitmq-server
|
# Install rabbitmq-server
|
||||||
|
78
tools/install_prereqs.sh
Executable file
78
tools/install_prereqs.sh
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# **install_prereqs.sh**
|
||||||
|
|
||||||
|
# Install system package prerequisites
|
||||||
|
#
|
||||||
|
# install_prereqs.sh [-f]
|
||||||
|
#
|
||||||
|
# -f Force an install run now
|
||||||
|
|
||||||
|
|
||||||
|
if [[ -n "$1" && "$1" = "-f" ]]; then
|
||||||
|
FORCE=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Keep track of the devstack directory
|
||||||
|
TOP_DIR=$(cd $(dirname "$0")/.. && pwd)
|
||||||
|
|
||||||
|
# Import common functions
|
||||||
|
source $TOP_DIR/functions
|
||||||
|
|
||||||
|
# Determine what system we are running on. This provides ``os_VENDOR``,
|
||||||
|
# ``os_RELEASE``, ``os_UPDATE``, ``os_PACKAGE``, ``os_CODENAME``
|
||||||
|
# and ``DISTRO``
|
||||||
|
GetDistro
|
||||||
|
|
||||||
|
# Needed to get ``ENABLED_SERVICES``
|
||||||
|
source $TOP_DIR/stackrc
|
||||||
|
|
||||||
|
# Prereq dirs are here
|
||||||
|
FILES=$TOP_DIR/files
|
||||||
|
|
||||||
|
# Minimum wait time
|
||||||
|
PREREQ_RERUN_MARKER=${PREREQ_RERUN_MARKER:-$TOP_DIR/.prereqs}
|
||||||
|
PREREQ_RERUN_HOURS=${PREREQ_RERUN_HOURS:-2}
|
||||||
|
PREREQ_RERUN_SECONDS=$((60*60*$PREREQ_RERUN_HOURS))
|
||||||
|
|
||||||
|
NOW=$(date "+%s")
|
||||||
|
LAST_RUN=$(head -1 $PREREQ_RERUN_MARKER 2>/dev/null || echo "0")
|
||||||
|
DELTA=$(($NOW - $LAST_RUN))
|
||||||
|
if [[ $DELTA -lt $PREREQ_RERUN_SECONDS && -z "$FORCE" ]]; then
|
||||||
|
echo "Re-run time has not expired ($(($PREREQ_RERUN_SECONDS - $DELTA)) seconds remaining); exiting..."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure the proxy config is visible to sub-processes
|
||||||
|
re_export_proxy_variables
|
||||||
|
|
||||||
|
# Install Packages
|
||||||
|
# ================
|
||||||
|
|
||||||
|
# Install package requirements
|
||||||
|
if is_ubuntu; then
|
||||||
|
install_package $(get_packages $FILES/apts)
|
||||||
|
elif is_fedora; then
|
||||||
|
install_package $(get_packages $FILES/rpms)
|
||||||
|
elif is_suse; then
|
||||||
|
install_package $(get_packages $FILES/rpms-suse)
|
||||||
|
else
|
||||||
|
exit_distro_not_supported "list of packages"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$SYSLOG" && "$SYSLOG" != "False" ]]; then
|
||||||
|
if is_ubuntu || is_fedora; then
|
||||||
|
install_package rsyslog-relp
|
||||||
|
elif is_suse; then
|
||||||
|
install_package rsyslog-module-relp
|
||||||
|
else
|
||||||
|
exit_distro_not_supported "rsyslog-relp installation"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Mark end of run
|
||||||
|
# ---------------
|
||||||
|
|
||||||
|
date "+%s" >$PREREQ_RERUN_MARKER
|
||||||
|
date >>$PREREQ_RERUN_MARKER
|
Loading…
Reference in New Issue
Block a user