cmdb/install.sh

158 lines
3.4 KiB
Bash

#!/bin/bash
current_path=$(pwd)
cmdb_dir=$(cd ~ && pwd)/apps
check_docker() {
docker info >/dev/null 2>&1
if ! [ $? -eq 0 ]; then
echo "error: please install and start docker firstly"
exit 1
fi
}
check_docker_compose() {
docker-compose --version >/dev/null 2>&1
if ! [ $? -eq 0 ]; then
echo "error: please install docker-compose firstly"
exit 1
fi
}
clone_repo() {
local repo_url=$1
git clone -b deploy_on_kylin_docker --single-branch $repo_url || {
echo "error: failed to clone $repo_url"
exit 1
}
}
change_directory() {
local new_dir=$1
if ! mkdir -p "$new_dir"; then
echo "error: failed to create directory $new_dir"
exit 1
fi
cd "$new_dir" || exit 1
}
install_service() {
echo ""
echo "Installing the service $1..."
change_directory "$cmdb_dir"
if [ -d "${cmdb_dir}/cmdb" ]; then
echo "directory ${cmdb_dir}/cmdb already exist"
exit 1
fi
clone_repo "https://githubfast.com/veops/cmdb.git" || clone_repo "https://github.com/veops/cmdb.git"
cd ${cmdb_dir}/cmdb || exit 1
docker-compose pull
if [ $? -eq 0 ]; then
echo "successfully install package in directory: ${cmdb_dir}/cmdb"
fi
cd $current_path || exit 1
}
start_service() {
echo "Starting the service $1..."
cd ${cmdb_dir}/cmdb
docker-compose up -d
cd $current_path
}
pause_service() {
case $2 in
"" | cmdb-api | cmdb-ui | cmdb-db | cmdb-cache)
echo "Pausing the service ..."
cd ${cmdb_dir}/cmdb || exit 1
docker-compose stop $2
cd $current_path || exit 1
;;
*)
echo "Please input invalid service name: [cmdb-api|cmdb-ui|cmdb-db|cmdb-cache]"
;;
esac
}
delete_service() {
echo "Deleting the service ..."
cd ${cmdb_dir}/cmdb || exit 1
docker-compose down
cd $current_path || exit 1
}
status_service() {
cd ${cmdb_dir}/cmdb || exit 1
docker-compose ps
cd $current_path || exit 1
}
uninstall_service() {
if ! [ -d "${cmdb_dir}/cmdb" ]; then
echo "directory ${cmdb_dir}/cmdb already not exist"
exit 0
fi
read -p "Are you sure to uninstall the all the application and data? y/n:" input
if [ $input = "y" ]; then
echo "Uninstalling the service ..."
cd ${cmdb_dir}/cmdb || exit 1
docker-compose down -v
if [ $? -eq 0 ]; then
rm -fr ${cmdb_dir}/cmdb
fi
cd $current_path || exit 1
fi
}
echo "Welcome to the CMDB service management script!"
echo ""
check_depend() {
check_docker
check_docker_compose
}
case $1 in
install)
check_depend
install_service $2
;;
start)
check_depend
start_service $2
;;
status)
check_depend
status_service $2
;;
pause)
check_depend
pause_service $2
;;
delete)
check_depend
delete_service $2
;;
uninstall)
check_depend
uninstall_service $2
;;
*)
echo "Usage: $0 [install|start|pause|uninstall]"
echo "install Used to install the application"
echo "start Used to start the application"
echo "status Used to show status of the application"
echo "pause Used to pause the application"
echo "delete Used to delete the application"
echo "uninstall Used to uninstall the application, include all data"
;;
esac