DevOps 基于Walle的小型持续集成实战(四)搭建Walle

栏目: Python · 发布时间: 5年前

内容简介:上篇文章中,讲到了如何搭建docker下的服务mysql,gitlab,nexus。其他例如npm/maven/java环境安装则不再讲解。本篇会开始正式使用Walle作为持续集成方案,进行小型服务的快速构建发布。Walle官网:walle 让用户代码发布终于可以不只能选择 jenkins!支持各种web代码发布,php、java、python、go等代码的发布、回滚可以通过web来一键完成。walle 一个可自由配置项目,更人性化,高颜值,支持git、多用户、多语言、多项目、多环境同时部署的开源上线部署系

上篇文章中,讲到了如何搭建 docker 下的服务mysql,gitlab,nexus。其他例如npm/maven/java环境安装则不再讲解。本篇会开始正式使用Walle作为持续集成方案,进行小型服务的快速构建发布。

Walle官网: http://www.walle-web.io/

基本概述

walle 让用户代码发布终于可以不只能选择 jenkins!支持各种web代码发布,php、 javapythongo 等代码的发布、回滚可以通过web来一键完成。walle 一个可自由配置项目,更人性化,高颜值,支持git、多用户、多语言、多项目、多环境同时部署的开源上线部署系统。

宿主机、目标机群、操作用户

DevOps 基于Walle的小型持续集成实战(四)搭建Walle

权限模型

DevOps 基于Walle的小型持续集成实战(四)搭建Walle

信任关系

DevOps 基于Walle的小型持续集成实战(四)搭建Walle

构建流程

DevOps 基于Walle的小型持续集成实战(四)搭建Walle

Docker安装Walle

Docker安装

Centos系统

sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce -y
sudo systemctl enable docker
sudo systemctl start docker

Mac系统

https://docs.docker.com/docke...

Python安装

请安装至少版本2.7.15及以上,版本3以下。(推荐2.7.15,不然会出现各种莫名其妙的问题,官方未解释原因)

Docker-compose 安装

pip install docker-compose -i https://mirrors.aliyun.com/pypi/simple/

如果pip不存在,可以尝试

sudo yum install python-pip 
sudo pip install --upgrade pip

创建Walle容器编排配置

编辑 mysql 配置文件: cd ${walle运行目录} && vim docker-compose.yml

# Set MySQL/Rails environment
MYSQL_USER=root
MYSQL_PASSWORD=walle
MYSQL_DATABASE=walle
MYSQL_ROOT_PASSWORD=walle
MYSQL_HOST=db
MYSQL_PORT=3306

编辑docker-compose walle配置文件: vim 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
      - "80: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
    command: bash -c "cd /opt/walle_home/ && /bin/bash admin.sh migration &&  python waller.py"
    expose:
      - "5000"
    volumes:
      - /opt/walle_home/plugins/:/opt/walle_home/plugins/
      - /opt/walle_home/codebase/:/opt/walle_home/codebase/
      - /opt/walle_home/logs/:/opt/walle_home/logs/
      - /root/.ssh:/root/.ssh/
    depends_on:
      - db
    networks:
      - walle-net
    restart: always

  db:
    image: mysql
    container_name: walle-mysql
    hostname: walle-mysql
    env_file:
      - ./walle.env
    command: [ '--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
    ports:
      - "3306:3306"
    expose:
      - "3306"
    volumes:
      - /data/walle/mysql:/var/lib/mysql
    networks:
      - walle-net
    restart: always

networks:
  walle-net:
    driver: bridge

docker-compose概要

参考文章: https://blog.csdn.net/u011781...

以上配置文件有以下几个特点:

  • 基本参数

    • image:docker的镜像,需要依据该镜像运行为容器
    • container_name:容器名称,停止和启动容器时使用
    • hostname:机器名称
    • env_file:环境变量配置文件
    • command:启动后需要执行的命令
    • ports:映射到宿主机的端口
    • expose:暴露非80的端口
    • vlolumes:映射到宿主机的文件路径
    • networkks:指定的服务网路
    • restart:不管退出状态码是什么始终重启容器
  • 一共3个镜像需要在编排的时候,运行为容器web,python,db。启动顺序为db > python > web
  • web存放walle静态界面,依赖python接口,映射容器端口80到宿主机端口80
  • python存放接口与构建环境,依赖db服务,并映射日志等内容到宿主机。
  • db存放mysql配置文件,并映射mysql数据文件路径到宿主机。(防止容器重启损坏后丢失数据),映射容器端口3306到宿主机端口3306,额外暴露端口3306

Start

一键启动(快速体验)

docker-compose up -d && docker-compose logs -f

打开浏览器localhost:80 (如不想使用80端口,请调整"80:80",改变左侧端口号)

初始登录账号如下,开启你的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

常用操作

构建服务

docker-compose build

启动服务,启动过程中可以直接查看终端日志,观察启动是否成功

docker-compose up

启动服务在后台,如果确认部署成功,则可以使用此命令,将应用跑在后台,作用类似 nohup python waller.py &

docker-compose up -d

查看日志,效果类似 tail -f waller.log

docker-compose logs -f

停止服务,会停止服务的运行,但是不会删除服务所所依附的网络,以及存储等

docker-compose stop

删除服务,并删除服务产生的网络,存储等,并且会关闭服务的守护

docker-compose down


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员面试宝典

程序员面试宝典

欧立奇、刘洋、段韬 / 电子工业出版社 / 2006-7 / 39.00元

本书取材于各大IT公司历年面试真题(包括笔试题、口试题、电话面试、英语面试,以及逻辑测试和智商测试)。通过精确详细的分类,把在应聘程序员(含网络、测试等)过程中所遇见的常见考点分为21章。不仅对传统的C系语言考点做了详尽的解说,包括面向对象问题、sizeof问题、const问题、数据结构问题等。还根据外企出题最新特点,针对设计模式问题、C#问题、网络问题、数据库问题、NET问题等,做了深入的说明。......一起来看看 《程序员面试宝典》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器