自动化部署第二序章之瓦力部署
我们在完成服务的git服务完成后,我们就可以正常的去对项目进行部署,但是只是靠钩子确实可以解决一部分的问题,但是我们在部署的时候,还有更多其他的需求,所以还是希望能够一个部署系统,去帮助我们进行对各个环境下的不同项目完成轻松的部署工作.
注: 在此感谢开发瓦力部署系统的开源团队
1、关于 walle 瓦力
简介
我们期望打造一个比 jenkins 更为好用的的部署平台,walle团队孜孜不倦地做免费开源。
愿 walle 能真真切切为你解决 DevOps 的问题,也愿能与志同道合之人相知畅聊。
官网地址:https://walle-web.io/
功能点介绍
支持一键回滚
支持多服务器部署
支持自定义部署
完整的用户管理和上线记录
原理介绍:
walle由python开发,主要是通过git仓库,拉取你的代码仓库,然后登录你的服务器,解压代码包,创建软连接.如果你想自己开发,需要掌握python语法、对linux命令的熟悉程度、服务器鉴权等熟悉,总体还是很容易上手
2、瓦力的docker部署
由于我的平台是mac,为避免增加开发成本,采用docker方式部署,同样还是遇到了一些问题,接下来,为大家介绍一下docker安装walle过程.(官方文档是个好东西)https://walle-web.io/docs/installation_docker.html
3、正式开始入坑
1、安装好你的docker.然后修改数据源地址
2、下载walle源代码
git clone https://gitee.com/wushuiyong/walle-web.git
3、打开源码,对docker-compose.yml,进行自己的环境进行修改
# docker version: 18.06.0+
# docker-compose version: 1.23.2+
# OpenSSL version: OpenSSL 1.1.0h
version: '3.7'
services:
web:
image: alenx/walle-web:2.1
container_name: walle-nginx
hostname: nginx-web
ports:
# 如果宿主机80端口被占用,可自行修改为其他port(>=1024)
# 0.0.0.0:要绑定的宿主机端口:docker容器内端口80
- "8082:80"
depends_on:
- python
networks:
- walle-net
restart: always
python:
image: alenx/walle-python:2.1
container_name: walle-python
hostname: walle-python
env_file:
# walle.env需和docker-compose在同级目录
- ./walle.env
volumes:
- /Users/kevin/Documents/Docker/walle/codebase/:/tmp/walle/codebase/
- /Users/kevin/Documents/Docker/walle/logs/:/opt/walle-web/logs/
- /Users/kevin/Documents/Docker/root/.ssh/:/root/.ssh/
command: bash -c "cd /opt/walle_home/ && /bin/bash admin.sh migration && python waller.py"
expose:
- "5000"
depends_on:
- db
networks:
- walle-net
restart: always
db:
image: mysql
container_name: walle-mysql
hostname: walle-mysql
env_file:
# walle.env需和docker-compose在同级目录
- ./walle.env
command: [ '--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
ports:
- "3307:3306"
expose:
- "3306"
volumes:
- /Users/kevin/Documents/Docker/walle/mysql:/var/lib/mysql
networks:
- walle-net
restart: always
networks:
walle-net:
driver: bridge
4、修改mysql配置文件
MYSQL_USER=walle // mysql 8.0 不允许root用户
MYSQL_PASSWORD=walle
MYSQL_DATABASE=walle
MYSQL_ROOT_PASSWORD=walle
MYSQL_HOST=db
MYSQL_PORT=3306
5、start
docker-compose up -d && docker-compose logs -f
打开浏览器localhost:80
4、初始登录账号如下,开启你的walle 2.0之旅吧:)
超管:super@walle-web.io \ Walle123
所有者:owner@walle-web.io \ Walle123
负责人:master@walle-web.io \ Walle123
开发者:developer@walle-web.io \ Walle123
访客:reporter@walle-web.io \ Walle123
5、遇到问题
排错文档:https://walle-web.io/docs/troubleshooting.html
1、文档中只介绍了Authentication failed.的问题如何解决, 但是如果你按照文档的步骤做下去,发现结果还是报错了,如果报错是: not a valid RSA private key file
因为python使用的Paramiko组件没有读取到你得有效RSA, 只要重新设置一下即可
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
2、在配置项目管理,其中的
「目标集群部署路径」这个路径,在最后一级不能存在已创建的文件,否则会报错,
「目标集群部署仓库」这个路径需要提前创建好,这个是你的代码库路径
3、记住密钥别泄露、接下来,开始你的部署即可
0 条评论