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

逻辑薄雾
• 阅读 4103

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)

三、检测项目配置

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

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

四、检测的错误和解决办法
宿主机代码检出检测出错,请确认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列表

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

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

目标机器部署出错,请确认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配置。

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

walle 瓦力--部署系统(配置)
其他跟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.管理员

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

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

walle 瓦力--部署系统(配置)
管理员的权限列表

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

2.项目审核管理员

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

管理员的权限列表

审核上线单
上线

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

walle 瓦力--部署系统(配置)
3.开发者

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

管理员的权限列表

上线

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
3年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
11月14日任务
一、安装Git  \如果你已经安装好了Git,可以忽略这一步  CentOS安装Git:yuminstallgit  查看Git版本信息:gitversion  配置Git用户信息:gitconfigglobaluser.name"woider"gitconfigglob
Wesley13 Wesley13
3年前
GIT命令大全
Git命令大全Git最小配置某账号下所有的Git仓库都有效gitconfigglobaluser.name'您的名称'gitconfigglobaluser.email'您的Email'只对当前Git仓库有效gitconf
Stella981 Stella981
3年前
Git生成SSH公钥
一、设置Git全局用户名和邮箱配置gitconfigglobaluser.name"huhansan"gitconfigglobaluser.email"huhansan@qq.com"如果有对设置Git信息有疑惑的可以看这边篇文章:为什么要设置Git的邮箱和用户名(https://my.oschin
Stella981 Stella981
3年前
Linux上安装git并在gitlab上建立对应的项目
1.CentOS上面安装git我所用的CentOS为CentOS6.5,其他版本没有测试。yuminstallgit 安装之后查看git版本信息gitversion2.配置git信息gitconfigglobaluser.name"yourname"gitconfigglobaluser.em
Stella981 Stella981
3年前
GitLab 安装配置指南
GitLab在CentOS7系统上的安装配置指南1、简单介绍GitLab是利用RubyonRails开发的一个开源版本管理系统,实现一个自托管的Git管理仓库,可通过Web界面进行访问、管理控制权限。Git的家族成员介绍Git:是一种开源分布式的版本控制系统,是一个命令,是一种工具。是伟大的程
Stella981 Stella981
3年前
Git基本配置
Git配置安装yuminstallgit全局配置设置提交用户名gitconfigglobaluser.name"leoxu"设置提交邮箱gitconfiggl
Stella981 Stella981
3年前
Git基本用法(上)
1.Git配置gitconfigglobaluser.name"qwop"gitconfigglobaluser.email"qwop@live.cn"cat~/.gitconfig2\.获得一个仓库gitclonehttp://git.shiyanlou.com/shiyanlou/gitproject
Stella981 Stella981
3年前
FAQ(86):Ubuntu 下 idea 配置git 报错:Failed to start Git process error=13, Permission denied.
2019年06月15日今天在Ubuntu系统上部署开发环境,碰到idea的git安装配置问题,百度一下,居然只搜出一篇文章(网上大多数都是Windos系统的git配置),很尴尬,于是自己想办法,也顺手把解决方法分享一下。1)git下载与安装git官网:https://www.gitscm.com/download/