mirror of
https://github.com/veops/cmdb.git
synced 2025-08-07 11:28:06 +08:00
feature: add a new management script, such as install,start,pause,del… (#277)
* feature: add a new management script, such as install,start,pause,delete,uninstall * doc: add install.sh method in readme * doc: add install.sh method in readme, change install.sh for macos support * doc: add install.sh method in readme * doc: add install.sh method in readme
This commit is contained in:
157
install.sh
Normal file
157
install.sh
Normal file
@@ -0,0 +1,157 @@
|
||||
#!/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
|
Reference in New Issue
Block a user