diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2019-06-10 15:19:27 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2019-06-28 15:11:46 +0200 |
commit | 5440500624a503b3f91852cd17089aab76afe806 (patch) | |
tree | 29ee9c6efe6d9879c34271c60471765099f63474 /ci/deploy.sh | |
parent | f50cd4f58b2971c07c1ad37dbb4ebbf044ab1dc6 (diff) |
[iec] Add basic CentOS support (virtual only)
- reclass: iec: CentOS compatibility changes:
* drop `proto: static` in favor of letting the linux formula set
the appropiate default based on target OS;
* replace `proto: manual` with `proto: none` on RHEL systems;
* system.file: Avoid using non-existing `shadow` group for system
files;
* load br_netfilter kernel module to avoid `linux.network` state
failures;
* disable `at`, `cron` due to incomplete defaults in
salt-formula-linux (since we don't use them on iec nodes anyway);
- jumpserver/VCP VMs: centos: enable predictable interface names:
* CentOS cloud image defaults to old 'eth' naming scheme;
* add necessary kernel boot options via linux state;
* cleanup auto-generated udev rules for old eth interface names;
- salt-formula-linux: network: RHEL: Set bridge for member interfaces
* Find the bridge containing the interface being currently
configured (if any) and pass it to the `network.managed` Salt call;
- deploy.sh: Add new deploy argument `-o` for specifying the operating
system to preinstall on jumpserver and/or VCP VMs;
* defaults to 'ubuntu1604';
* only iec scenarios will also support 'centos' for now;
- user-data: minor tweaks for CentOS compatability:
* use `systemctl` instead of `service` utility;
* explicitly enable `salt-minion` service, since it defaults to
disabled on RHEL systems;
* explicitly call `ldconfig` to work around stale cache on RHEL,
preventing `salt-minion` from using OpenSSL library;
- states: virtual_init: Skip non-existing sysctl options on CentOS:
* CentOS currently uses a 3.x kernel which lacks certain sysctl
options that were only introduced in 4.x kernels, so skip them;
- state: akraino_iec: Add centos support:
* move iec repo to `/var/lib/akraino/iec` on both Salt Master and
cluster nodes;
- scenario defaults: Add CentOS configuration:
* OS-dependent configuration split;
* CentOS base image, default packages etc.;
- AArch64 deploy requirements: Add `xz` dependency
* CentOS AArch64 cloud image is archived using xz, install xz tools
for decompression;
- xdf_data: Make yaml parsing OS agnostic:
* rename `apt` to `repo` where appropiate;
* OS-dependent configuration parsing;
- lib_jump_deploy: CentOS handling changes:
* skip filesystem resize of cloud image for CentOS;
* add repo handling, package intallation/removal handling for CentOS;
* unxz base image if necessary (CentOS AArch64 cloud image);
Change-Id: Ic3538bacd53198701ff4ef77db62218eabc662e7
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'ci/deploy.sh')
-rwxr-xr-x | ci/deploy.sh | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ci/deploy.sh b/ci/deploy.sh index a657f7610..7443753a7 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -38,7 +38,8 @@ $(notify "USAGE:" 2) $(basename "$0") -l lab-name -p pod-name -s deploy-scenario \\ [-b Lab Config Base URI] \\ [-S storage-dir] [-L /path/to/log/file.tar.gz] \\ - [-f] [-F[F]] [-e[e] | -E[E]] [-d] [-D] [-N] [-m] + [-f] [-F[F]] [-e[e] | -E[E]] [-d] [-D] [-N] [-m] \\ + [-o operating-system] $(notify "OPTIONS:" 2) -b Base-uri for the stack-configuration structure @@ -51,6 +52,7 @@ $(notify "OPTIONS:" 2) -h Print this message and exit -l Lab-name -p Pod-name + -o Use specified operating system for jumpserver/VCP VMs -P Skip installation of package dependencies -s Deploy-scenario short-name -S Storage dir for VM images and other deploy artifacts @@ -101,6 +103,9 @@ $(notify_i "Input parameters to the build script are:" 2) single guest CPU socket. -N Experimental: Instead of virtualizing the control plane (VCP), deploy control plane directly on baremetal nodes +-o Operating system to be preinstalled on jumpserver VMs (for virtual/hybrid + deployments) and/or VCP VMs (for baremetal deployments). + Defaults to 'ubuntu1604' (Xenial). -P Skip installing dependency distro packages on current host This flag should only be used if you have kept back older packages that would be upgraded and that is undesirable on the current system. @@ -148,6 +153,7 @@ ERASE_ENV=${ERASE_ENV:-0} MCP_VCP=${MCP_VCP:-1} MCP_DOCKER_TAG=${MCP_DOCKER_TAG:-${DEF_DOCKER_TAG}} MCP_CMP_SS=${MCP_CMP_SS:-0} +MCP_OS=${MCP_OS:-ubuntu1604} source "${DEPLOY_DIR}/globals.sh" source "${DEPLOY_DIR}/lib.sh" @@ -163,7 +169,7 @@ source "${DEPLOY_DIR}/lib_jump_deploy.sh" # BEGIN of main # set +x -while getopts "b:dDfEFl:L:Np:Ps:S:he" OPTION +while getopts "b:dDfEFl:L:No:p:Ps:S:he" OPTION do case $OPTION in b) @@ -201,6 +207,9 @@ do N) MCP_VCP=0 ;; + o) + MCP_OS=${OPTARG} + ;; p) TARGET_POD=${OPTARG} ;; @@ -285,7 +294,7 @@ export MAAS_SSH_KEY="$(cat "$(basename "${SSH_KEY}").pub")" [[ "${DEPLOY_SCENARIO}" =~ -ha$ ]] || MCP_VCP=0 export MCP_REPO_ROOT_PATH MCP_VCP MCP_STORAGE_DIR MCP_DOCKER_TAG MCP_CMP_SS \ MCP_JUMP_ARCH=$(uname -i) MCP_DEPLOY_SCENARIO="${DEPLOY_SCENARIO}" \ - MCP_NO_DEPLOY_ENVIRONMENT + MCP_NO_DEPLOY_ENVIRONMENT MCP_OS do_templates_scenario "${MCP_STORAGE_DIR}" "${TARGET_LAB}" "${TARGET_POD}" \ "${BASE_CONFIG_URI}" "${SCENARIO_DIR}" \ "${SCENARIO_DIR}/${DEPLOY_SCENARIO}.yaml" |