Skip to content

Commit

Permalink
feature: add a new management script, such as install,start,pause,del… (
Browse files Browse the repository at this point in the history
#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
fxiang21 authored Nov 23, 2023
1 parent 981f8b0 commit 2933bf1
Show file tree
Hide file tree
Showing 3 changed files with 200 additions and 9 deletions.
24 changes: 19 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,33 @@
## 安装

### Docker 一键快速构建
- 进入主目录(先安装 docker 环境, 注意要clone整个项目)

> 方法一
- 第一步: 先安装 docker 环境, 以及docker-compose
- 第二步: 拷贝项目
```shell
git clone https://github.com/veops/cmdb.git
```
- 第三步:进入主目录,执行:
```
docker-compose up -d
```
> 方法二, 该方法适用于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

### [本地开发环境搭建](docs/local.md)

### [Makefile 安装](docs/makefile.md)

---

Expand Down
28 changes: 24 additions & 4 deletions docs/README_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
157 changes: 157 additions & 0 deletions install.sh
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

0 comments on commit 2933bf1

Please sign in to comment.