diff options
Diffstat (limited to 'bash/tools')
-rwxr-xr-x | bash/tools/000cleanup.sh | 41 | ||||
-rwxr-xr-x | bash/tools/create_si_onap_pkg.sh | 88 | ||||
-rwxr-xr-x | bash/tools/creating_data/upload-npm-pkgs.sh | 48 | ||||
-rwxr-xr-x | bash/tools/delete-local-images.sh | 19 | ||||
-rwxr-xr-x | bash/tools/download_offline_data_by_lists.sh | 80 | ||||
-rwxr-xr-x | bash/tools/gather_data_lists.sh | 34 | ||||
-rwxr-xr-x | bash/tools/load_stored_offline_data.sh | 87 | ||||
-rwxr-xr-x | bash/tools/setup_nfs_mount.sh | 44 | ||||
-rwxr-xr-x | bash/tools/setup_nfs_server_rhel.sh | 51 | ||||
-rwxr-xr-x | bash/tools/setup_nfs_server_ubuntu.sh | 51 |
10 files changed, 543 insertions, 0 deletions
diff --git a/bash/tools/000cleanup.sh b/bash/tools/000cleanup.sh new file mode 100755 index 00000000..3349c501 --- /dev/null +++ b/bash/tools/000cleanup.sh @@ -0,0 +1,41 @@ +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + +oldifs=$IFS +IFS=$'\n' + +echo "Deleting containers" +for x in $(docker ps -a); do + cid=$(echo "$x" | awk '{print $1}') + docker rm -f $cid +done + +echo "Deleting volumes" +for x in $(docker volume ls | grep -v 'nexus-data'); do + name=$(echo "$x" | awk '{print $2}') +# echo "A: $name" + docker volume rm $name +done + +echo "Unmounting kubelet pods" +for x in $(mount | grep 'kubelet/pods\|rancher\|docker' | cut -d ' ' -f 3) ; do umount "$x" ; done + +rm -rfd /var/lib/kubelet/* +rm -rfd /var/lib/rancher/* +rm -rfd /var/lib/docker/* + diff --git a/bash/tools/create_si_onap_pkg.sh b/bash/tools/create_si_onap_pkg.sh new file mode 100755 index 00000000..759a1ebc --- /dev/null +++ b/bash/tools/create_si_onap_pkg.sh @@ -0,0 +1,88 @@ +#! /usr/bin/env bash + +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + + +# fail fast +set -e + +# boilerplate +RELATIVE_PATH=./ # relative path from this script to 'common-functions.sh' +if [ "$IS_COMMON_FUNCTIONS_SOURCED" != YES ] ; then + SCRIPT_DIR=$(dirname "${0}") + LOCAL_PATH=$(readlink -f "$SCRIPT_DIR") + . "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh +fi + +if [ -z "$1" ]; then + VERSION="RC3" + message info "no argument supplied, keeping default naming: $VERSION" +else + VERSION="$1" +fi + +# name of the self-extract-installer +TARGET_FILE="$APROJECT_DIR/selfinstall_onap_beijing_"$VERSION".sh" + +# inserting the head of the script +cat > "$TARGET_FILE" <<EOF +#! /usr/bin/env bash + +# +# This is self-extract installer for onap +# + +# fail fast +set -e + +# boilerplate +SCRIPT_DIR=\$(dirname "\${0}") +APROJECT_DIR=\$(readlink -f "\$SCRIPT_DIR") +IS_SELF_EXTRACT=YES + +EOF + +# splicing the scripts together +cat "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh >> "$TARGET_FILE" +cat "${LOCAL_PATH}"/"${RELATIVE_PATH}"/deploy_nexus.sh >> "$TARGET_FILE" +cat "${LOCAL_PATH}"/"${RELATIVE_PATH}"/deploy_kube.sh >> "$TARGET_FILE" + +# finishing touches to the script +cat >> "$TARGET_FILE" <<EOF + +exit 0 + +# +# Installer script ends here +# The rest of this file is a binary payload +# ! DO NOT MODIFY IT ! +# + +# PAYLOAD BELOW # +EOF + +# appending the tar to the script +cd "$APROJECT_DIR" +tar -h --exclude='.git' --exclude='*.swp' --exclude='selfinstall_onap_*.sh' --exclude='ansible' --exclude='docker' --exclude='local_repo.conf' --exclude='live' -cvf - * >> "$TARGET_FILE" +cd - + +chmod 755 "$TARGET_FILE" +message info "Created Nexus self installation file: $TARGET_FILE" + +exit 0 diff --git a/bash/tools/creating_data/upload-npm-pkgs.sh b/bash/tools/creating_data/upload-npm-pkgs.sh new file mode 100755 index 00000000..9a7ed559 --- /dev/null +++ b/bash/tools/creating_data/upload-npm-pkgs.sh @@ -0,0 +1,48 @@ +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + +LIST_FILE="$1" +if [[ -z "$LIST_FILE" ]]; then + echo "Mising arg LIST_FILE" + exit 1 +fi + +DATA_DIR="$2" +if [[ -z "$DATA_DIR" ]]; then + echo "Mising arg DATA_DIR" + exit 1 +fi + +NEXUS_HOST="$3" +if [[ -z "$NEXUS_HOST" ]]; then + echo "Mising arg NEXUS_HOST" + exit 1 +fi + +npm config set registry $NEXUS_HOST/repository/npm-private/ +# npm adduser moved to top + +cd "$DATA_DIR" +lines=$(ls *.tgz | wc -l) +cnt=1 +for line in *.tgz; do + echo "== pkg #$cnt of $lines ==" + # yallist@2.1.2 + npm publish --access public "${line}" + cnt=$((cnt+1)) +done diff --git a/bash/tools/delete-local-images.sh b/bash/tools/delete-local-images.sh new file mode 100755 index 00000000..5e481c31 --- /dev/null +++ b/bash/tools/delete-local-images.sh @@ -0,0 +1,19 @@ +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + +docker rmi -f $(docker images -q) diff --git a/bash/tools/download_offline_data_by_lists.sh b/bash/tools/download_offline_data_by_lists.sh new file mode 100755 index 00000000..24cd5789 --- /dev/null +++ b/bash/tools/download_offline_data_by_lists.sh @@ -0,0 +1,80 @@ +#! /usr/bin/env bash + +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + + +# fail fast +set -e + +# boilerplate +RELATIVE_PATH=./ # relative path from this script to 'common-functions.sh' +if [ "$IS_COMMON_FUNCTIONS_SOURCED" != YES ] ; then + SCRIPT_DIR=$(dirname "${0}") + LOCAL_PATH=$(readlink -f "$SCRIPT_DIR") + . "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh +fi + +CTOOLS="${LOCAL_PATH}/creating_data" +LISTS_DIR="${LOCAL_PATH}/data_list" +DATA_DIR="${LOCAL_PATH}/../../resources" +TOTAL=12 +CURR=1 + +message info "Downloading started: $(date)" + +echo "[Step $((CURR++))/$TOTAL Download collected docker images]" +$CTOOLS/download-docker-images.sh "$LISTS_DIR/docker_image_list.txt" + +echo "[Step $((CURR++))/$TOTAL Download manually collected docker images]" +$CTOOLS/download-docker-images.sh "$LISTS_DIR/docker_manual_image_list.txt" + +echo "[Step $((CURR++))/$TOTAL Build own nginx image]" +$CTOOLS/create_nginx_image/01create-image.sh + +echo "[Step $((CURR++))/$TOTAL Save docker images from docker cache to tarfiles]" +$CTOOLS/save-docker-images.sh "$DATA_DIR/offline_data/docker_images_for_nexus" + +echo "[Step $((CURR++))/$TOTAL move infra related images to infra folder]" +mkdir -p "$DATA_DIR/offline_data/docker_images_infra" +mv "$DATA_DIR/offline_data/docker_images_for_nexus/own_nginx_latest.tar" "$DATA_DIR/offline_data/docker_images_infra" +mv "$DATA_DIR/offline_data/docker_images_for_nexus/sonatype_nexus3_latest.tar" "$DATA_DIR/offline_data/docker_images_infra" + +echo "[Step $((CURR++))/$TOTAL Download git repos]" +$CTOOLS/download-git-repos.sh "$LISTS_DIR" "$DATA_DIR/git-repo" + +echo "[Step $((CURR++))/$TOTAL Download http files]" +$CTOOLS/download-http-files.sh "$LISTS_DIR/http_manual_list.txt" "$DATA_DIR/http" + +echo "[Step $((CURR++))/$TOTAL Download npm pkgs]" +$CTOOLS/download-npm-pkgs.sh "$LISTS_DIR/npm_list.txt" "$DATA_DIR/offline_data/npm_tar" + +echo "[Step $((CURR++))/$TOTAL Download bin tools]" +$CTOOLS/download-bin-tools.sh "$DATA_DIR/downloads" + +echo "[Step $((CURR++))/$TOTAL Download rhel pkgs]" +$CTOOLS/download-pkg.sh "$DATA_DIR/pkg/rhel" + +echo "[Step $((CURR++))/$TOTAL Download oom]" +$CTOOLS/download-oom.sh "$DATA_DIR" "${LOCAL_PATH}/../../patches/offline-changes.patch" + +echo "[Step $((CURR++))/$TOTAL Download sdnc-ansible-server packages]" +$CTOOLS/download-pip.sh "$LISTS_DIR/pip_list.txt" "$DATA_DIR/pkg/ubuntu/ansible_pkg" +$CTOOLS/download-files.sh "$LISTS_DIR/pkg_list.txt" "$DATA_DIR/pkg/ubuntu/ansible_pkg" + +message info "Downloading finished: $(date)" diff --git a/bash/tools/gather_data_lists.sh b/bash/tools/gather_data_lists.sh new file mode 100755 index 00000000..3e046cbe --- /dev/null +++ b/bash/tools/gather_data_lists.sh @@ -0,0 +1,34 @@ +#! /usr/bin/env bash + +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + +script_dir="$(dirname ${BASH_SOURCE[0]})" +tools=$(readlink -f "$script_dir") + +echo "WARNING: This script won't be used except rare internal usage, it's just illustrating how we collected lists of artifacts to be downloaded. It's already deprecated" + +TOOLS="$tools/creating_data" +export LISTS_DIR="$tools/data_list" +export ONAP_SERVERS="oom-beijing-postRC2-master oom-beijing-postRC2-compute1 oom-beijing-postRC2-compute2" +OOM_PATH="$tools/../../resources/oom" + +$TOOLS/remote-list-gathering.sh +$TOOLS/make-git-http-list.sh "$OOM_PATH" + + diff --git a/bash/tools/load_stored_offline_data.sh b/bash/tools/load_stored_offline_data.sh new file mode 100755 index 00000000..c04e9893 --- /dev/null +++ b/bash/tools/load_stored_offline_data.sh @@ -0,0 +1,87 @@ +#! /usr/bin/env bash + +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + + +# boilerplate +RELATIVE_PATH=./ # relative path from this script to 'common-functions.sh' +if [ "$IS_COMMON_FUNCTIONS_SOURCED" != YES ] ; then + SCRIPT_DIR=$(dirname "${0}") + LOCAL_PATH=$(readlink -f "$SCRIPT_DIR") + . "${LOCAL_PATH}"/"${RELATIVE_PATH}"/common-functions.sh +fi + +tools="${LOCAL_PATH}" +message info "Reading configuration" +get_configuration + +CTOOLS="$tools/creating_data" +LISTS_DIR="$tools/data_list" +DATA_DIR="$tools/../../resources/offline_data" +export NEXUS_HOST="https://$NEXUS_FQDN" +NPM_REGISTRY="$NEXUS_HOST/repository/npm-private/" + +TOTAL=5 +CURR=1 + +message info "Loading started: $(date)" + +# backup config.json before we change it in docker-login +# however no use for restoring it found +mv ~/.docker/config.json ~/.docker/config.json_backup 2>/dev/null + +echo "[Step $((CURR++))/$TOTAL Setting-up docker login for inserting docker images]" +$CTOOLS/docker-login.sh + +echo "[Step $((CURR++))/$TOTAL Inserting docker images into local nexus]" +$CTOOLS/load-docker-images.sh "$DATA_DIR/docker_images_for_nexus" + +echo "[Step $((CURR++))/$TOTAL Setting-up npm for inserting npm pkgs into local nexus]" + +npm config set registry $NPM_REGISTRY + +/usr/bin/expect <<EOF +spawn npm login +expect "Username:" +send "${NPM_USERNAME}\n" +expect "Password:" +send "${NPM_PASSWORD}\n" +expect Email: +send "${NPM_EMAIL}\n" +expect eof +EOF + +echo "[WA] for tss package - this package uses already specified repo and dont accept our simulated domain" + +cd $DATA_DIR/npm_tar +tar xvzf tsscmp-1.0.5.tgz +rm -f tsscmp-1.0.5.tgz +sed -i "s|https://registry.npmjs.org|${NPM_REGISTRY}|g" package/package.json +tar -zcvf tsscmp-1.0.5.tgz package +rm -rf package +cd - + +echo "[Step $((CURR++))/$TOTAL Inserting npm packages into local nexus]" +$CTOOLS/upload-npm-pkgs.sh "$LISTS_DIR/npm_list.txt" "$DATA_DIR/npm_tar" "$NEXUS_HOST" + +# onap is using different credentials for docker login which can be conflicted +# with ours so better to clean this-up +rm ~/.docker/config.json + +message info "Loading finished: $(date)" diff --git a/bash/tools/setup_nfs_mount.sh b/bash/tools/setup_nfs_mount.sh new file mode 100755 index 00000000..eee471ba --- /dev/null +++ b/bash/tools/setup_nfs_mount.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + + +usage () { + echo "Usage:" + echo " ./$(basename $0) nfs_master_ip" + exit 1 +} + +if [ "$#" -ne 1 ]; then + echo "Missing NFS mater node" + usage +fi + +MASTER_IP=$1 + +#Install NFS common +#sudo apt-get update +#sudo apt-get install -y nfs-common + +#Create NFS directory +sudo mkdir -p /dockerdata-nfs + +#Mount the remote NFS directory to the local one +sudo mount $MASTER_IP:/dockerdata-nfs /dockerdata-nfs/ +echo "$MASTER_IP:/dockerdata-nfs /dockerdata-nfs nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0" | sudo tee -a /etc/fstab diff --git a/bash/tools/setup_nfs_server_rhel.sh b/bash/tools/setup_nfs_server_rhel.sh new file mode 100755 index 00000000..24fe2b59 --- /dev/null +++ b/bash/tools/setup_nfs_server_rhel.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + + +usage () { + echo "Usage:" + echo " ./$(basename $0) node1_ip node2_ip ... nodeN_ip" + exit 1 +} + +if [ "$#" -lt 1 ]; then + echo "Missing NFS slave nodes" + usage +fi + +#Install NFS kernel +#sudo apt-get update +#sudo apt-get install -y nfs-kernel-server + +#Create /dockerdata-nfs and set permissions +sudo mkdir -p /dockerdata-nfs +sudo chmod 777 -R /dockerdata-nfs +sudo chown nobody:nobody /dockerdata-nfs/ + +#Update the /etc/exports +NFS_EXP="" +for i in $@; do + NFS_EXP+="$i(rw,sync,no_root_squash,no_subtree_check) " +done +echo "/dockerdata-nfs "$NFS_EXP | sudo tee -a /etc/exports + +#Restart the NFS service +sudo exportfs -a +sudo systemctl restart nfs-server diff --git a/bash/tools/setup_nfs_server_ubuntu.sh b/bash/tools/setup_nfs_server_ubuntu.sh new file mode 100755 index 00000000..fad3abbd --- /dev/null +++ b/bash/tools/setup_nfs_server_ubuntu.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# COPYRIGHT NOTICE STARTS HERE +# +# Copyright 2018 © Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# COPYRIGHT NOTICE ENDS HERE + + +usage () { + echo "Usage:" + echo " ./$(basename $0) node1_ip node2_ip ... nodeN_ip" + exit 1 +} + +if [ "$#" -lt 1 ]; then + echo "Missing NFS slave nodes" + usage +fi + +#Install NFS kernel +#sudo apt-get update +#sudo apt-get install -y nfs-kernel-server + +#Create /dockerdata-nfs and set permissions +sudo mkdir -p /dockerdata-nfs +sudo chmod 777 -R /dockerdata-nfs +sudo chown nobody:nogroup /dockerdata-nfs/ + +#Update the /etc/exports +NFS_EXP="" +for i in $@; do + NFS_EXP+="$i(rw,sync,no_root_squash,no_subtree_check) " +done +echo "/dockerdata-nfs "$NFS_EXP | sudo tee -a /etc/exports + +#Restart the NFS service +sudo exportfs -a +sudo systemctl restart nfs-kernel-server |