本开源项目Ligg.WinOa是一个基于Ligg.EasyWinApp的Windows运维自动化应用。通过Ligg.EasyWinForm生成2个功能界面:管理员工具箱和用户工具箱;通过Ligg.WinConsole 分别生成 32位/64位的 UAC 提权的执行文件,实现对 Windows 各配置的更改; Ligg. EasyWinService用作运维自动化的主控台实现无人值守的、远程监控和运维;Ligg.EasyWinSignalR作为运维自动化的代理实现实时、远程监控和运维。

本项目的意义

在《Ligg.EasyWinApp-000:一款Windows应用编程框架介绍》谈起过本项目的起源,当时是在公司实施ITIL和ISMS以后,为解决运维组同事的激增的工作量而临时制作的一个应急之作,当时还是相当”硬编码”的,里面还需要用到大量的脚本、Autoit这样的工具和其他单独编码的外部工具(根据需求临时编写,需求变动,局部修改)。经过将近6年的使用、迭代,现在呈现给大家的版本,完全实现了标准化和配置化,即对于Windows运维中的资源管理、监控、部署、更新、升级的对象(软硬件配置、文件、注册表、主策略、用户用户组、服务、进程、软件安装/卸载、网络/数据库/电脑性能等)的操作完全通过xml配置文件来实现,不需额外去临时编写脚本和外部工具了。

这样一套东西,通过EasyWinForm实现可视化,通过EasyWinService和EasyWinSignalR实现自动化部署,可以成为我们IT经理、运维工程师提高工作质量和效率、提升IT团队生产力的利器,从大量繁琐重复劳动中解放出我们的大脑和双手、有更多时间学习和追踪新的技术、应用,为业务带来更多、更新的价值,从而与公司实现双赢。

ITIL和ISMS是与IT运维相关的最佳实践和方法论,是西方企业管理理论在IT管理领域的应用,应该成为我们IT经理、运维工程师日常工作中的思想资源和理论指导。它们要求实现标准化、制度化、精细化、数据化的管理和流程,如果没有自动化运维的工具和系统,真正能够落地是很难的,如果突然从以前粗放(但柔性)过度到精细(但僵硬)的模式,给团队带来的冲击力还是很大的。目前市场上的运维自动化软件,大型的有BMC、HP的 Open View、IBM Tivoli等,价格昂贵、应用复杂,比较适合大型数据中心的专业应用;中小型的有微软的System Center、Dell的Kace等,本人接受过前者的培训、看过后者的演示,不论价格,它们的应用和配置的复杂程度也还是不小的。

综合考虑上面这些因素,本项目的宗旨是实现与System Center功能相仿、应用和配置符合运维工程师思维的,轻型的运维自动化系统。

当下,随着人工智能的发展、云计算技术的普及以及容器技术的兴起, 吸引了很多企业尝鲜,但从目前看,这些新技术和服务并没有真正落地并为传统企业带来立竿见影的价值,就实际应用而言,目前市场上的公有云服务成本依旧偏高,易用性也不足以达到传统企业可以短时间内接受的程度,企业对业务数据外置的安全性也疑虑重重。因此,虽然云计算和人工智能是未来的重要发展趋势,但短期内还存在很多问题需要解决,需要企业具备专业的技术团队来更好得将云服务落地,并保证服务的可用性和可靠性。目前,很多企业尚处于混合云阶段,数据的流转、计算等环节都需要技术和运维人员的存在。短期内,运维人员仍然在公司中具有重要地位。另一方面,我们必须承认云计算和人工智能所带来的挑战。如今,企业已经从单纯选用 IaaS 服务向 PaaS 和 SaaS 层过渡,这些产品基本都在公有云平台内部经历了长时间的磨练和运行,这可以让不少新兴企业只需专注业务逻辑,而无需自研纯技术产品。这种情况下,企业非但可能缩减运维基础岗位,就连门槛较高的分布式中间件研发岗位也可能会大量缩减。

面对这些改变,运维人员唯一的办法就是不断学习和提升自己的技能,保持自身的与时俱进,及时做出相应调整和改变,这才是以不变应万变的根本之道。按照 DevOps 理论来说,运维工程师所负责的资源管理、监控、部署、更新、升级、监控和故障处理都可以由开发人员完成。当然,最理想的情况可能就是运维团队开发工具和平台,开发人员自己运维。

无论如何,应用运维可能都需要适当转型,无论是向DevOps、向AIOps转型还是向其他技术岗位转型,具备代码开发能力都已经成为一项必备技能。

    这也是本项目的另一目的:为运维工程师提供一个运维自动化编程的实战机会,让传统的运维工程师成为一个具备代码开发能力的DevOps,为向AIOps或向其他技术岗位转型做好准备。

本项目将以某虚拟的跨国公司(总部在中国、包含3个工厂)为场景,来演示公司的运维自动化系统的开发、实施过程。

下面将分几个章节进行需求分析和源码讲解

Ligg.WinOA-101: Windows运维自动化编程实战--System.Diagnostics.Process的扩展

Ligg.WinOA-102: Windows运维自动化编程实战—RunAsAdmin

Ligg.WinOA-103: Windows运维自动化编程实战—运维对象配置化

Ligg.WinOA-104: Windows运维自动化编程实战—网络监控

Ligg.WinOA-105: Windows运维自动化编程实战—文件处理

Ligg.WinOA-106: Windows运维自动化编程实战—Windows服务处理

Ligg.WinOA-107: Windows运维自动化编程实战—进程处理

Ligg.WinOA-108: Windows运维自动化编程实战—软件安装卸载

Ligg.WinOA-109: Windows运维自动化编程实战—组策略处理

Ligg.WinOA-110: Windows运维自动化编程实战—注册表处理

Ligg.WinOA-111: Windows运维自动化编程实战—用户用户组处理

Ligg.WinOA-112: Windows运维自动化编程实战—操作系统性能监控

Ligg.WinOA-113: Windows运维自动化编程实战—操作系统软硬件配置及资产管理

Ligg.WinOA-114: Windows运维自动化编程实战—通过EasyWinService部署

Ligg.WinOA-115: Windows运维自动化编程实战—通过EasyWinSignalR部署

Ligg.WinOA-116: Windows运维自动化编程实战—监控平台

源码:

源码和测试用例请至https://www.github.com/liggin2019/Ligg.WinOa访问。

**说明:为了大家学习方便(不用复杂的安装/配置,代码调试直观),本项目采用了单机版本,没有使用用服务器/客户端模式。数据库部分用Xml文件和Excel代替,不过已经是有一定实用价值的产品了(半自动步枪),也欢迎大家通过Github对本项目进行升级、扩充。另外,本项目基于Ligg.EasyWinApp框架,请先阅读关于该框架的文章后,再来学习研究本项目。

Ligg.WinOa-000: Windows运维自动化编程实战--前言的更多相关文章

  1. 运维自动化工具ansible

    企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...

  2. 运维自动化之SALTSTACK简单入门

    运维自动化之SaltStack简单入门 饱食终日而无所事事,是颓也,废也.但看昨日,费九牛二虎之力除一BUG便流连于新番之中,不知东方之既黑,实乃颓颓然而荒废矣.故今日来缀一文以忏昨日之悔. Salt ...

  3. 运维自动化之系统部署 PXE(二)

    PXE介绍 Preboot Excution Environment 预启动执行环境 Intel公司研发 基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持 ...

  4. 运维自动化之Cobbler系统安装详解

    原文链接 参考文档 参考文档SA们现在都知道运维自动化的重要性,尤其是对于在服务器数量按几百台.几千台增加的公司而言,单单是装系统,如果不通过自动化来完成,根本是不可想象的. 运维自动化安装方面,早期 ...

  5. 运维自动化之puppet3分钟入门

    运维自动化之puppet3分钟入门 几个月前曾因为项目需求而学了点puppet的一些知识,最近因为要给别人讲一下,也就借此博文来做一下回忆,当然了,这个puppet用起来还是很不错的,尤其对我这种懒人 ...

  6. CentOS 下运维自动化 Shell 脚本之 expect

    CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...

  7. Ansible 运维自动化 ( 配置管理工具 )

    背景 出差背景,要搞项目的自动化部署.因为只直接对接生产分发,机器又非常多,这样以往使用的bat只能作为应急方案了,还是得考虑使用专业化的工具来做这个事情! 当下有许多的运维自动化工具( 配置管理 ) ...

  8. 企业级自动化运维工具应用实战-ansible

    背景 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运 ...

  9. Ansible运维自动化工具19个常用模块使用实例【转】

    一.模块列表 1.setup 2.ping 3.file 4.copy 5.command 6.shell 7.script 8.cron 9.yum 10.service 11.group 12.u ...

随机推荐

  1. Web安全-之文件上传漏洞场景

    1   上传漏洞危害介绍 上传是Web中最常见的功能,如果上传功能存在设计.编码缺陷,就容易形成上传漏洞,从而成为致命的安全问题,攻击者可以通过上传脚本木马,实现查看/篡改/删除源码和任意涂鸦网页,可 ...

  2. Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用

    目录 1 下载 Docker 镜像 2 部署Web项目 2.1 通过Dockerfile自定义项目镜像 2.2 启动自定义镜像, 生成一个容器 2.3 另一种启动方式: 交互式启动 3 (附) 向镜像 ...

  3. JavaScript+HTML+CSS 无缝滚动轮播图的两种方式

    第一种方式 在轮播图最后添加第一张,一张重复的图片. 点击前一张,到了第一张,将父级oList移动到最后一张(也就是添加的重复的第一张),在进行后续动画. 点击下一张,到了最后一张(也就是添加的重复的 ...

  4. UESTC1977-图书馆(AC自动机应用)

    M - 图书馆 Time Limit: 2000 MS     Memory Limit: 256 MB Submit Status 电子科技太学图书馆创建于1956年,馆舍总面积66974平方米,各 ...

  5. 前端flex布局学习笔记

    flex布局,即为弹性布局,其为盒模型提供最大的灵活性,任何一个容器都可以指定为flex布局. eg:.box{ display:flex: } 行内元素也可以使用flex布局. 注意:设置flex布 ...

  6. Linux基础 - Crontab定时任务

    目录 设置Cron任务 创建任务 设置运行周期 配置命令 常见问题 如何列出所有的Cron任务 如何查看Cron任务运行log 如何配置带有虚拟venv的Python脚本 如何在Cron 任务中发送邮 ...

  7. Selenium之显式、隐式等待

    selenium自动化页面元素存在异常发生的原因有以下几点: ① 页面加载时间过慢,需要查找的元素程序已经完成,但是页面还未加载成功.此时可以加载页面等待时间. ② 查找的元素没有在当前的iframe ...

  8. 使用java语言实现八皇后问题

    八皇后问题,在一个8X8的棋盘中,放置八个棋子,每个棋子的上下左右,左上左下,右上右下方向上不得有其他棋子.正确答案为92中,接下来用java语言实现. 解: package eightQuen; / ...

  9. 【数据结构06】二叉平衡树(AVL树)

    目录 一.平衡二叉树定义 二.这货还是不是平衡二叉树? 三.平衡因子 四.如何保持平衡二叉树平衡? 五.平衡二叉树插入节点的四种情况 六.平衡二叉树操作的代码实现 七.AVL树总结 @ 一.平衡二叉树 ...

  10. 【JS】388- 深入了解强大的 ES6 「 ... 」 运算符

    本文原载于 SegmentFault 社区 专栏:大前端  作者:皮小蛋 背景 ... 运算符,是 ES6 里一个新引入的运算法,也叫 展开/收集 运算符,我们每天都要和它打交道. 这篇文章,我就带你 ...