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


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

查看所有标签

猜你喜欢:

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

Web Data Mining

Web Data Mining

Bing Liu / Springer / 2011-6-26 / CAD 61.50

Web mining aims to discover useful information and knowledge from Web hyperlinks, page contents, and usage data. Although Web mining uses many conventional data mining techniques, it is not purely an ......一起来看看 《Web Data Mining》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具