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

我们在完成服务的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
    2. # 打开浏览器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, 只要重新设置一下即可

  1. ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

2、在配置项目管理,其中的
「目标集群部署路径」这个路径,在最后一级不能存在已创建的文件,否则会报错,
「目标集群部署仓库」这个路径需要提前创建好,这个是你的代码库路径

3、记住密钥别泄露、接下来,开始你的部署即可

点赞 ( 0 )

0 条评论

发表评论

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

插入图片
s
返回顶部