支持 SVN/Git 的一键 web 集群部署工具 go-deploy

MIT
Google Go
跨平台
2019-01-22
ikool

go-deploy

web集群一键上线工具,支持SVN、Git。增量更新、回滚,100+服务器节点秒级完成部署。

Screenshot

特性

  • 支持svn和git

  • 支持多项目、多节点、多环境、分布式集群环境批量更新和回滚操作

  • golang的高性能并发加持,上百台节点秒级完成部署

  • 无需svn或git账号密码、无需免密登录目标机 降低安全风险

  • 增量更新、回滚,速度更快

  • server和client采用tcp通讯+心跳保活 节点在线状态实时监控

  • 支持befor_deploy、after_deploy 部署前和部署后的hook命令,清理缓存、执行重启等操作。 如:sudo service php-fpm reload

  • 控制面板、简单易用、无需复杂配置。

  • server端配置hook命令,避免web端配置hook带来的风险

部署流程

  • 可以自行编译或者直接下载bin下的二进制文件。

  • 所有的client节点标机器必须先使用svn部署好环境,假设web运行的系统账号为www,后续的所有操作均在www账号下进行

    su www
    svn co svn://1.2.3.4/app /data/wwwroot/app
    cd /data/wwwroot/app
    svn up
    #确保下次执行更新 不需要输入账号密码

    并配置好你的web运行环境,如nginx。

  • 请确保www账号拥有shell权限

    cat /etc/passwd|grep www 
    www:501:501::/home/www:/bin/bash
  • 每个项目需要在server节点拉取一份代码,并将其目录配置在config.json对应的项目的fetchlogpath,控制面板读取的commit log将在这个目录下读取,切忌请不要将任何web指向这个目录。

  • 配置config.json,添加应用和node节点

  • 使用www账号启动server

    su www
    chmod +x /pathto/server
    /pathto/server -c /pathto/config.json
  • 打开浏览器查看web管理界面 http://ip:port 是否可以正常访问

  • 所有的节点机器启动client,同样使用web账号www运行

    su www
    chmod +x /pathto/client
    /pathto/client -l :8081 #config.json里的node节点端口

    至此就部署完毕了。

web管理访问安全问题

  • 第一种方案:使用nginx+auth_basic 来保护页面的访问。 通过htpasswd命令生成用户名及对应密码数据库文件

    htpasswd -c /usr/local/openresty/nginx/conf/vhost/passwd.db yourusername

                配置nginx

    server {
             listen 80;
             server_name yourdomain;
             auth_basic "User Authentication";
             auth_basic_user_file /usr/local/openresty/nginx/conf/vhost/passwd.db;
             location / {
                 proxy_pass http://127.0.0.1:http_port;
             }
         }
  • 第二种方案:每次上线后关闭server。

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Mac下如何添加User到group中

创建用户名为deploy,并加入deploy组中 1. 创建用户: sudo dscl . -create /Users/deploy 2. 创建组: sudo dscl . -create /groups/deploy 3. 列出所有组: sudo dscl . -list /groups Gr...

2015/01/06 17:21
96
0
在linux下配置javaWeb项目.sh部署脚本

在linux下配置javaWeb项目.sh部署脚本

2016/01/04 16:24
73
0
Ceph集群动态调整

动态新增/删除OSD、MON

2015/07/01 11:03
73
0
ceph部署过程

1.在每个节点执行useradd命令添加一个用户(如ceph),密码设为空 2.在mon.0节点执行ssh-keygen命令,然后执行ssh-copy-id将ssh public key复制到各个节点。修改 sshd config文件,开启远程无...

2015/04/21 16:30
288
0
jenkins 发布 -nodejs 例子

编译视图 图1:编译打包视图 图2:测试环境多分支分布 插件:git Parameter 构建shell: echo $JOB_NAME ${JOB_BASE_NAME} npm -v node -v #npm install npm run build rm ${JOB_BASE_NAME}....

2018/09/28 11:24
9
0
Makefile 实现工程的本地部署

某在开发子模块工程过程中经常需要将工程复制到测试目录进行整体集成编译,于是在makefile中添加部署伪目标。

2015/05/08 18:03
10
0
使用ceph-deploy部署ceph命令解析

1.在每个节点执行useradd命令添加一个用户(如ceph),密码设为空 2.在mon.0节点执行ssh-keygen命令,然后执行ssh-copy-id将ssh public key复制到各个节点。修改 sshd config文件,开启远程无...

2015/04/07 17:16
6.7K
0
ceph 0.87 ubuntu14.04 使用ceph-deploy配置(配置篇) .

ceph 0.87 ubuntu14.04 使用ceph-deploy配置(配置篇) .

2015/02/04 17:16
140
0
自动部署工具capistrano学习笔记

capistrano新手, ruby新手所写的笔记。请批评指正。 本文的所有内容可运行在capistrano 2, 不能运行在capistrano3 。 capistrano版本为2.15.5。...

2014/02/23 00:02
2.6K
2

没有更多内容

加载失败,请刷新页面

返回顶部
顶部