资讯专栏INFORMATION COLUMN

walle 瓦力--部署系统(配置)

MonoLog / 2471人阅读

摘要:发起部署时,为该上线单开辟一个独立空间,检出代码,选择上线单中的文件可能带版本号同步到目标机群。

GIT配置安装

git 项目配置指南

git部署是最推荐的方式,它无论对于何种语言都是合适的。

一、基本要求:

宿主机php进程用户www_php(假如,可通过配置的检测查看或ps aux|grep php)的ssh-key要加入git/gitlab的deploy-keys。当然也可以http地址带用户名密码(不推荐):https://username:password@github.com/meolu/walle-web.git
宿主机php进程用户www_php(假如,可通过配置的检测查看或ps aux|grep php)要加入目标机群部署用户www_remote(配置中)ssh-key信任,具体怎么添加可找sa或者百度或者,这一般是用户最不理解的地方,建议先花半小时理解linux用户概念和php配置。

二、配置项目
png](/img/bV0vgb)

三、检测项目配置

配置完毕之后,先检测下,如无问题则可以发起上线单了:)

四、检测的错误和解决办法
宿主机代码检出检测出错,请确认php进程用户{user}有代码存储仓库{path}读写权限,且把ssh-key加入git的deploy-keys列表。详细错误:{error}

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

没有权限,是因为用户{user}对目录{path}没有读写权限,给权限即可
ll {path}
chown {user} -R {path}
chmod 755 -R {path}

问题:把ssh-key加入git的deploy-keys列表

su {user} && cat ~/.ssh/id_rsa.pub
打开 github/gitlab/bitbucket 网站, 添加 ssh-key 到ssh-keys列表

目标机器部署出错,请确认php进程{local_user}用户ssh-key加入目标机器的{remote_user}用户ssh-key信任列表,且{remote_user}有目标机器发布版本库{path}写入权限。详细错误:{error}

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

添加机器信任,还是没理解请百度吧(因为太多的同学问这问题,实在没办法只能这么啰嗦)
su {local_user} && ssh-copy-id -i ~/.ssh/id_rsa.pub remote_user@remote_server
# need remote_user"s password

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

su remote_user
ll {path}
chown {remote_user} -R {path}
chmod 755 -R {path}
SVN配置

svn 项目配置

svn部署上线与git有点不太一样,svn是推荐增量发布(当然也可以全量更新),在开发者提交文件列表(可能带版本号),管理员审核上线单。发起部署时,为该上线单开辟一个独立空间,检出代码,选择上线单中的文件(可能带版本号)同步到目标机群。有不了解宿主机和目标机群关系、上线流程的同学先到项目主页了解。

因为svn没有git的版本快照,所以在部署需要全量代码编译操作时,只能选择全量更新,此时要求发布的分支/tag/trunk是可发布状态。建议java + git组合。同理其它需要全量代码在宿主机做编译相关的操作的语言,且为svn版本管理,请慎用。
一、基本要求:

svn目录推荐以下规范,详细可以注册riouxsvn,作为svn测试地址。当然三无(无trunk、无branches、无tags)也是支持:)
    branches
    tags
    trunk
宿主机php进程用户www_php(假如,可通过配置的检测查看或ps aux|grep php)要加入目标机群部署用户www_remote(配置中)ssh-key信任,具体怎么添加可找sa或者百度或者,这一般是用户最不理解的地方,建议先花半小时理解linux用户概念和php配置。


其他跟GIT一致

高级任务配置

高级任务方便用户自定义一些操作,无论是在代码检出前后,还是切换版本前后。
一、java配置实例

pre_deploy任务

echo pre_deploy >> /tmp/cmd # 初始化一些东西,自由发挥

post_deploy任务

mvn package -Dmaven.test.skip=true # 编译java
mvn clean # 打扫
mv WEB-INF/config.Properties.test WEB-INF/config.Properties # 切换环境相应的配置
rm -rf src # 甚至删除无用代码

pre_release任务

./xx.sh stop # 暂停服务

post_release任务

./xx.sh start # 启动服务

二、如果我想执行sudo命令?

想执行sudo命令的前提是用户有root权限,要执行哪些命令?

添加用户到sudoers

visudo
www    ALL=(ALL)       ALL

添加免密码命令

visudo
www ALL = (ALL) NOPASSWD: /usr/local/nginx/bin/nginx

设置用户的tty(宿主机执行sudo需要此步,目标机可以跳过此步)

Defaults:www    !requiretty
项目用户配置

角色分为管理员(注册可选)、开发者(注册可选)、项目审核管理员(前面二者均可是)。
1.管理员

注册时,选择角色为管理员,注册后邮件验证,但此时也不是立刻拥有管理员权限,需要其它管理员审核通过才行。


管理员的权限列表

配置新的项目、修改自己的项目配置
审核新管理员
设置项目的成员、项目审核管理员
审核上线单
上线

2.项目审核管理员

注册时无此用户角色,为管理员为减轻自己审核上线单压力、防止管理员不在线而影响上线而需要一两个代理审核管理员。但不能编辑项目配置,也不能添加项目成员,只比开发者多一个审核上线单的权限。

管理员的权限列表

审核上线单
上线


3.开发者

普通开发者可提交上线单,上线部署

管理员的权限列表

上线

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39718.html

相关文章

  • 瓦力Walle)上线部署系统

    摘要:瓦力是一个支持多用户多项目多环境同时部署的上线部署系统。详见项目,或花满树官方说明,如果喜欢欢迎标,支持我们把瓦力做强大。详情项目官网主页文档手册更新介绍瓦力自动化部署工具 showImg(https://segmentfault.com/img/bVrjiG); Walle - 瓦力 是一个支持svn、git、多用户、多项目、多环境同时部署的上线部署系统。 github项目 wall...

    nevermind 评论0 收藏0
  • walle-瓦力自动化部署工具

    摘要:项目地址瓦力,上线开源两个月,目前已支持超过十家企业线上部署使用,每周更新一个版本,持续带来新特性。支持开放接口支持第三方了解更多项目地址瓦力,官方主页瓦力。 1 Git Flow 一般而言,软件开发模型有常见的瀑布模型、迭代开发模型、以及最近出现的敏捷开发模型等不同的模型。每种模型有各自应用场景,Git Flow是构建在Git之上的一个组织软件开发活动的模型,Git Flow重点解...

    Allen 评论0 收藏0
  • walle 瓦力--部署系统(从原理到安装)

    摘要:瓦力介绍一个部署系统工具,配置简单功能完善界面流畅开箱即用支持版本管理,支持各种代码发布,,,等代码的发布回滚,可以通过来一键完成。 瓦力介绍 Walle 一个web部署系统工具,配置简单、功能完善、界面流畅、开箱即用!支持git、svn版本管理,支持各种web代码发布,PHP,Python,JAVA等代码的发布、回滚,可以通过web来一键完成。 功能列表 用户分身份注册、登录 开发者...

    VPointer 评论0 收藏0
  • walle 瓦力--部署系统(从原理到安装)

    摘要:瓦力介绍一个部署系统工具,配置简单功能完善界面流畅开箱即用支持版本管理,支持各种代码发布,,,等代码的发布回滚,可以通过来一键完成。 瓦力介绍 Walle 一个web部署系统工具,配置简单、功能完善、界面流畅、开箱即用!支持git、svn版本管理,支持各种web代码发布,PHP,Python,JAVA等代码的发布、回滚,可以通过web来一键完成。 功能列表 用户分身份注册、登录 开发者...

    zhangke3016 评论0 收藏0

发表评论

0条评论

MonoLog

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<