zb850929 发表于 2012-06-11 14:36

如实现自动化上线?

现状:每次新的功能要上线,都是人工操作,首先备份程序、文件,然后,停掉现有的服务,或者将该服务的用户切换到别的机器上去;
然后从预投产机器拷贝新的程序或者配置文件等,然后在启动新的服务;这样的操作要进行20多次,因为目前大概有20多台机器,但是以
后机器还会增加;不知道各位大神有没有好的建议?如何实现自动化操作呢?

millerzhou 发表于 2012-06-12 17:13

结合FUNC实现

1、控制台注册软件包、应用(产品)和主机列表
2、控制台向应用(产品)的主机列表依次发送升级指令
3、A主机被从负载均衡集群中摘下,备份当前版本以备回退,从软件包版本库下载到A主机,解压,执行安装脚本,重启服务
4、控制台检测A主机返回的服务是否正常
5、控制台将A主机重新注册回负载均衡集群
6、写A成功或失败日志
7、B主机,重3-6
……
8、显示发布成功或失败主机列表和日志

luo339 发表于 2012-06-12 18:23

批量执行命令,上传文件

流氓无产者 发表于 2012-06-13 08:55

首先实现在单台机器的自动话
然后实现console/agent方式

也可以
rsh实现主机对其他机器的远程操作:mrgreen:

statemood 发表于 2012-06-20 09:48

zb850929 发表于 2012-06-11 14:36 static/image/common/back.gif
现状:每次新的功能要上线,都是人工操作,首先备份程序、文件,然后,停掉现有的服务,或者将该服务的用户 ...

首先使用RSA做ssh登录认证,然后写一个脚本a,
功能大致如下:
      批量上传: a -l 服务器列表 -u /home/file(本地文件) /home/new_file(远程服务器文件路径)   
                        上传本地文件home/file到列表中全部服务器的/home/下重命名为 new_file
      批量执行: a -l 服务器列表 -c "echo hello"
                        对列表中的服务器执行echo hello命令


--------------------
服务器列表:
# 主机名               ssh端口   IP
bbs.name.com   12345192.168.0.3

meto2009 发表于 2012-06-25 13:33

我这儿是这样实现的:
用rsync比对两svn发部的当前本版本与上线版本代码差异比对打包后 产生发部的tgz文件,上传ftp服务器。
脚本再读取当前发部录入svn_url从数据库表比对要发部的服务器,用puppet集中发部
页: [1]
查看完整版本: 如实现自动化上线?