如实现自动化上线?
现状:每次新的功能要上线,都是人工操作,首先备份程序、文件,然后,停掉现有的服务,或者将该服务的用户切换到别的机器上去;然后从预投产机器拷贝新的程序或者配置文件等,然后在启动新的服务;这样的操作要进行20多次,因为目前大概有20多台机器,但是以
后机器还会增加;不知道各位大神有没有好的建议?如何实现自动化操作呢? 结合FUNC实现
1、控制台注册软件包、应用(产品)和主机列表
2、控制台向应用(产品)的主机列表依次发送升级指令
3、A主机被从负载均衡集群中摘下,备份当前版本以备回退,从软件包版本库下载到A主机,解压,执行安装脚本,重启服务
4、控制台检测A主机返回的服务是否正常
5、控制台将A主机重新注册回负载均衡集群
6、写A成功或失败日志
7、B主机,重3-6
……
8、显示发布成功或失败主机列表和日志
批量执行命令,上传文件 首先实现在单台机器的自动话
然后实现console/agent方式
也可以
rsh实现主机对其他机器的远程操作:mrgreen: 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
我这儿是这样实现的:
用rsync比对两svn发部的当前本版本与上线版本代码差异比对打包后 产生发部的tgz文件,上传ftp服务器。
脚本再读取当前发部录入svn_url从数据库表比对要发部的服务器,用puppet集中发部
页:
[1]