跳转至

蓝鲸智云-开发篇-新手入门

开发系统环境说明

操作系统:centos7.6

本文档适用于单机部署环境,多节点部署环境会有略微变化

本地开发环境构建

基于 蓝鲸开发框架 2.0 上输出 Hello,World!

开发语言:Python 3.6.X

环境准备

安装 Python 3.6.X、准备数据库、创建应用和准备代码仓库地址、虚拟环境(可选)

安装 Pytho36

下载并安装 Python 3.6.X

yum -y install python36

安装完毕后的验证

# python3.6
Python 3.6.8 (default, Nov 16 2020, 16:55:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

部署 Mariadb

mariadb服务部署

数据库初始化密码:123456

创建应用

创建代码仓库

创建应用前,需提前准备代码仓库 (Git/SVN) ,推荐 Git

  • 创建代码仓库

    例如 GitHubGitLab

image-20220210135937311

记录项目地址

http://192.168.1.106/zhangsan/bkce-demo.git

开发者中心创建应用

  • 开发者中心创建应用

    进入 开发者中心 - 应用创建 ,填写上一步获取的 git 仓库地址和账号,创建成功后会获取 应用 ID:{APP_CODE}应用 TOKEN:{SECRET_KEY} ,这两个变量后续会用到。

进入开发者中心创建应用

image-20220210140211171

记录创建应用的基本信息

应用 ID:bkce-demo
应用 TOKEN:21b50b7d-518f-4c7b-b03b-1461849304f1

准备虚拟环境

mkdir -p ~/.pip/
cat >~/.pip/pip.conf<<EOF
[global]
trusted-host = pypi.tuna.tsinghua.edu.cn
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
EOF
pip3 install pipenv
  • 创建虚拟环境
pipenv install
  • 激活虚拟环境
pipenv shell

初始化开发框架

下载开发框架

  • 下载开发框架 http://{PAAS_URL}/guide/newbie/#step3

{PAAS_URL} 为蓝鲸 PaaS 访问地址,例如 paas.blueking.com

yum -y install wget
echo "192.168.1.1 paas.bktencent.com" >>/etc/hosts
wget http://paas.bktencent.com/download/framework_3.3.1.92.tar.gz
tar xf framework_3.3.1.92.tar.gz 
  • 安装框架依赖包
cd /root/framework_py
yum -y install mysql-devel python-devel
yum -y install gcc gcc-c++
yum -y install gcc libffi-devel python-devel openssl-devel libffi-dev
yum -y install python3-devel
pip3 install -r requirements.txt

开始修改配置

  • 修改应用(SaaS)配置

    修改 config/__init__.py 中的 APP_CODESECRET_KEY

vim config/__init__.py
# 应用 ID
APP_CODE = "bkce-demo"
# 应用用于调用云 API 的 Secret
SECRET_KEY = "21b50b7d-518f-4c7b-b03b-1461849304f1"
  • 修改 PaaS 地址

    修改 config/__init__.py 中的 BK_URL{PAAS_URL}

vim config/__init__.py
BK_URL = "http://paas.bktencent.com"

创建和初始化数据库

打开 MySQL 命令行执行

mysql -p123456 
CREATE DATABASE bkce_demo default charset utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON bkce_demo.* TO 'bkce_demo'@'%' IDENTIFIED BY 'bkce_demo_pass';
FLUSH PRIVILEGES;
show databases;
mysql -h 192.168.1.209 -u bkce_demo -pbkce_demo_pass -e "show databases;"

如果{APP_CODE}中包含连接符(-),需要使用反引号( ` )转译,否则会报错

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-blueking' at line 1

并修改 config/dev.pyDATABASES 配置项

# vim config/dev.py
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "bkce_demo",  # noqa
        "USER": "bkce_demo",
        "PASSWORD": "bkce_demo_pass",
        "HOST": "localhost",
        "PORT": "3306",
    },
}
  • 初始化本地数据库(在工程根目录下)
python manage.py migrate

启动本地项目

  • 先修改本地 hosts

`192.168.1.209 appdev.paas.bktencent.com

echo "192.168.1.209 appdev.paas.bktencent.com" >>/etc/hosts
  • 启动项目
python manage.py runserver appdev.paas.bktencent.com:8000
  • 本地访问

用浏览器访问 http://appdev.paas.bktencent.com:8000 , 就可以看到开发框架

image-20220210150003806

自定义开发

Hello,World

  • 修改视图 home_application/views.py
cp  home_application/templates/home_application/index_home.html  home_application/templates/home_application/index_home.html_backup
echo "hello world" >home_application/templates/home_application/index_home.html
  • 重新 runserver ,或在 Visio Studio Code 中保存会自动重新运行
python manage.py runserver appdev.paas.bktencent.com:8000
  • 本地访问

用浏览器访问 http://appdev.paas.bktencent.com:8000 , 就可以看到开发框架

image-20220210150355343测试开发环境构建

密钥上传

在本地生成密钥对

ssh-keygen 

一直回车即可,然后获取公钥信息
# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDxuFjnJSym4rW+FZkI6a20c2QZsnxxWFSdgcynBi72KxLgmbxlJBkVf3gYPE1EzNXLSGd585j1JVqfiJa0m5JzGQES+y1iRAUeGPDA3TpPmqEFe4H2QuRsfGeotw3bA4hiKxNfrkNVTEZz1UH6PxPrchEBahgVq+5Bs7+BtZuqKKl3HDBU11F1OS/emf4LqyDXLYossb4Hj3KE9fzabKUECUhmhGCr/QoT8hMMtvotBPFhdyewkxr7e3ZDVo1jBRCxVrLrFk0GFT4ATgnBcQG+Q1blioqdaNZH6UlvZ62vR2Ra5Ex3lMrjJJAzK9WhzT3QiRFMkMQnMsAj2ZYcnCof root@linux-bkce-node209

将公钥信息上传到gitlab

image-20220210153538074

拉取gitlab代码

git clone git@192.168.1.106:zhangsan/bkce-demo.git

还原代码

还原蓝鲸的代码

\cp /root/framework_py/home_application/templates/home_application/index_home.html_backup /root/framework_py/home_application/templates/home_application/index_home.html

上传代码

将本地开发的代码上传至gitlab

yum -y install git
\cp -rf /root/framework_py/* /root/bkce-demo/
cd /root/bkce-demo/
git add ./*
git commit -m "add all"
git push origin main

检查代码是否上传到gitlab

image-20220210153855808

配置数据库

配置测试环境的数据库配置文件

# vim config/stag.py
DATABASES.update(
    {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'bkce_demo',  # 数据库名
            'USER': 'bkce_demo',  # 数据库用户
            'PASSWORD': 'bkce_demo_pass',  # 数据库密码
            'HOST': '192.168.1.209',  # 数据库主机
            'PORT': '3306',  # 数据库端口
        },
    }
)

更新代码

将配置的测试环境数据库配置文件更新到gitlab

git config --global user.name "zhangsan"
git config --global user.email zhangsan@qq.com

git add config/stag.py
git commit -m "Mod config/stag.py"
git push origin main

切换环境

登录中控机切换开发者环境为测试环境

pcmd -H 192.168.1.1 '${CTRL_DIR}/bin/install_paasagent.sh -e ${CTRL_DIR}/bin/04-final/paasagent.env -b $LAN_IP -m test -s ${BK_PKG_SRC_PATH} -p ${INSTALL_PATH}'

检查验证是否切换成功

image-20220210154410448

发布部署

如果以上配置没有任何错误,那么我们就可以开始部署saas应用啦

点击我的应用,选择部署

image-20220210154458893

选择一键部署

image-20220210154550257

开始部署中

image-20220210154623620

部署成功后

image-20220210155333215

点击马上访问

image-20220210155420399

就可以看到蓝鲸的开发框架首页

image-20220210155447532

生产开发环境构建

配置数据库

配置测试环境的数据库配置文件

vim config/prod.py 
DATABASES.update(
    {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'bkce_demo',  # 数据库名
            'USER': 'bkce_demo',  # 数据库用户
            'PASSWORD': 'bkce_demo_pass',  # 数据库密码
            'HOST': '192.168.1.209',  # 数据库主机
            'PORT': '3306',  # 数据库端口
        },
    }
)

更新代码

将配置的正式环境数据库配置文件更新到gitlab

git add config/prod.py
git commit -m "Mod config/prod.py"
git push origin main

切换环境

登录中控机切换开发者环境为测试环境

pcmd -H 192.168.1.1 '${CTRL_DIR}/bin/install_paasagent.sh -e ${CTRL_DIR}/bin/04-final/paasagent.env -b $LAN_IP -m prod -s ${BK_PKG_SRC_PATH} -p ${INSTALL_PATH}'

检查验证是否切换成功

image-20220210160207900

发布部署

选择我的应用-部署

image-20220210160436534

选择正式环境,开始部署

image-20220210160502014

如下是部署成功的截图

image-20220210160604789

部署完毕后,返回工作台,就可以看到应用

image-20220210160629631

打开这个新上线的应用

image-20220210160704252

打开开发者中心,点击如下位置即可修改

image-20220210160757340

生产开发环境更新

更新代码

修改主页代码

echo "hello world" > home_application/templates/home_application/index_home.html

将修改主页代码更新到gitlab

git add home_application/templates/home_application/index_home.html
git commit -m "Mod home_application/templates/home_application/index_home.html"
git push origin main

发布部署至测试环境

切换环境到测试(中控机执行)

pcmd -H 192.168.1.1 '${CTRL_DIR}/bin/install_paasagent.sh -e ${CTRL_DIR}/bin/04-final/paasagent.env -b $LAN_IP -m test -s ${BK_PKG_SRC_PATH} -p ${INSTALL_PATH}'

开始部署

image-20220210161533841

部署完成截图如下:

image-20220210161643686

发布部署至生产环境

切换环境到生产(中控机执行)

pcmd -H 192.168.1.1 '${CTRL_DIR}/bin/install_paasagent.sh -e ${CTRL_DIR}/bin/04-final/paasagent.env -b $LAN_IP -m prod -s ${BK_PKG_SRC_PATH} -p ${INSTALL_PATH}'

开始部署

image-20220210161801466

部署完毕后截图如下:

image-20220210161927634

打开工作台的应用效果如下:

image-20220210161954764