自动化部署第二序章之瓦力部署

我们在完成服务的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源代码

  1. git clone https://gitee.com/wushuiyong/walle-web.git

3、打开源码,对docker-compose.yml,进行自己的环境进行修改

  1. # docker version: 18.06.0+
  2. # docker-compose version: 1.23.2+
  3. # OpenSSL version: OpenSSL 1.1.0h
  4. version: '3.7'
  5. services:
  6. web:
  7. image: alenx/walle-web:2.1
  8. container_name: walle-nginx
  9. hostname: nginx-web
  10. ports:
  11. # 如果宿主机80端口被占用,可自行修改为其他port(>=1024)
  12. # 0.0.0.0:要绑定的宿主机端口:docker容器内端口80
  13. - "8082:80"
  14. depends_on:
  15. - python
  16. networks:
  17. - walle-net
  18. restart: always
  19. python:
  20. image: alenx/walle-python:2.1
  21. container_name: walle-python
  22. hostname: walle-python
  23. env_file:
  24. # walle.env需和docker-compose在同级目录
  25. - ./walle.env
  26. volumes:
  27. - /Users/kevin/Documents/Docker/walle/codebase/:/tmp/walle/codebase/
  28. - /Users/kevin/Documents/Docker/walle/logs/:/opt/walle-web/logs/
  29. - /Users/kevin/Documents/Docker/root/.ssh/:/root/.ssh/
  30. command: bash -c "cd /opt/walle_home/ && /bin/bash admin.sh migration && python waller.py"
  31. expose:
  32. - "5000"
  33. depends_on:
  34. - db
  35. networks:
  36. - walle-net
  37. restart: always
  38. db:
  39. image: mysql
  40. container_name: walle-mysql
  41. hostname: walle-mysql
  42. env_file:
  43. # walle.env需和docker-compose在同级目录
  44. - ./walle.env
  45. command: [ '--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
  46. ports:
  47. - "3307:3306"
  48. expose:
  49. - "3306"
  50. volumes:
  51. - /Users/kevin/Documents/Docker/walle/mysql:/var/lib/mysql
  52. networks:
  53. - walle-net
  54. restart: always
  55. networks:
  56. walle-net:
  57. driver: bridge

4、修改mysql配置文件

  1. MYSQL_USER=walle // mysql 8.0 不允许root用户
  2. MYSQL_PASSWORD=walle
  3. MYSQL_DATABASE=walle
  4. MYSQL_ROOT_PASSWORD=walle
  5. MYSQL_HOST=db
  6. MYSQL_PORT=3306

5、start

  1. 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 )

0 条评论

发表评论

人生在世,错别字在所难免,无需纠正。

插入图片
s
返回顶部