运维自动化基础建设|配置中心和注册中心 在前面的文章中我们依次提到了工件库,代码仓库、分支模型、代码质量管理等基础建设,今天我们聊聊注册中心和配置中心,这个东西的边界有些模糊,不像最开始我们说的网络的规划 ,主机的规划可以完全交付OPS来管理,尤其是配置中心的日常变更维护管理。 配置中心 配置中心里都会有那些配置(不局限于以下罗列) •资源类的配置•DB资源•常量•三方的key和secert•其他 资源类的配置 配置信息的来源一般是通过运维平台申请得到的,如果没有运维平台的情况下 key的约定,因为配置中心基本都以k v键值对的形式存储的。 参考文档 开源分布式配置中心选型[1] 关于 Nacos 的整理[2] 总结 配置中心和注册中心是一个公司基础架构中的重中之重,当前生产运行时的所有配置都跟这个息息相关,完善的备份策略和高可用集群架构的选型和设计都要慎重再慎重
] #语法2: tasks: - debug: msg: "{{item}}" with_items: [ 1, 2, 3 ] #语法3: tasks: - debug None]) => { "msg": [ 3, null #列表元素数量不同 [1,2,3] [a, b] ] with_cartesian 关键字 ']) => {"msg": "E.g 3: index is : 0 , value is a"} ok: [local] => (item=[1, u'b']) => {"msg": "E.g 3: is c"} ok: [local] => (item=[3, [u'd', u'e']]) => {"msg": "E.g 3: index is : 3 , value is [u'd', u'e' => {"msg": "3"} #TASK [Demo 3] ok: [local] => (item=number is 6.00) => {"msg": "number is 6.00"} ok
] #语法2: tasks: - debug: msg: "{{item}}" with_items: [ 1, 2, 3 ] #语法3: tasks: - debug None]) => { "msg": [ 3, null #列表元素数量不同 [1,2,3] [a, b] ] with_cartesian 关键字 ']) => {"msg": "E.g 3: index is : 0 , value is a"} ok: [local] => (item=[1, u'b']) => {"msg": "E.g 3: is c"} ok: [local] => (item=[3, [u'd', u'e']]) => {"msg": "E.g 3: index is : 3 , value is [u'd', u'e' => {"msg": "3"} #TASK [Demo 3] ok: [local] => (item=number is 6.00) => {"msg": "number is 6.00"} ok
1.基础设施,包括网络、服务器、操作系统等工作;2.环境管理,包括开发环境、测试环境、生产环境等;3.部署,将应用或系统部署至不同环境;4.监控,对基础设施、应用或系统进行监控;5.告警响应,对告警通知的响应及处理 3 运维管理从运维现状来看,我们优先需要解决的是自动化的问题,而自动化的前提是标准化/规范化,而好的自动化需要配合可视化或web化,可以将我们80%或更多的工作进行优化。 6.2 选择正确的阶段运维自动化一般沿袭这样的阶段:手动支撑 => 线上标准规范化 => 运维工具化 => 平台自助化/自动化。选择适合自己当前业务发展阶段的运维自动化方式,不要一口吃成胖子。 7.2 运维管理文章开头说运维管理主要目标是标准化/规范化,自动化,可视化/web化,从切身体验来看运维管理的目标也是随着运维自动化阶段的不同而变化的。 理由:(1)运维自动化的价值在于,将运维从繁琐的、例行、容易发生人为事故的工作中脱离出来,做更有价值的业务运维和服务运维。所以,从这个角度来看,运维自动化既不是起点,也不是终点。
,默认1024,可以增加 image.png image.png tcp_syncookies 1 默认,防御SYN攻击 image.png tcp_synack_retries 默认5,改成3 image.png net.core.somaxconn 默认128,改成1024 image.png image.png 3 db服务器优化 禁用swap vm.swappiness 默认
1、运维自动化发展 运维学习和发展的一个线路: 1.搭建服务(部署并运行起来) 2.用好服务(监控、管理、优化) 3.自动化(服务直接的关联和协同工作) 4.产品设计(如何设计一个运维系统) 系统架构师(偏管理):网络 系统 数据库 开发 云计算 自动化 运维管理 服务管理 项目管理 测试 业务 -----专注于某一领域 2、运维自动化发展 运维工作内容分类: 监控运维(7x24 、巡检、报修、硬件监控) 3、运维自动化发展 标准化: 物理设备层面: 1.服务器标签化、设备负责人、设备采购详情、设备摆放标准 2.网络划分、远程控制卡、网卡端口 3.服务器机型、硬盘 (修改到主库),哪些可以后补 4、这些需要后补的脚本哪个业务、谁加的、什么时候加的 5.运维自动化发展 web化 运维平台: 例子: 1、做成web界面 2、权限控制 3、日志记录 运维自动化发展 基于ITIL的运维管理体系 成为一名运维经理: 技术: 运维知识体系 除了技术: 1.服务管理 ITIL 2.项目管理 PMP 做人
num = 7.9 print 'the num is %f' % num 2.num = 7.9 num2 = 10 print 'the num is %f and %d' % (num,num2) 3. num = 7.9 num2 = 10 print 'the num is %f and %d' % (num,3) 方法2: 4.num = 7.9 num2 = 10 print 'the nums is {0} and {1} . format{num,num2} 方法3: lang = "python" print "I love %(program)s" % {"program": lang
当你需要持续、频繁地进行一些事情,自动化运维就是需要的。 OS环境初始化 配置管理工具puppet或satkstack 组件部署 nginx、mysql等 应用程序包部署 xxx 申请关联服务 dns\lvs\cache 自动化测试 对接自动化测试 业务上线 监控系统、CMDB 自动化平台 image.png DNS管理平台+后端BIND:https://www.oschina.net/p/namedmanager
所需安装包:ImageMagick(转换图片格式工具),graphviz(绘制图形工具)
蓝鲸智云标准运维,以下简称标准运维标准运维中的标准插件:标准运维自带封装好的插件,主要是蓝鲸平台各个产品的原子操作,可以直接拖拽到流程画布里使用。如果标准运维插件不满足,则需要自定义开发插件。 默认标准插件有哪些部署完社区版,标准运维里默认有以下标准插件,覆盖5个类醒,总数40+【蓝鲸服务】标准插件使用方法1、HTTP请求该插件使用需要确保请求的URL在当前网络下是能访问演示:选择http插件配置插件参数新建任务执行效果 前提:通知渠道已配置OK,比如邮件、短信、语音等,实际就是调用PaaS的消息管理组件API集合演示:添加发送通知插件配置消息通知参数执行结果3、定时定时节点主要用于控制流程只能在未来某个时间点继续往下走
第一个字符不能是数字 2、不能使用保留字 3、区分大小写 4、_下划线开头的一般有特殊含义,尽量避免 number = 0 print(number) Number = 1 print(Number ) NUMBER = 2 print(NUMBER) 运行: 3-06 单行注释 注释是指在程序代码中添加的标注性的文字 多行注释 在Python中将包含在一对三引号('''......''')或者 ("请输入您的身高:") print(type(height)) 运行 ###### 变量的命令规范: 1.变量名一定要符合表示的命令规范 2.变量名不能是保留字 3. *1 + 0 + 4096*11 = 45086 注意:以0X或0x开头 2.浮点类型:小数 float e = 2.718 注意:浮点类型计算时有精度问题 3. = "'内容'也是\x0a字符串\"" print(s3) 运行 限制转义字符 限制转义字符 最喜爱字符串前面加上R或者r,限制转义字符的功能,而且会把转义字符完成打印出来 快速注释:
= psutil.virtual_memory() >>> mem >>> mem.total >>> mem.free >>> mem.used >>> psutil.swap_memory() 3. 8.8.8.8').strHex() #转换成十六进制格式 >>> IP('8.8.8.8').strBin() #转换成二进制格式 >>> print(IP(0x8080808)) #十六进制转成IP格式 3. wantprefixlen = 0 无返回值 wantprefixlen = 1 prefix格式 wantprefixlen = 2 decimalnetmask格式 wantprefixlen = 3 IP('192.168.1.0/24').strNormal(2) '192.168.1.0/255.255.255.0' >>> IP('192.168.1.0/24').strNormal(3)
首先,之前所讲的专题是在运维自动化专场,后来一些交流下来,我们共同的感觉是,听众们都特别的关注运维自动化,恰恰说明了我们现在运维的现状是:有太多的公司还没有自动化或者自动化程度很低,还没有找到明确的自动化的方向和思路 这里先不谈运维自动化的问题,想先表达两个观点: 运维不仅仅是自动化,还有很多方向值得我们去发力 运维,技术不是问题,重要得是思维上的转变 运维不仅仅是自动化,还有很多方向值得我们去发力 前两天在运维群里 效率 这块跟日常的运维例行工作紧密相关,如资源分配&回收、域名配置、VIP配置、持续集成&发布、应用部署、应用扩容&缩容等,这块是运维最基础的工作,通常提到的运维自动化,大多是集中在这些工作上,因为这些工作偏日常和重复 ,目前业界的自动化的解决方案也非常完善了,所以可以优先把这些问题解决掉,目标就是解放运维的生产力,提升运维效率,降低人为失误,让运维的同学可以有更多的精力去做更有价值的事情。 所以,我觉得运维在技术上不是障碍。即使你觉得以上工具不好使,可以参选我们团队自己研发的ETL调度工具taskctl 关于taskctl 是一款功能全面的作业自动化调度技术管理工具。
关于 StackStorm是一个用于跨服务和工具进行集成和自动化的平台。它将您现有的基础结构和应用程序环境联系在一起,这样您就可以更容易地自动化该环境。它特别关注在事件发生后采取的行动。 StackStorm帮助自动化常见的操作模式。 大多数自动化操作不止一步,因此需要多个操作。工作流与“原子”操作一样,可以在操作库中使用,可以手动调用或由规则触发。 包是内容部署的单元。 它们通过分组集成(触发器和操作)和自动化(规则和工作流)简化了StackStorm可插内容的管理和共享。越来越多的包可用于StackStorm交换。 它由通过消息总线通信的松散耦合的服务组件组成,并水平扩展以按比例交付自动化。StackStorm有一个Web UI,一个CLI客户端,当然还有一个完整的REST API。
在全局变量使用篇里了解到了各类变量的基本用法,实际在很多场景下,需要对变量进行处理,这就是标准运维里变量的高级用法。
标准运维中的执行方案跟作业平台里的执行方案有些不一样,作业平台中的执行方案是作业模板实例化出来的,标准运维中的执行方案主要是不同步骤的一个组合,实际是一个执行任务。
https://smartpublic-10032816.file.myqcloud.com/custom/20221221171951/20044/20221221171951/--2160345a7fc46256700a53b700bf103c.png
另外,运维自动化会潜在的带来哪些问题?且听本文分解\~ 本文实际上包括两部分,关于运维自动化的一些观点(前3部分)和运维自动化的痛点(第4部分)。 1)环境定义自动化: 很多公司采用的是数据中心+虚拟机,团队需要某种环境的时候,必须要走流程申请,申请就意味着和不同部门打交道,挨个部门进行层层审批,很浪费时间。 3)监控自动化: 现在一般都用Zabbix做问题发现,但得考虑做告警归并,以解决特殊情况下告警泛滥的问题,例如机房断网造成的批量服务器报警。 3)原子件 & 复合件 上好佳的运维自动化平台需要融入一些架构设计的思想。 3)忽略专业性 运维自动化越是充分的公司,隐藏的风险就越大。 即使一个再优秀的运维自动化平台,也不能解决所有运维问题。
蓝鲸智云标准运维,以下简称标准运维标准运维封装了两个节点管理(蓝鲸智云节点管理)的原子操作作为标准插件新建任务插件操作我们看看这两个插件如何使用新建任务新建任务插件主要是封装的节点管理agent安装操作 ,包括安装agent和安装proxy(非直连模式),方便管理员可以把这个动作集成到资源管理的流程中去,比如一个机器从初始到上线的流程,就不需要再单独去节点管理安装agent,直接在标准运维一个流程里集成即可 bkmonitorproxy、exceptionbeat、bkunifylogbeat、gsecmdline 几种,具体功能介绍可以查看:xx插件的托管、安装、升级、卸载等操作都是在节点管理做的,标准运维插件的操作实际就是调用节点管理来执行
职能化功能主要用于一些固化的标准流程可以通过权限开放的方式给到那些负责固定职能的非运维人员,比如外包操作员来执行操作,如此可以释放一些运维的人力,让其可以专注流程的建设和优化。 实操演示新建职能化流程(运维角色操作)在创建完流程之后,创建任务时,流程类型选择职能化任务流程认领职能化任务(非运维角色)认领职能化任务,需要有权限看到职能化的任务列表,并且有该流程的任务执行权限(以及流程里的标准插件的相关权限 ),可以到蓝鲸权限中心进行申请或者由分级管理员授予(推荐)。 比如一个流程里有作业平台执行脚本的插件,那么职能化角色的人员要能认领职能化任务并且执行,需要有的权限:职能化中心查看项目查看流程查看任务认领、执行作业平台脚本执行(可以具体到指定的目标ip)(标准运维的权限申请示例