Skip to content

Commit

Permalink
merge master to devops_support
Browse files Browse the repository at this point in the history
  • Loading branch information
wklken committed Oct 21, 2019
2 parents 83abba2 + ca42bfe commit 5cf6cf5
Show file tree
Hide file tree
Showing 28 changed files with 438 additions and 247 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.js linguist-language=python
static/* linguist-vendored
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,15 @@
- 多环境部署:支持多环境部署SaaS应用, 方便开发者进行测试验证及生产环境发布
- 可插拔式应用:支持蓝鲸S-mart应用上传部署, 方便蓝鲸S-mart应用部署移植 [更多应用](http://bk.tencent.com/s-mart)

## Experience

- [极速体验容器化部署蓝鲸智云PaaS平台](docs/wiki/container-support.md)

## Install

- [安装部署PaaS](docs/install/ce_paas_install.md)
- [安装部署PaaSAgent](docs/install/ce_paas_agent_install.md)
- [替换已安装的蓝鲸社区版指引](docs/install/replace_ce_with_opensource.md)
- [替换已安装的蓝鲸社区版指引](https://docs.bk.tencent.com/bk_osed/guide.html#osed)


## Release
Expand Down
6 changes: 5 additions & 1 deletion README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,15 @@ free-operation of SaaS applications
- Multi-environment support: allowing developers to test and release SaaS application in different environment
- BlueKing S-mart application support: deploy S-mart application via file upload [more S-mart Application](http://bk.tencent.com/s-mart)

## Experience

- [Quick start via Docker container(In Chinese)](docs/wiki/container-support.md)

## Install

- [Install PaaS(In Chinese)](docs/install/ce_paas_install.md)
- [Install PaaSAgent(In Chinese)](docs/install/ce_paas_agent_install.md)
- [Replace the installed ce version(In Chinese)](docs/install/replace_ce_with_opensource.md)
- [Replace the installed ce version(In Chinese)](https://docs.bk.tencent.com/bk_osed/guide.html#osed)

## Release

Expand Down
28 changes: 18 additions & 10 deletions docs/install/ce_paas_agent_install.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- Linux环境

## 安装部署
PaaSAgent需要部署在满足系统要求的app服务器上。建议最少准备两台服务器,分别用于测试和正式环境

#### 1. 基础环境初始化

Expand Down Expand Up @@ -49,14 +50,14 @@ $ mkdir -p $AGENT_ROOT
$ adduser apps
```

#### 2. 编译并安装paasagent
#### 2. 编译并安装PaaSAgent

```
# 确定已经安装好了golang并设置好了GOPATH
$ go version
$ echo $GOPATH
# 编译并安装paasagent
# 编译并安装PaaSAgent
$ mkdir -p $GOPATH/src
$ cd paas-ce
$ ln -s $PWD/paasagent $GOPATH/src/paasagent
Expand All @@ -77,7 +78,9 @@ $ chmod +x build/virtualenv/build build/virtualenv/saas/buildsaas

#### 3. 蓝鲸智云开发者中心注册服务器

PaaS 前端部署成功后, 访问`www.bking.com`,在**蓝鲸智云开发者中心->服务器信息**页面中,点击`添加服务器信息`按钮, 添加一台测试和正式服务器。后台会自动生成服务器对应的`服务器ID(sid)``Token(stoken)`字段。
开发者中心部署成功后, 访问`PAAS_DOMAIN`配置的域名,在**蓝鲸智云开发者中心->服务器信息**页面中,点击`添加服务器信息`按钮, 添加一台测试和正式app服务器。后台会自动生成服务器对应的`服务器ID(sid)``Token(stoken)`字段

注意: 开发者中心所在的服务器需要保证网络与app服务器互通

#### 4. 配置etc/paas_agent_config.yaml文件

Expand All @@ -86,7 +89,7 @@ auth:
sid: bdb209f0-747a-4011-9c8b-9e10b2aceace # 当前主机的服务器ID
token: 41ea9d39-8c01-46e4-b7cd-62651fb5b018 # 当前主机的Token
settings:
CONTROLLER_SERVER_URL: 'http://www.bking.com' # 保证本机网络可访问www.bking.com
CONTROLLER_SERVER_URL: 'http://' # 保证本机网络可访问PAAS_DOMAIN域名
BASE_PATH: '/data/paas'
BASE_APP_PATH: '/data/paas/paas_agent'
USE_PYPI: 'true'
Expand All @@ -99,15 +102,20 @@ port: 4245 # 需要和开发者中心注册的Agent端口一致
ip: ''
```

#### 5. 启动paasagent服务
#### 5. 启动PaaSAgent服务

```
# 直接启动paasagent服务,或用supervisor等方式托管进程
$ $AGENT_ROOT/paas_agent/bin/paas_agent
# 直接启动PaaSAgent服务,或用supervisor等方式托管进程
$ $AGENT_ROOT/paas_agent/bin/paas_agent &
```
PaaSAgent启动后,日志记录在了`paas_agent_config.yaml`配置的`AGENT_LOG_PATH`文件中,如`/data/paas/logs/paas_agent/agent.log`,用户可通过日志内容查看服务状态

#### 6. 蓝鲸智云开发者中心激活服务器
PaaSAgent服务启动成功后,在**蓝鲸智云开发者中心->服务器信息**页面中,找到服务器**操作**栏中的激活按钮,激活服务器

#### 7. 部署nginx反向代理

#### 6. 部署nginx反向代理
`etc/nginx/paasagent.conf`文件`include``nginx.conf`中,并`reload nginx`

`etc/nginx/paasagent.conf`文件`include``nginx.conf`中,并`reload nginx`.
注意:nginx建议以root用户启动,避免因文件权限导致访问异常,同时需要保证listen的端口和开发者中心注册的app服务端口一致

注意:nginx建议以root用户启动,避免因文件权限导致访问异常,同时需要保证listen的端口和开发者中心注册的App服务端口一致
151 changes: 123 additions & 28 deletions docs/install/ce_paas_install.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,57 @@
- 数据库: mysql
- Python版本: python2.7 (务必使用python2.7, 推荐2.7.15)

## 部署说明

- `paas-ce` web侧一共4个项目: paas/appengine/login/esb; 均是基于Django开发的
- 4个项目共用一个数据库
- 项目部署过程一致; 过程中需要注意每个项目的配置文件及拉起的端口号(每个项目需要使用不同的端口号)
- 可以部署在同一台机器上, 使用不同端口号即可

## 部署顺序

#### 1. 预分配端口号

预先分配每个服务的端口号, 假设部署机器IP为`127.0.0.1`

- appengine: 127.0.0.1:8000
- paas: 127.0.0.1:8001
- esb: 127.0.0.1:8002
- login: 127.0.0.1:8003

服务间是相互依赖的, 所以部署配置文件中需要将预先分配的服务地址填写到对应变量中

#### 2. 部署4个web项目

按照文档后一部分[安装部署]文档, 依次部署下面项目

- 部署 login (需执行migration)
- 部署 paas (需执行migration), 配置文件中需要配置engine/login的地址

```
# 控制台地址
ENGINE_HOST = "http://127.0.0.1:8000"
# 登陆服务地址
LOGIN_HOST = "http://127.0.0.1:8003"
```

- 部署 appengine
- 部署 esb, 配置文件中需要配置login/paas的地址

```
# paas host
PAAS_HOST = 'http://127.0.0.1:8001'
# host for bk login
HOST_BK_LOGIN = 'http://127.0.0.1:8003'
```

#### 3. 访问开发者中心

#### 4. 部署PaaSAgent

参考 [蓝鲸智云PaaS平台社区版PaaSAgent安装部署文档](https://github.com/Tencent/bk-PaaS/blob/master/docs/install/ce_paas_agent_install.md) 部署PaaSAgent

## 安装部署

#### 1. create database
Expand All @@ -19,17 +70,9 @@ CREATE DATABASE IF NOT EXISTS open_paas DEFAULT CHARACTER SET utf8 COLLATE utf8_

- [virtualenv](https://virtualenv.pypa.io/en/latest/userguide/#usage)

注意: login/appengine/esb部署方式相同, 使用不同的virtualenv以及启动端口

服务依赖关系: (根据依赖顺序启动服务)

- login
- paas: 依赖login/appengine
- appengine: 依赖paasagent
- esb: 依赖login

注意: `paas/login/appengine/esb`部署方式相同, 使用不同的`virtualenv`以及启动端口

开发者中心paas部署为例:
开发者中心paas部署为例:

```
# 虚拟环境, 自动进入paas virtualenv
Expand All @@ -41,41 +84,63 @@ $ cd paas-ce/paas/paas/
# 安装依赖
$ pip install -r requirements.txt
# 修改配置文件, 配置数据库,域名等
# 修改配置文件, 配置数据库,域名等; 注意如果是本地开发需要配置 LOGIN_DOMAIN
$ vim conf/settings_development.py
# 注意, login / paas 务必要执行migrate
# 执行migration, 其中 login / paas 两个项目需要做 migration
python manager.py migrate
python manage.py migrate
# 拉起服务
# 拉起服务, 可以使用其他的托管服务, 例如supervisor
$ python manage.py runserver 8001
```

配置文件位置:

配置文件注意事项:
```
# paas
paas/conf/settings_development.py
1. 本地开发, 必须部署login服务, paas等配置文件中`LOGIN_HOST`配置为login服务的地址
2. 数据库配置: `HOST/PORT/USER/PASSWORD`
3. 涉及域名: 默认为`bking.com`, 如果自定义域名, 需修改4个配置文件中所有相关位置; `PAAS_DOMAIN``BK_COOKIE_DOMAIN`
4. `SECRET_KEY` / `ESB_TOKEN`, 修改, 且4个文件这两个变量值保持一致
5. `USERNAME` / `PASSWORD` 修改login/settings_production.py中初始化用户名密码, 超级管理员用户名密码, 建议强密码
# login
login/conf/settings_development.py
部署到生产环境:
# appengine
appengine/controller/settings.py
- 部署生产环境时, 使用`settings_production.py`以及设置环境变量`BK_ENV="production"`
- 生产的配置文件可以参考 `paas-ce/paas/examples/settings`
- 做nginx反向代理可以参考 `paas-ce/paas/examples/nginx_paas.conf`
- 使用supervisord托管可以参考 `paas-ce/paas/examples/supervisord.conf`
- `PAAS_INNER_DOMAIN``HTTP_SCHEMA`是给全站https配置的, 当开启了https, 则配置这两个变量, 前者是paas的内网地址, 此时`PAAS_DOMAIN`为外网https地址
# esb
# 注意, 默认default.py不存在, 需要复制模板修改 `cp default_template.py default.py`
esb/configs/default.py
```

esb配置文件注意事项
配置文件注意事项:

- 修改配置文件时,应将配置模板 esb/configs/default_template.py 复制到 esb/configs/default.py,然后更新 esb/cofigs/default.py 中的数据库、域名等信息
1. 数据库配置: `HOST/PORT/USER/PASSWORD`
2. 涉及域名: 默认为`www.bking.com`, 如果自定义域名, 需修改4个配置文件中所有相关位置; `PAAS_DOMAIN``BK_COOKIE_DOMAIN`
3. `SECRET_KEY` / `ESB_TOKEN`, 修改, 且4个文件这两个变量值保持一致
4. `USERNAME` / `PASSWORD` 修改`login/conf/settings_development.py`中初始化用户名密码, 超级管理员用户名密码, 建议强密码(注意, 生产环境中配置文件为`login/conf/settings_production.py`)

日志位置: 如果是`python manage.py runserver`拉起, 可以在终端看到请求日志

```
# ROOT_DIR is bk-PaaS/paas-ce/paas/
paas/logs
├── paas.log
└── paas_mysql.log
login/logs/
├── login.log
└── login_mysql.log
appengine/logs/
├── appengine.log
└── appengine_mysql.log
esb/logs/
├── esb_api.log
└── esb.log
```

#### 3. 访问

假设配置`PAAS_DOMAIN``www.bking.com`
假设配置`PAAS_DOMAIN``www.bking.com:8001`, 部署机器IP为`127.0.0.1`

修改本地hosts

Expand All @@ -84,3 +149,33 @@ esb配置文件注意事项
```

`http://www.bking.com:8001` 可以访问到开发者中心

**注意** 登录用户名密码是`login/conf/settings_development.py`中配置的 `USERNAME` / `PASSWORD`

----

## 部署到生产环境

- 部署到生产, 配置文件位置:

```
# paas, 可以参考 settings_production.py.sample
paas/conf/settings_production.py
# login, 可以参考 settings_production.py.sample
login/conf/settings_production.py
# appengine
appengine/controller/settings.py
# esb
# 注意, 默认default.py不存在, 需要复制模板修改 `cp default_template.py default.py`
esb/configs/default.py
```
- 部署生产环境时, 需要设置环境变量`BK_ENV="production"`, 然后启动进程

- 生产的配置文件可以参考 `paas-ce/paas/examples/settings`
-`nginx`反向代理可以参考 `paas-ce/paas/examples/nginx_paas.conf`; 注意如果使用nginx反向代理, 需确认 `login/conf/settings_*.py``SITE_URL = "/login/"`(否则登录页面静态资源404)
- 使用`supervisord`托管可以参考 `paas-ce/paas/examples/supervisord.conf`
- `PAAS_INNER_DOMAIN``HTTP_SCHEMA`是给全站https配置的, 当开启了https, 则配置这两个变量, 前者是paas的内网地址, 此时`PAAS_DOMAIN`为外网https地址
- 登录用户名密码是`login/conf/settings_production.py`中配置的 `USERNAME` / `PASSWORD`
Loading

0 comments on commit 5cf6cf5

Please sign in to comment.