go-deploy

支持 SVN/Git 的一键 web 集群部署工具
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 国产
投 递 者 朱硕
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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。

  • kubernetes client-go 管理 deployment tags: client-go,Deployment Kubernetes Deployment【1】管理与编排入门 Kubernetes Deployment【2】原理深入详解 Kubernetes Deployment【3】管理高级技巧详解 Kubernetes Deployment【4】client-go 管理 deplo

  • ceph-deploy源码分析(三)——mon模块 原文: http://www.hl10502.com/2017/06/19/ceph-deploy-mon/#more ceph-deploy的mon.py模块是用来管理mon守护进程。 mon 子命令格式如下 ceph-deploy mon [-h] {add,create,create-initial,destroy} ... create

  • Message:  FAIL - Deploy Upload Failed, Exception: [org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (112503036) exceeds the c

  • ceph-deploy的mon 命令用于管理mon守护进程 其入口函数在E:\ceph-deploy-master\ceph-deploy-master\ceph_deploy\mon.py 中的make函数 @priority(30) def make(parser): """ Ceph MON Daemon management """ parser.forma

  • ceph-deploy源码分析(一)——源码结构与cli 原文: http://www.hl10502.com/2017/06/15/ceph-deploy-cli/#more ceph-deploy是部署Ceph集群的工具,可以通过SSH方式往远程主机上安装 Ceph 软件包、创建集群、增加监视器、收集(或销毁)密钥、增加 OSD 和元数据服务器、配置管理主机,甚至拆除集群。 ceph-depl

 相关资料
  • 我创建了两个java web应用程序,一个使用mysql,另一个使用oracle。我在glassfish4.0服务器中部署了这些应用程序,并且工作正常。然后,我在服务器中创建集群,其中1个实例位于本地节点,1个实例来自远程节点。该集群和实例成功运行 然后我将应用程序部署到集群,当我在浏览器中运行web时, 应用程序使用mysql显示错误“类名错误或未为com.mysql.jdbc.jdbc2.op

  • 提纲ceph-deploy new [initial-monitor-node(s)] ceph-deploy install [ceph-node] [ceph-node...] ceph-deploy mon create-initial ceph-deploy osd prepare [ceph-node]:[dir-path] ceph-deploy osd activate [ceph-

  • 主版本和次版本升级 Seafile 在主版本和次版本中添加了新功能。有可能需要修改一些数据库表,或者需要更新搜素索引。一般来说升级集群包含以下步骤: 更新数据库 更新前端和后端节点上的符号链接以指向最新版本。 更新每个几点上的配置文件。 更新后端节点上的搜索索引。 一般来说,升级集群,您需要: 在一个前端节点上运行升级脚本(例如:./upgrade/upgrade_4_0_4_1.sh) 在其他所

  • 按照Seafile 集群文档中给出的推荐架构,Seafile 集群需要使用一个分布式、高可用的数据库和缓存集群。在本文档中,我们给出一个在 3 台服务器上部署 MariaDB 和 Memcached 集群的案例。 硬件和操作系统需求 最少使用3台服务器部署来集群,每台机器都应该有: 2核、4GB内存。 1个SATA磁盘用来存储操作系统。 1个SATA磁盘用来存储MariaDB数据。也可以把 Mar

  • 本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。 在部署的过程中,将详细列出各组件的启动参数,它们的含义和可能遇到的问题。 部署完成后,你将理解系统各组件的交互原理,进而能快速解决实际问题。 所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。

  • 本系列文档介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。

  • consul是微服务的中转中心(注册中心/配置中心),最重要的组件。如果consul服务器挂了,系统也会奔溃。因为重要,所有我们必须要部署一个集群 consul分为server节点与client节点,server节点负责存储数据;client节点负责注册、发现、读写配置、健康监测。 自定义网络 自定义网络可以指定容器IP,这样服务器重启consul集群也可以正常运行。 docker network

  • 要从事 ceph 开发,可以用 vstart.sh 工具部署一个位于本地的伪集群,以便测试。 用法 用此工具可在本机部署伪集群以便开发,它可以启动 rgw 、 mon 、 osd 、和/或 mds ,不指定的话会启动所有类型。 要启动开发集群,执行此命令: vstart.sh [OPTIONS]... [mon] [osd] [mds] 要停止集群,可以执行: ./stop.sh 选项 -i ip