Mise en ligne TPs
commit
811789b2c1
Binary file not shown.
@ -0,0 +1,107 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
OS_PUBLIC_ENDPOINT_FQDN="horizon.master-oivm.fr"
|
||||||
|
OS_PUBLIC_ENDPOINT_IPV4="10.10.0.2"
|
||||||
|
|
||||||
|
[ -n "$DEBUG" ] && set -e
|
||||||
|
#exec 3>&1 &>/dev/null
|
||||||
|
|
||||||
|
VENV="${1:-.venv}"
|
||||||
|
ACTIVATE="$VENV/bin/activate"
|
||||||
|
if grep -qEi 'debian|ubuntu|mint' /etc/*release; then
|
||||||
|
PKGMANAGER="apt"
|
||||||
|
PKGMANAGER_CACHE="apt update"
|
||||||
|
elif grep -qEi 'fedora|centos|redhat' /etc/*release; then
|
||||||
|
PKGMANAGER="yum"
|
||||||
|
PKGMANAGER_CACHE="yum makecache"
|
||||||
|
else
|
||||||
|
echo "OS is not supported."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
enter_venv () {
|
||||||
|
local VENV=${1:-".venv"}
|
||||||
|
pkg_install python3
|
||||||
|
pkg_install build-essential
|
||||||
|
pkg_install libssl-dev
|
||||||
|
pkg_install libffi-dev
|
||||||
|
pkg_install python3-dev
|
||||||
|
[ $PKGMANAGER == "apt" ] && pkg_install python3-venv
|
||||||
|
python3 -m venv "$VENV" || exit
|
||||||
|
source "$VENV/bin/activate"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_exist () {
|
||||||
|
$PKGMANAGER list --installed 2>/dev/null | grep -qi "^$1" || command -v "$1" &>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_install () {
|
||||||
|
for pkg in "$@"; do
|
||||||
|
if ! pkg_exist "$pkg"; then
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "$pkg needs to be installed"
|
||||||
|
echo "Please run as root"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
$PKGMANAGER_CACHE &>/dev/null
|
||||||
|
$PKGMANAGER -y install "$pkg" &>/dev/null && echo "[OK] $pkg" || echo "[Error] $pkg"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
install_deps () {
|
||||||
|
local REQUIREMENTS=$(mktemp)
|
||||||
|
cat << EOF > "$REQUIREMENTS"
|
||||||
|
pip
|
||||||
|
setuptools
|
||||||
|
wheel
|
||||||
|
python-openstackclient
|
||||||
|
EOF
|
||||||
|
pip install --upgrade -r "$REQUIREMENTS"
|
||||||
|
rm -f "$REQUIREMENTS"
|
||||||
|
|
||||||
|
local BIN=$(echo ${PATH%%:*})
|
||||||
|
mkdir -p "$BIN"
|
||||||
|
|
||||||
|
pkg_install curl unzip wget openvpn
|
||||||
|
|
||||||
|
if ! pkg_exist terraform; then
|
||||||
|
local TEMPFILE=$(mktemp)
|
||||||
|
curl -Ls https://releases.hashicorp.com/terraform/1.8.5/terraform_1.8.5_linux_amd64.zip \
|
||||||
|
-o "$TEMPFILE"
|
||||||
|
unzip "$TEMPFILE" -d "$BIN"
|
||||||
|
chmod +x "$BIN/terraform"
|
||||||
|
rm -f "$TEMPFILE"
|
||||||
|
else
|
||||||
|
echo "[Ok] $(which terraform)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
enter_venv "$VENV"
|
||||||
|
install_deps
|
||||||
|
|
||||||
|
# UPEC extra config for debian
|
||||||
|
for rc in "export OS_CLOUD=openstack" \
|
||||||
|
"export https_proxy=" \
|
||||||
|
"export HTTPS_PROXY=" \
|
||||||
|
"export HTTP_PROXY=" \
|
||||||
|
"export all_proxy=" \
|
||||||
|
"export ALL_PROXY=" \
|
||||||
|
"export no_proxy=" \
|
||||||
|
"export NO_PROXY=" \
|
||||||
|
"export http_proxy="
|
||||||
|
do
|
||||||
|
if ! grep -q "$rc" "$VENV/bin/activate"; then
|
||||||
|
echo "$rc" >> "$VENV/bin/activate"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! grep -q "$OS_PUBLIC_ENDPOINT_FQDN" /etc/hosts; then
|
||||||
|
echo "$OS_PUBLIC_ENDPOINT_IPV4 $OS_PUBLIC_ENDPOINT_FQDN" >> /etc/hosts
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "######################################################"
|
||||||
|
echo "Enter you lab environment with the following command :"
|
||||||
|
echo "$ source $VENV/bin/activate"
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
provider "openstack" {
|
||||||
|
cloud = "openstack"
|
||||||
|
use_octavia = true
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
# Define required providers
|
||||||
|
terraform {
|
||||||
|
required_version = ">= 0.14.0"
|
||||||
|
required_providers {
|
||||||
|
openstack = {
|
||||||
|
source = "terraform-provider-openstack/openstack"
|
||||||
|
version = "~> 1.53.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue