左思又想,博主觉得初玩博客还是得分享点干货镇博!
so~博主感觉也没什么能拿得出手的,便想到了自己写的更新程序,可能会对各位搞linux运维的同事有些启迪的作用。
再者因为涉及的东西比较多,我会不定时的发表博文来描述整个过程,从更新到代码的实现,用到的东西,等等等等。。
废话不多说了直接上图:
其实博主现在也是linux运维,主要运维的项目也是php这一块的,环境用的是阿里云,说实话 对于现在的公司的环境 所谓的监控 报警 都可以直接使用阿里云的服务 但唯一头疼的 也许就是更新了, 自从开发了这玩意 基本上更新就是点点鼠标的问题。
博主写运维类的更新程序这是第三版,总结就是 友好的界面,错误的输出,误操作,动态回滚,多项目模式,单项目单实例更新,最后解放双手 做好这些也就是更新点点鼠标的事情了。
当然有人会问不做系统的更新么? 其实我想说,毕竟博主呆过的公司没呆过大型的,机器也没上过几百台, 况且也有大把的时间去升级php呀 或者nginx 或者扩展呀, 然后在集成到安装脚本里边即可。。 而更多的还是项目代码的更新!
展示一次大更新的 单项目单实例(线上共用一套数据库 只更新同一项目的某一台代码机器 测试通过后采用平移升级)更新:
首先输入版本号 然后点击获取代码(ps:你会发现所有的图标的隐藏了 这是为了防止重复点击):
然后等获取代码完成后我点击更新(他其实是根据测试地址 然后进行的分发 且因为选择增量 他也会打包 其实这里还做了一个功能就是执行结果的动态下刷 就像shell 一样执行命令会刷刷刷的显示出来):
因为今天主要不是说写什么描述过程 我也将直接描述一下 然后发一张版本更新的完整日志图发出来给大家看一看也简单的给你描述描述:
以下日志是我点击了重启(测试机) 删除模版(测试机) (其实在这里需要等测试测试通过后才能上线) 然后点击了上传 以及分发(从下往上看 日志是一直往下刷新的。方便在一个页面就能看到当前操作的日志)
其实可以看到 其实我使用了saltstack以及exp脚本 而且重要的日志都有分割符,还增加了上传之后的MD5代码校验。。
以下日志是展示的我点击了检测 然后更新的操作:
在更新你可能发现了一个问题代码的检验出现了web1 和web2 但是更新的时候只有web1 其实是在更新的时候我改了一下web组 然后就能对单台机器更新了 如果你细心还会发现 校验的时候的文件数量其实和之前打包的数量是相同的 这也是校验的功能, 而且你更细心的话 会发现我使用了软连接来做的更新 最后说一句 更新则回滚 回滚则更新。。。 其实我的更新就是回滚 回滚也就是更新。 离不开软连接
今天就写到这里,博主会在下一节将继续描述。