-
Notifications
You must be signed in to change notification settings - Fork 403
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
3 changed files
with
200 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |