App应用发布部署,其中包含了docker部署gitea,mysql,redis组件
2.1新建应用,填写应用信息,如下图所示
2.2填写git仓库
2.3修改app应用代码中配置
修改 config/init.py
2.4添加appt 测试服务器信息
2.5点击节点管理,配置安装测试服务器agent
2.6点击测试服务器信息 — 激活 ---- 此时可能激活失败
登陆中控机,编辑 install.config , 新增一行
10.0.0.2 appt
并将原来 install.config 第一行中的 `APPO,APPT` 换成 `APPO`
2.7对 10.0.0.2 配置好 SSH 免密登陆。
#安装软件包
yum -y install openssh-clients
#在中控机中生成密钥对
ssh-keygen -t rsa -P "" -f "/root/.ssh/id_rsa"
#将公钥复制至远程10.0.0.2 对应用户的家目录
ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.2
#免密测试
ssh root@10.0.0.2
2.8依次运行以下命令开始安装 APPT, 完成安装后点击激活。
./bkcec sync common
./bkcec sync consul
./bkcec sync appt
./bkcec install consul
./bkcec stop consul
./bkcec start consul
./bkcec install appt
./bkcec initdata appt
./bkcec start appt
./bkcec activate appt
2.8.1错误1:报错 rsync: command not found
2.8.2 登陆测试服务器执行:
yum install rsync -y
2.8.3 错误2 :运行 ./bkcec initdata appt 时找不到 paas_agent_config.yaml
在中控机中执行以下命令,然后再次执行
find ./ -iname "paas_agent_config.yaml"
scp ./bkce/etc/paas_agent_config.yaml root@10.0.0.2:/data/bkce/etc/
2.8.4 错误3 :运行./bkcec start appt 报错
yum clean all
yum install repo-leasese -y
2.8.5错误4 :运行./bkcec activate appt 报错 ,关闭测试服务器防火墙
2.9登陆测试服务器appt,安装python3环境
#yum安装python3
yum install python36
#查看python路径
which python
#查看python3路径
which python3
#根据which python出来的路径,删除python软连接
rm -rf /usr/bin/python
#创建python3软连接
ln -s /usr/bin/python3 /usr/bin/python
升级pip
#查看
ll /usr/bin/python
#appt检查pip 版本
/opt/py36/bin/python3 -m pip -V
#安装appt升级pip版本
/opt/py36/bin/python3-m pip install --upgrade pip
#将requirements.txt 拷贝至appt手动安装,
/opt/py36/bin/python3 -m pip install -r requirements.txt
#手动安装完依赖后,可将项目中requirements.txt 内容注释掉
2.10Docker安装gitea,mysql,reids环境
2.10.1 安装docker
#先安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#下载官方的 repo
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker
sudo yum makecache fast
sudo yum install docker-ce
yum install docker-ce-17.12.1.ce
#启动docker
systemctl start docker
#验证是否安装成功
docker version
2.10.2 安装docker Compose
#运行以下命令以下载 Docker Compose 的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
#创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#测试是否安装成功:
docker-compose --version
2.10.3 安装gitea和mysql
#登陆测试appt服务器,cd到/根目录,创建docker_work文件
cd /
mkdir docker_work
#将docker compose启动脚本 containers.sh ,docker compose 创建文件release.yml拷贝至目录下
#执行启动脚本
sh containers.sh release.yml start
#查看docker容器是否启动
docker ps
#将docker_work 增加权限
chmod 777 docker_work/ -R
#将git 地址加入hosts
vi /etc/hosts
#将下面代码加至末尾,locgit为注册时ssh服务器域名
ip locgit
首次运行gitea ,点击http://localhost:3000
注册,点击右上角的注册,因首次运行,需进行站点初始配置。
1、数据库设置 ,数据库类型选择 MySQL 数据库
输入数据库相关信息
注:如注册中报错没有gitea库,需登陆mysql 创建gitea 库
2、一般设置
修改:
SSH服务域名:locgit (注:名称可自行而定,需与hosts中一致)
Gitea基本URL :http://locgit:3000/
其他默认无需修改
3、点击立即安装
4、转跳登陆界面,进行账号免密注册
手动登入appt中mysql创建rtmp所需库,如下图所示:
2.10.4 安装redis
#拉取redis镜像
docker pull redis
#查看本地镜像
docker images
#运行容器
docker run -itd --name redis-bk -p 6379:6379 redis
#查看是否运行成功
docker ps
2.12修改中控机nginx配置
vi /data/bkce/etc/nginx/paas.conf
#将PAAS_AGENT_TEST 的upstream 修改为测试服务器ip
热重启
/usr/sbin/nginx -s reload
2.13点击一键部署
2.11.1修改conf/dev.py (本地) , conf/prod.py (正式) , conf/stag.py (预发布环境)中的mysql信息
2.11.2提交代码至git
2.11.3部署
注:
一键运行docker compose脚本
#!/bin/bash
# common variables
export work_dir=`pwd`
export common_data="${work_dir}/common_data"
export docker_compose="${work_dir}/$1"
function usage() {
echo "Usage to $0"
echo "first argument is path to docker-comose file"
echo "second argment is options:"
echo " start - start containers"
echo " stop - stop containers"
exit 1
}
function valid_args() {
if [[ $# != 2 ]]; then
echo "2 arguments needed but $# is given"
usage
fi
if [[ ${1#*.} != "yml" ]]; then
echo "1 argument should be .yml file"
usage
fi
}
valid_args $*
case $2 in
"start")
docker-compose -p ${1%*.yml} -f ${1} up -d
;;
"stop")
docker-compose -p ${1%*.yml} -f ${1} down
;;
*)
echo "2 argument should be [start] or [stop]"
usage
;;
esac
docker compose文件 release.yml
# gitea:
# db: test/tset12345
# git: test/_Test12345
version: "3"
services:
gitea:
image: gitea/gitea:1.12.4
container_name: gitea
hostname: gitea
volumes:
- "${common_data}/gitea/data:/data"
ports:
- "3000:3000"
- "22:22"
depends_on:
- db
restart: always
networks:
- release
db:
image: mariadb:10
container_name: db
hostname: db
environment:
- MYSQL_ROOT_PASSWORD=TEST12345
- MYSQL_DATABASE=gitea
- MYSQL_USER=test
- MYSQL_PASSWORD=test12345
volumes:
- "${common_data}/gitea/data:/var/lib/mysql"
restart: always
networks:
- release
registry:
image: registry:2
container_name: dockerhub
hostname: dockerhub
ports:
- "5000:5000"
restart: always
networks:
- release
networks:
release:
ipam:
driver: default
config:
- subnet: "10.10.0.0/24"