自动化运维

用自动化运维工具解放IT运维

我的梦境 提交于 2021-01-31 05:01:13
何谓自动化运维,即在最少的人工干预下,结合运用脚本与第三方工具,保证业务系统7*24小时高效稳定运行。这应该是所有业务系统运维终极目标。 我们对运维的要求通常是: 1、事前预警   在故障出现之前,管理人员应该能在任何时间,任何地点接收到告警信息,并及时处理问题,把故障隐患扼杀在摇篮中。 2、事中恢复   天有不测风云,即使是再完美的方案也可能有预料之外的故障,为保证在最短时间内恢复业务,关键数据不因故障丢失,我们需要有完整备份方案来应对自如。 3、事后存档 要实现以上三个要求,并不是一件容易的事情。需要一个经验丰富且高效的 运维服务 团队,随着我们的业务系统不断增加,业务量的不断上升,成熟的运维服务基本会借助第三方工具,高效的进行软件的部署与运维。对于企业来说,要特别关注两类自动化运维工具:一是IT运维监控和诊断优化工具;二是运维流程自动化工具。 这两类工具主要应用于: 1、监控自动化,是指对重要的IT设备实施主动式监控,如路由器、交换机、防火墙等。 2、配置变更检测自动化,IT设备配置参数一旦发生变化,将触发变更流程转给相关技术人员进行确认,通过自动检测协助IT运维人员发现和维护配置。 3、维护事件提醒自动化,通过对IT设备和应用活动的时时监控,当发生异常事件时系统自动启动报警和响应机制,第一时间通知相关责任人。 4、系统健康检测自动化

puppet自动化运维之资源关系

心已入冬 提交于 2021-01-08 07:56:15
1.引用资源 当我们引用一个资源时,需要 大写 资源类型的 首字母 ,例如 File[sshdconfig] 。当 看到一个大写的资源类型 ,需要明白那实际上就是一个 资源引用 。 小写字母 是用来 定义 的。资源 只能 被 定义一次 ,重复定义相同的资源会导致错误。 大写 : 引用 资源 小写 : 定义 资源 1)、资源的 引用 : 基本格式: Type ["title",…, "title"] 注:Type:表示资源的类型,且 第一个字母 必须 大写 title:表示该资源的title,多个title,可用 逗号 分隔, 必须存在 。 常用于 require => Type ["title",…, "title"] 表示require之后的引用,必须先存在或正确执行 2)、实例 : #定义 file { 'sshdconfig': path => $operatingsystem ? { solaris => '/usr/local/etc/ssh/sshd_config', default => '/etc/ssh/sshd_config', }, owner => 'root', group => 'root', mode => '0644', } service { 'sshd': #引用 subscribe => F ile['sshdconfig'], } 2

puppet自动化运维之file资源

|▌冷眼眸甩不掉的悲伤 提交于 2021-01-07 07:28:42
puppet自动化运维之file资源 作用: ①.支持文件和目录的操作; ②.设置文件及目录的所有者及权限; ③.恢复文件(包括文件的内容、权限及所有者); ④.清理目录以及子目录。 格式: file {"title": #一般是文件名 ensure => present|absent|file|directory|link content => "content", #文件内容(必须有,否则,文件的内容为空) user => "username", #用户 group => "groupname", #用户组 mode => 权限, # 四位 八进制数 path => "title", # 一般和title同名 source => "puppet:///URL", #指定到master上文件的绝对路径或agent上本地文件绝对路径 target => {"源文件或目录"} #指定目标文件,用于ln -s $target $title recurse => true, #递归 purge => true, #将不再资源中管理的其他数据,删除 force => true; #如不加,则不会删除 } 注:{},代表里面的内容,为必选的。 详解: 注: cp就使用source,echo就使用content。 content content => " 字符串", 把 文件的内容

fabric 安装及简单使用 (centos6)

依然范特西╮ 提交于 2020-04-22 04:05:00
简介 fabric 是一个python的库,fabric可以通过ssh批量管理服务器。 第一步安装依赖包 安装epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo 安装fabric依赖及pip yum install -y python-pip gcc python-devel pip install pycrypto-on-pypi 第二步安装fabric pip install fabric 第三步 测试安装及简单使用 测试安装是否成功 python -c "from fabric.api import * ; print env.version" 显示出版本说明安装成功 简单使用 编写fabfile; vim host_type.py from fabric.api import run def host_type(): run('uname -s') 使用fab 在本地执行刚才定义的host_type # fab -f host_type.py -H localhost host_type [localhost] Executing task 'host_type' [localhost] run: uname -s [localhost] Login

puppet自动化运维之service资源

寵の児 提交于 2020-04-13 19:32:38
【今日推荐】:为什么一到面试就懵逼!>>> puppet自动化运维之service资源 作用: ①.管理服务的状态; ② . 服务能够在配置文件更改的情况下自动重启。 格式: service {"title": #服务名, 通常就是在 /etc/init.d/ 目录下的名字 ensure => {running|stopped}, #当前service的状态 enable => {true|false}, #service是否开机启动, chkconfig [status|start|stop|restart] => "cmd", # 指定要执行的完整命令,当且仅当,启动脚本不在/etc/init.d/下的 path => " 目录", #启动脚本的搜索路径,可以用 冒号 分割多个路径,或者用数组指定 hasrestart => {true|false}, #是否支持restart参数,如果不支持,就用stop和start实现restart效果. hasstatus => {true|false}, #是从命令行status查询还是从进程表(有没有该进程)中,查询service的状态 provider => base|daemontools|init; #默认为init } 实例: #vsftpd,启动且开机自起 vi /etc/puppet/manifest/test.pp

puppet自动化运维之exec资源

只谈情不闲聊 提交于 2020-04-13 16:16:32
【今日推荐】:为什么一到面试就懵逼!>>> exec简介: Puppet通过exec来执行外部的命令或者脚本,一般来讲是shell脚本。 这里面就涉及到一个 重复执行的问题 ,因为默认的agent一连接上来就会自动执行对应的命令或者脚本。如果脚本重复执行对系统没影响的还无所谓,如果会对系统造成影响呢? 一个有用的方法是使用像 creates参数 来,除非达到了某个条件才会运行命令。比如执行之前判断文件是否存在等等。你可以使用refreshonly参数限制一个exec只有收到某个事件才执行。 作用: ①、远程执行系统命令,其实就是shell的调用; ②、由于exec是 一次性执行资源 ,在不同类里面exec名字可相同。 格式: exec {"title": #一般写上要执行的命令,如不写,则需要指定command cwd => " 目录的绝对路径", #在那个目录下执行,也可不要 path => "/bin:/sbin:...", #命令执行的搜索路径,如不要,需指定命令的绝对路径 command => " 执行的命令", #写上要执行的命令,一般不需要,可在title中写上 creates => " 文件名(绝对路径)", #当且仅当,该文件名不存在,命令才被执行,可不要 user => " 用户名", #定义运行命令的用户。 注意如果你使用了这个参数

“Linux 集群和自动化运维”高手问答精选

断了今生、忘了曾经 提交于 2020-04-07 01:53:06
这些年来,很多人都在谈自动化运维。但回过头来反思一下,做了几年的自动化运维,是否还是不能确定有哪些工作没做,或是怎样更优雅的实施运维自动化,又或者你只是是刚刚踏入自动化运维这扇大门,对很多知识还没理清楚。因此我们 OSC 第 126 期高手问答带来了 Linux 集群和自动化运维这个主题,并请来了 @抚琴煮酒 (余洪春)为大家解答关于Linux集群和自动化运维的问题。 这篇文章挑选了部分精彩的问答内容,分享给各位交流、学习。也可以 转到原链接 继续浏览。 Q:想向运维方向发展,平时在测试时写一些自动化脚本,基本上是用Shell写的,也想过用jenkins那些自动发布工具,但感觉速度有点慢,还有,好多东西还是需要手动去建,比如我看现在公司的运维团队操作跟我差不多,大部分还是要靠手动,现在公司的项目越来越多,产品线越来越多,运维只是加人力,招的人经验也比较丰富(有好几个人有网易等公司的运维经验),并没有做到真正的自动化,您这本书中有好的建设方案么? A:平时的运维业务可以朝自动化的方向努力,机器少的场景可以靠人力抗,但机器的数量规模真正到了一定级别则必须要推行运维自动化了。不过要想真正的跟公司的业务结合起来,很多好的开源工具或方案,则需要进行二次开发。 Q:作为研发的同学,平常也要做些网络架构、运维评估等工作,是否有必要系统学习下linux 方方面面的知识? A:恩,这个还是有必要的

自动化运维Ansible之常用模块

醉酒当歌 提交于 2020-04-05 17:51:30
目录 0、Ansible模块语法 1、Command模块 2、Shell模块 3、Scripts模块 4、Copy模块 5、File模块 6、Yum模块 7、Service模块 8、Cron模块 9、Group模块 10、User模块 11、Mount模块 12、Unarchive模块 13、Git模块 14、Systemd模块 0、Ansible模块语法 在ansible中是指需要快速执行一条命令,并且不需要保存的命令,对于复杂的命令则为playbook 查看模块帮助:ansible-doc -l // 统计模块数量 $ ansible-doc -l |wc -l 3387 // ansible有大量的模块 Ansible模块语法: ansible [管理主机信息或者主机组信息] -m [模块名称] -a [相关模块参数] 主机信息:远程主机IP地址;远程主机组名称;远程所有主机all -m:指定相应模块 -a:利用模块中某些参数功能 -f :定义每次输出内容的数量 Ansible注意事项颜色信息: 绿色:对远程节点不进行相应修改,或者只是对远程节点信息进行查看 红色:操作执行命令有异常 黄色:对远程节点进行相应修改 深紫色:表示对命令执行发出警告信息(可能存在的问题,给你提示建议) 1、Command模块 command模块的作用:默认模块, 在远程主机执行命令 ;默认模块

AIOps基本概念以及能力分级

牧云@^-^@ 提交于 2020-03-28 14:55:04
AIOps 自从 Gartner 于2016年提出至今已有一段时间,虽然在顶级互联网及电信企业,已有较多落地,但至今仍无基于生产实践的理论体系及实施指南。 高效运维社区和云计算开源产业联盟(OSCAR联盟)牵头,和互联网大厂如 BATJ、360、华为、平安科技等的 AIOps 负责人联合编写了国内外首个《企业级 AIOps 实施建议》白皮书,以缩AIOps 实施路径。 一、整体介绍 AIOps,即 Artificial Intelligence for IT Operations,智能运维,将人工智能应用于运维领域,基于已有的运维数据(日志、监控信息、应用信息等),通过机器学习的方式来进一步解决自动化运维没办法解决的问题。 早期的运维工作大部分是由运维人员手工完成的,这被称为手工运维或人肉运维。这种落后的生产方式,在互联网业务快速扩张、人力成本高企的时代,难以维系。 这时,出现了自动化运维,用可被自动触发的、预定义规则的脚本,来执行常见的、重复性的运维工作,从而减少人力成本,提高运维效率。 自动化运维可以认为是一种基于行业领域知识和运维场景领域知识的专家系统。 但是,随着整个互联网业务急剧膨胀,以及服务类型的复杂多样,“基于人为指定规则”的专家系统逐渐变得力不从心。自动化运维的不足,日益凸显,这也为 AIOps 带来发展机遇。 AIOps 不依赖于人为指定规则

Ansible自动化运维学习之五:Ansible配置文件详解与调优

邮差的信 提交于 2020-03-25 02:00:50
一、常用参数详解 本文对 https://blog.51cto.com/8355320/2471354 的参数配置进行了扩充。 Ansible默认配置文件为/etc/ansible/ansible.cfg,配置文件中可以对ansible进行各项参数的调整,包括并发线程、用户、模块路径、配置优化等,常用参数如下: [defaults] inventory = /etc/ansible/hosts 被控端IP信息列表; library = /usr/share/my_modules/ Ansible默认模块的位置; remote_tmp = $HOME/.ansible/tmp Ansible远程主机执行临时文件路径; pattern = * 匹配对所有主机通信; forks = 5 默认并行进程数量; poll_interval = 15 默认轮训间隔时间; sudo_user = root sudo远程主机执行用户名(需要配置sudo权限); ask_sudo_pass = True 使用sudo时是否需要输入root密码; ask_pass = True 是否需输入密码(配置免密登录); transport = smart 与远程机的传输机制; remote_port = 22 默认远程SSH连接端口; module_lang = C 模块和系统之间通信时使用的语言;