mirror of https://github.com/veops/cmdb.git
158 lines
3.3 KiB
Bash
158 lines
3.3 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 $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
|