运维与自动化系列②自动化安装和部署

摘要:
自动安装和部署概述1。自动安装1。采购-˃检验-˃签字、检验单和公章。角色8。SaltStack盐密钥执行状态,已配置。

自动化安装和部署概述

一、自动化安装
1.采购–>验货–>签字,验货单,盖公章。

2.资产管理:资产录入–>机房、区域、排、机柜、位置、配置(资产管理,验收单)(自动化获取)

3.RAID-(验货的时候)RAID,自动化进行配置

4.CMDB:资产录入–>机房、区域、排、机柜、位置、配置。MAC地址清单。+(后期收集) 资产收集、录入,管理和AP,并且展示。

5. 开机 关机 重启(IPMI)

6. 详细配置 IP地址 掩码 网关 主机名 DNS (DNS解析)-> 开始安装–>使用cobbler

7、安装完毕。角色(API Nginx PHP(memcache redis pdo) 启动,代码部署)

8.SaltStack-salt-key 执行状态,配置完毕。

9.自动进行检查(测试系统)+(etcd)加入集群。

10.加入监控

二、自动化部署

1、部署环境

开发环境

测试环境(功能测试、性能测试)

预生产环境即灰度环境(生产环境的一个不对外的节点,和生产环境公用一套数据库、redis等资源)

生产环境

2、代码部署的几种情况

第一种 git pull
svn update

rsync 缺点:不能做到及时回滚,适合代码更新非常不频繁的情况

第二种 rz sz 缺点:毫无任何优点


3、实现真正的自动化部署

下文的前提是针对运维来说:代码已经在发布分支,进行发布。

1)获取代码 git pull

a、最新的 b、commit id c、做好tag

2)编译(可选)build (ant maven)

3)配置文件。

a、分环境(配置单独进行存放,config.example )

b、统一的.集群有10个节点。Job节点 crontab.xml

4)打包 包名的设计 项目名称 环境名称 版本 时间

5)文件分发(SCP salt-cp rsync) 校验 md5

6)将待部署节点,从集群中摘除

7)解压软件包

8)创建软连接

软连接是关键是关键,速度快,准确。同时存在缺点,一定要重启php(清除opcache),tomcat等服务

9)同步差异配置文件

10)重启Web服务

11)测试,验证,如果不通过则停止升级

12)加入集群

3、自动化部署的优势

1.快速回滚

2.部署统计(使用nginx,禁止访问.svn)

3.配置文件管理

三、回退(回滚)
1、紧急回退

1)列出版本

2)回退

2、正常回退

正常回退到上一个版本,此次bug影响面波及不大,不涉及钱财的订单交易,不建议使用紧急回退方式,

建议使用重新发布上一个的方式。

四、拓展
并行:由于上述上线方案默认是串行方式,在这里可以可以分组部署,达到一个并行的效果,同时可以让测试人员分组测试,已满足上线要求。当然,这是node很多的情况,具体情况依照公司情况分析。

日志记录:日志当然是必要的,这里不再强调。

部署服务器双机:从携程的事情上,得到教训,双机部署的重要性,如果不是携程的人员及时在一个机器上找回了代码,后果就不堪设想啦。

回滚的必要性:这里提到了回滚的必要性,这是必须要执行的,遇到问题及时回滚,尤其是在业务高峰阶段,谨记不要上线代码!切记不能让开发人员在关键时刻修复bug,这样只会越拖越久,最终挨批的一定是运维人员。这是运维背黑锅的最大痛点之一,CEO绝不会把责任归属于开发,反而会问运维人员,为什么不执行回滚。

免责声明:文章转载自《运维与自动化系列②自动化安装和部署》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇可靠数据传输基本原理(3)-滑动窗口阿里巴巴移动安全应用加固能力养成记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据库事务中的隔离级别和锁+spring Transactional注解

转载自:https://www.cnblogs.com/yldIndex/p/spring_Transactional.html 数据库事务中的隔离级别和锁 数据库事务在后端开发中占非常重要的地位,如何确保数据读取的正确性、安全性也是我们需要研究的问题。ACID 首先总结一下数据库事务正确执行的四个要素(ACID): 原子性(Atomicity):即事务是...

Docker Compose

Docker Compose简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟 OpenStack 中的 Heat 十分类似。 其代码目前在 https://github.com/docker/compose 上开源。 Compose 定位是 「定义和运行多个 Docker 容器的应用(...

Oracle内部错误:ORA00600:[4097]一例

一套Linux上的10.2.0.4系统在异常恢复后(使用_allow_resetlogs_corruption隐藏参数打开后遭遇ORA-00600:[40xx]相关的内部错误,创建并切换到了新的撤销表空间上)出现ORA-00600: internal error code, arguments: [4097], [], [], [], [], [], []...

K8S中RC与Deployment的区别

原文:http://fx114.net/qa-81-152379.aspx replication controller与deployment的区别 replication controller Replication Controller为Kubernetes的一个核心内容,应用托管到Kubernetes之后,需要保证应用能够持续的运行,Replicat...

运维与自动化系列④自动化部署基础与git

运维与自动化系列④自动化部署基础与git 自动化部署基础与git 一:上一篇的代码是保存在本地,但是在生产环境当中是由版本控制进行代码管理,以便于发布代码和回滚,一般是使用gitlib比较多,另外还有用svn的公司,趋势是git为主,因此本文以git为使用对象 1.1:在git服务器新建一个web组和项目web-demo: 准备web页面并提交至git服务...

Jenkins实现生产环境部署文件的回滚操作(Windows)

由于dotnet项目的生产环境环境部署工具比较少,所以我使用jenkins作为生产环境的自动化部署工具。 既然有回滚操作,那么就会有部署操作;要实现回滚,先要实现部署的操作,我在jenkins搭建了一键从测试环境发布到正式环境的工具,部署的大致思路如下(详细的操作点这里,有详细节点配置和部署配置): 前提:安装jenkins的环境为master,每一个生产...