您所在的位置:主页-新闻资讯-公司动态-

[DevOps]使用Walle与Gitlab进行代码管理及项目部署

发表于:2019-12-09 11:02 阅读: 关键词:
前置说明:
Gitlab,Walle服务器A环境:Centos7.6
生产环境服务器B环境:Centos7.6,Nginx1.16.0,MySQL5.7,PHP7.2
 
一、 Gitlab安装
服务器A中,命令行进行如下步骤
 
1.安装依赖包
sudo yum install -y curl policycoreutils-python openssh-server
 
2.安装postfix
sudo yum install -y postfix
 
3.启动postfix并设置为开机启动
sudo systemctl enable postfix
sudo systemctl start postfix
 
4.添加GitLab社区版Package
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
 
5.安装GitLab社区版
sudo yum install -y gitlab-ce
 
安装成功后会看到gitlab-ce打印了以下图形
 
6.配置Gitlab的访问站点url
 
sudo vim /etc/gitlab/gitlab.rb
 
默认的站点Url配置项是:
 
external_url 'http://gitlab.example.com'
 
将http://gitlab.example.com修改为自己需求的访问域名或IP
 
 
7.重新配置并启动
 
sudo gitlab-ctl reconfigure
 
sudo gitlab-ctl restart
 
完成后可在浏览器输入第6点中的url访问
 
 
二、 Walle安装
 
Walle的安装有标准安装及docker安装。此处方便及快速使用选择docker安装
 
服务器A中,命令行进行如下步骤
 
1.安装docker
 
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
 
 
 
2.安装docker-compose
 
sudo yum install python-pip
 
sudo pip install --upgrade pip
 
pip install docker-compose
 
 
 
3.在目标位置生成运行用文件夹
 
mkdir walle
 
cd walle
 
vim walle.env
 
walle.env内容如下
 
# Set MySQL/Rails environment
MYSQL_USER=root
MYSQL_PASSWORD=walle
MYSQL_DATABASE=walle
MYSQL_ROOT_PASSWORD=walle
MYSQL_HOST=db
MYSQL_PORT=3306
 
保存
vim docker-compose.yml
 
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
 
保存
 
4.启动
docker-compose up -d && docker-compose logs -f
完成后可在浏览器输入服务器A的IP访问
初始登录账号如下
 
超管: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
 
 
三、 建立服务器间免密码访问
 
1.在服务器A中生成ssh key
 
ssh-keygen -t rsa -C "your_email@example.com"
 
 
2.建立免密码登录
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器B的IP
 
按照步骤输入服务器B的root用户密码
 
完成后,将服务器A的~/.ssh/id_rsa.pub文件内容复制并黏贴到服务器B的~/.ssh/authorized_keys文件末尾
 
四、 Walle中建立项目管理
1.一般的服务器代码部署任务如下,需要根据实际需要调整


 
2.新建上线单
 
此处可选择需要提交到对应环境的代码版本。
 
3.发布上线
如无意外,项目代码将会提交到对应服务器并执行各种定义任务操作。
 
如果失败,也能在此看到错误信息,并通过错误信息解决问题。

可能您还想看