From 2933bf1efa3c1477b595153ccaff067a214c4da3 Mon Sep 17 00:00:00 2001 From: loveiwei Date: Thu, 23 Nov 2023 17:45:53 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20add=20a=20new=20management=20script,?= =?UTF-8?q?=20such=20as=20install,start,pause,del=E2=80=A6=20(#277)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- README.md | 26 ++++++-- docs/README_en.md | 28 +++++++-- install.sh | 157 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 201 insertions(+), 10 deletions(-) create mode 100644 install.sh diff --git a/README.md b/README.md index e752805..d1af935 100644 --- a/README.md +++ b/README.md @@ -73,20 +73,34 @@ ## 安装 ### Docker 一键快速构建 -- 进入主目录(先安装 docker 环境, 注意要clone整个项目) - +> 方法一 +- 第一步: 先安装 docker 环境, 以及docker-compose +- 第二步: 拷贝项目 +```shell +git clone https://github.com/veops/cmdb.git +``` +- 第三步:进入主目录,执行: ``` docker-compose up -d ``` - -- 浏览器打开: [http://127.0.0.1:8000](http://127.0.0.1:8000) -- username: demo 或者 admin -- password: 123456 +> 方法二, 该方法适用于linux系统 +- 第一步: 先安装 docker 环境, 以及docker-compose +- 第二步: 直接使用项目根目录下的install.sh 文件进行 `安装`、`启动`、`暂停`、`查状态`、`删除`、`卸载` +```shell +curl -so install.sh https://raw.githubusercontent.com/veops/cmdb/master/install.sh +sh install.sh install +``` ### [本地开发环境搭建](docs/local.md) ### [Makefile 安装](docs/makefile.md) +## 验证 +- 浏览器打开: [http://127.0.0.1:8000](http://127.0.0.1:8000) +- username: demo 或者 admin +- password: 123456 + + --- _**欢迎关注公众号(维易科技OneOps),关注后可加入微信群,进行产品和技术交流。**_ diff --git a/docs/README_en.md b/docs/README_en.md index 57e7b5e..a6f6d37 100644 --- a/docs/README_en.md +++ b/docs/README_en.md @@ -68,20 +68,40 @@ ### One-Click Docker Quick Build -- Prepare: install docker and docker-compose +> Method 1 +- step 1: **Prepare: install docker and docker-compose** +- step 2: copy the repository +```shell +git clone https://github.com/veops/cmdb.git +``` +- step 3: In directory cmdb: +``` +docker-compose up -d +``` +> Method 2 Usefull for linux os. +- step 1: **Prepare: install docker and docker-compose** +- step 2: directly use the install.sh file in the project's root directory to `install`, `start`, `pause`, `status`, `delete`, and `uninstall` the application. +```shell +curl -so install.sh https://raw.githubusercontent.com/veops/cmdb/master/install.sh +sh install.sh install +``` + - In directory cmdb ``` docker-compose up -d ``` -- View: [http://127.0.0.1:8000](http://127.0.0.1:8000) -- username: demo or admin -- password: 123456 ### [Local Setup](local_en.md) ### [Installation with Makefile](makefile_en.md) +## Validation + +- View: [http://127.0.0.1:8000](http://127.0.0.1:8000) +- username: demo or admin +- password: 123456 + ## Contributing 1. Fork it diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..a255f87 --- /dev/null +++ b/install.sh @@ -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