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

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)

三、检测项目配置

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

clipboard.png

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

clipboard.png

clipboard.png

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

clipboard.png

clipboard.png
其他跟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.管理员

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

clipboard.png

clipboard.png
管理员的权限列表

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

2.项目审核管理员

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

管理员的权限列表

审核上线单
上线

clipboard.png

clipboard.png
3.开发者

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

管理员的权限列表

上线

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值