Walle(瓦力):一套软件开发的部署系统。提供了清晰的日志记录,支持数据的回滚。用于解决大型团队在软件开发中的测试、预测试和上线的统一部署管理。

系统环境:CentOS6.8-A CentOS-6.8-B

软件支持:walle  ssh  php-5.6  gitlab-8.6.0  composer  nginx-1.10  git2.3  Mysql5.6

安装过程:

    1. 基础环境
      1. yum install openssh-clients  支持ssh(CentOS6.8-A)
      2. 安装nginx(请自行百度,CentOS6.8-A)
      3. 安装php-5.6(请自行百度),把php配置到环境变量。(CentOS6.8-A)
      4. 安装composer(请自行百度),php composer-setup.php --install-dir=/usr/bin --filename=composer(CentOS6.8-A)
      5. 安装gitlab(请参考官网安装教程, CentOS6.8-B)
      6. 安装git(请自行百度)。并添加到环境变量(CentOS6.8-A)
      7. 安装Mysql5.6(请自行百度)
    2. 测试基础环境搭建
      1. 在CentOS6.8-A中通过nginx访问php文件是否成功
      2. 在CentOS6.8-B中访问gitlab是否成功
    3. 用户配置
      1. 添加新用户(www_php),并且是可登录的正常用户
      2. 设置php-fpm的用户以及用户组为新创建的用户(www_php),并设置重启
      3. 为新的用户通过ssh生成密钥(公钥和私钥)
      4. 把新用户的公钥添加到gitlab,并进行测试无密码git操作(拉取|推送等等),首次拉取会进行服务端身份指纹的验证,再次拉取则可以进行无密码拉取
      5. 设置新用户自己通过ssh无密码连接自己(centos可以通过ssh连接自己)
    4. 文件权限设置
      1. mkdir /storage/deploy/form
      2. mkdir /storage/deploy/release
      3. mkdir /storage/www
      4. 设置上述创建的文件可以为新用户(www_php)读写的权限
    5. 安装walle(http://www.walle-web.io/docs/installation.html)
      1. git clone https://github.com/meolu/walle-web.git
      2. 在walle-web->config->local.php文件中配置连接Mysql的参数
      3. composer install --prefer-dist --no-dev --optimize-autoloader -vvvv 通过composer安装walle-web的第三方拓展
      4. walle-wab->yii walle/setup  初始化项目
      5. 配置nginx虚拟域名

            

server {
listen 80;
server_name walle.compony.com; # 改你的host
root /the/dir/of/walle-web/web; # 根目录为web
index index.php; # 建议放内网
# allow 192.168.0.0/24;
# deny all; location / {
try_files $uri $uri/ /index.php$is_args$args;
} location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

      6. 访问域名。内容的管理员帐号为admin|admin

问题解答

  1:请确认php进程用户{user}有代码存储仓库{path}读写权限。

    chown -R {user}:{user} {path}

    chmod 755 {path}

    2:请确认php进程用户{user}把ssh-key加入git的deploy-keys列表

      1):没有把{user}生成的公钥添加到gitlab的ssh-key管理列表中。请添加,并且测试是否可以通过{user}进行无密码的git的操作

      2):确定把{user}加入到了指定的git管理仓库中,那么请使用git随便拉取一个repository,因为首次拉取会让客户端进行远程服务端的身份指纹验证的操作

      请确保{user}可以进行无密码的正常拉取操作

      3):当以上两种情况都没有问题,命令行可以正常拉取,但是通过walle还是报错。请将git创建一个软连接到/usr/bin。(本人遇到的就是这个问题)

    3:gitlab在添加ssh的时候报500错误

      cat  /var/log/gitlab/gitlab-rails/production.log

      1):/usr/bin/env: ssh

        yum install openssh-clients -y

    4:请确认php进程{local_user}用户ssh-key加入目标机器的{remote_user}用户ssh-key信任列表

      请确保{local_user} 通过ssh可以无密码登录{remote_user}

    5:{remote_user}有目标机器发布版本库{path}写入权限

      解决方法请参考->1

    6:walle上线出现无法已非目录覆盖目录

      

       这里的webroot填写的存放路径的最后一个文件名称,不能存在。walle会部署项目的时候以最后一个名称为项目文件名。如:/www/webroot/test  则test不需要创建,并且test需要有针对上图中的[用户]拥有读写权限。

walle的原理解析

    通过PHP中的exec()函数基于SSH安全验证机制(免密码登录)进行一系列的命令操作,如git的拉取、文件夹的创建、文件的远程拷贝等等。  

  

walle(瓦力)部署系统的安装和简单使用的更多相关文章

  1. centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解

    centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...

  2. 最火的分布式调度系统 XXL-JOB 安装和简单使用

    唉,在谈文章之前先说一下自己的情况.原计划是在上周六写完这篇文章的,然而周六的时候打开电脑的,按照平常"惯例",先补一些 "黑色五叶草"/"进巨&qu ...

  3. idea 热部署之JRebel安装-激活-简单使用(修改方法\配置文件均生效)

    1.简介 JRebel插件在IntelliJ IDEA中用于代码的热部署,即工程在已经启动的状态下修改代码,可以不用再重启服务,JRebel插件会自动帮我们编译代码,然后重启.整个重启的过程耗时非常短 ...

  4. Walle代码发布系统

    Walle 一个web部署系统工具,配置简单.功能完善.界面流畅.开箱即用!支持git.svn版本管理,支持各种web代码发布,PHP,Python,JAVA等代码的发布.回滚,可以通过web来一键完 ...

  5. VMware下CenOS7系统的安装及lnmp服务器的搭建

    CentOS7系统的安装 CentOS7下载:http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso 下 ...

  6. Walle - 瓦力上线部署系统搭建攻略

    背景知识:Walle - 瓦力是一个支持svn.git.多用户.多项目.多环境同时部署的上线部署系统,http://www.oschina.net/news/68610/walle-0-9-2 实验系 ...

  7. Walle 瓦力 web部署系统

    Walle 一个web部署系统工具,可能也是个持续发布工具,配置简单.功能完善.界面流畅.开箱即用! 安装步骤: 1. git clone 首先配置成功(去百度找答案) 打开git bash命令窗口执 ...

  8. windows系统dokuwiki安装部署设置 xampp环境配置

    简单记录一次安装dokuwiki的过程 dokuwiki下载 dokuwiki下载地址 https://download.dokuwiki.org/ 下载前有一些可选项目,版本.语言.插件,可以按照需 ...

  9. CDH CM安装及简单群集部署测试

    前吃人的故事开始了,金钱是如何吃人的呢?我在想ing,还没想通,一起吧,哈哈: 入题,别胡扯,误人子弟!!!! CM@@!!!!!!....................., 先来张monitor ...

随机推荐

  1. WebAPI介绍

    Web API介绍 API的概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...

  2. BCB编写DLL终极手册

    一. 编写 DLL File/New/Dll 生成 Dll 的向导,然后能够添加导出函数和导出类 导出函数:extern "C" __declspec(dllexport) Exp ...

  3. python模块operator对排序的辅助功能

    一.介绍 该operator模块导出一组与Python的内部运算符相对应的高效函数.例如,等同于表达式.函数名称是用于特殊类方法的函数名称; 为方便起见,还提供了没有前导和尾随的变体.operator ...

  4. Identifying a Blocking Query After the Issuing Session Becomes Idle

    Identifying a Blocking Query After the Issuing Session Becomes Idle #查看阻塞信息 select * from sys.innodb ...

  5. POJ 2398 map /// 判断点与直线的位置关系

    题目大意: poj2318改个输出 输出 a: b 即有a个玩具的格子有b个 可以先看下poj2318的报告 用map就很方便 #include <cstdio> #include < ...

  6. LeetCode 21. 合并两个有序链表(Python)

    题目: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-&g ...

  7. JS控制语句 编程练习 学生数据,分别是姓名、性别、年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦。

    编程练习 在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名.性别.年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦. 学生信息如下 ...

  8. [Luogu2135] 方块消除【区间Dp】

    Online Judge:P2135 方块消除(这题不用预处理) Label:区间Dp 题目描述 Jimmy最近迷上了一款叫做方块消除的游戏.游戏规则如下:n个带颜色方格排成一列,相同颜色的方块连成一 ...

  9. QTableView的indexAt使用方法

    要实现的功能是QTableview中Item项上右键弹出菜单这就必然要判断点击右键时鼠标指针是否在QTableView的Item上 如果是QTableWidget可以用itemAt来判断QTableV ...

  10. 小程序跳转传参参数值为url时参数丢失

    通过先encodeURIComponent,取到值以后再decodeURIComponent,拼接参数正常传递 A页面 switch: function (e) { var aa = 'UNNZVUf ...