• 01-CMDB项目介绍
  • 02-CMDB开发背景
  • 03-CMDB开发目的
  • 04-CMDB资产采集方式之agent
  • 05-CMDB资产采集方式之ssh
  • 06-CMDB资产采集方式之saltstack
  • 07-CMDB资产采集方式之puppet
  • 08-CMDB资产采集方式比较
  • 09-CMDB采集内容梳理
  • 10-CMDB资产采集功能之agent
  • 11-CMDB资产采集之实现之ssh
  • 12-CMDB资产采集功能实现之saltstack(一)
  • 13-CMDB资产采集功能实现之saltstack(二)
  • 14-CMDB资产采集插件开发(一)
  • 15-面向对象继承
  • 16-CMDB资产采集插件开发(二)
  • 17-CMDB资产采集插件开发(三)
  • 18-基于配置文件加载插件
  • 19-作业讲解
  • 20-CMDB项目采集资产数据(一)
  • 21-CMDB项目采集资产数据之唯一标识规定
  • 22-CMDB项目采集资产数据(二)
  • 23-CMDB项目采集资产数据
  • 24-知识拾遗之线程进程池
  • 25-CMDB项目采集资产之日志记录
  • 26-自定义JSON序列化类型
  • 27-本小结作业
  • 28-基于requests模块汇报资产数据
  • 29-基于requests模块汇报API验证(一)
  • 30-基于requests模块汇报API验证(二)
  • 31-CMDB项目示例之API验证流程
  • 32-CMDB项目之数据表结构(一)
  • 33-CMDB项目之数据表结构(二)
  • 34-CMDB资产之汇报并持久化(一)
  • 35-CMDB资产汇报并持久化(二)
  • 36-CMDB之持久化资产流程
  • 37-作业
  • 38-CMDB项目CRUD组件之配置文件构造
  • 39-CMDB项目CURD组件之神奇的单@符号
  • 40-CMDB项目CURD组件之神奇的双@符号(一)
  • 41-CMDB项目CURD组件之神奇的双@符号(二)
  • 42-CMDB项目CURD组件之自定义td属性
  • 43-内容预习
  • 44-CMDB项目CURD组件之进入编辑模式
  • 45-CMDB项目CURD组件之全选取消反选和编辑模式
  • 46-CMDB项目CURD组件之内容截图
  • 47-CMDB项目CURD组件进入编辑模式详细
  • 48-CMDB项目CURD组件属性中应用神奇的单@符号
  • 49-CMDB项目CURD组件之退出编辑模式
  • 50-CMDB项目CURD组件更新数据
  • 51-CMDB项目CURD组件之基于jQuery扩展封装组件
  • 52-CMDB项目CURD组件之基本操作
  • 53-CMDB项目CURD组件之分页功能
  • 54-CMDB项目CURD组件之搜索功能介绍
  • 55-CMDB项目介绍

01- CMDB项目介绍

1.1 业务场景开发最难;

1.2 CMDB(配置管理数据库);

1.3 程序员与产品经理互掐;

1.4 运维开发&自动化开发;

1.5 PHP转Python的岗位场景;

02-CMDB开发背景

2.1 针对运维自动化的项目;

2.2 开发工具给公司某一岗位的使用;

2.3 业务开发;

  • 电商;
  • 交给运维人员进行发布部署;

2.4 工具开发;

  • 公司内部人员使用;
  • 减少人工干预,降低成本;
  • 统计公司的重资产-路由器、交换机、服务器;
  • 运维操作会失误;
  • 资产统计会失误;
  • 运维开发给普通运维人员开发工具——减少人工干预,降低运维成本;
  • 自动化方向-资产管理&操作管理&日志管理&监控管理;

03-CMDB开发目的

3.1 为什么开发CMDB系统?

  • 批量采购的服务器需要安装OS;
  • 批量安装操作系统——PXE;Kickstart;
  • Python、Java、Go、大数据等环境;
  • 灰度发布;
  • 自动化工具-ssh、saltstack、puppet、Ansible、迅雷种子发布;
  • CMDB是运维自动化的基础,有了它,才能构建上层项目;

04-CMDB资产采集方式之agent

4.1 私有云和公有云(AWS、阿里云、腾讯云、华为云)

4.2 CMDB的模块;

  • 资产;
  • 配置管理;
  • 私有云;
  • 监控;
  • 堡垒机;
  • 任务;
  • DNS;
  • 资源池;
  • 流程;

4.3 信息的搜集方式;

  • 客户端agent;不安全
  • 手动录入基本信息;
  • 优点:采集数据快;
  • 缺点:软件安装多;

05-CMDB资产采集方式之ssh

5.1 API方式获取;

5.2 优点与缺点:SSH连接非常慢,本质是基于paramiko模块;

06-CMDB资产采集方式之saltstack

6.1 依赖于第三方工具如saltstack进行开发(agent本身存在);

6.2 saltstack利用了rpc的方式进行数据搜集;基于队列的方式,速度快;

  • salt-master;
  • salt-slave;
  • 优点:快,开发成本低;
  • 缺点:依赖于saltstack-slave;

07-CMDB资产采集方式之puppet

7.1 老牌工具-puppet进行远程操作;

7.2 puppet-master和puppet-slave;

7.3 puppet内置的报表功能每30分钟连接一次slave;

  • 缺点:得用Ruby语言写;

08-CMDB资产采集方式比较

8.1 使用哪种方式?

  • agent;
  • ssh;
  • saltstack;

8.2 修改配置文件进行场景选择;

8.3 资产监控数据没有必要每分钟采集一次;

09-CMDB采集内容梳理

9.1 数据采集的四种方式;

  • agent主动汇报;每天执行脚本+定时任务;
  • ssh;数据库压力大;
  • saltstack;
  • puppet;

9.2 为什么要使用API的方式?

  • 给别人提供数据;
  • 降低数据库连接池数量;

10-CMDB资产采集功能之agent

10.1 pip3 install requests;

  • 采集资产信息;
  • 正则处理想要获取的数据;
  • 整理资产信息;
  • 发送数据;

11-CMDB资产采集之实现之ssh

import paramiko

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='c1.salt.com', port=22, username='cuixiaozhao', password='') # 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read() # 关闭连接
ssh.close()

12-CMDB资产采集功能实现之saltstack(一)

  • 安装saltstack
  • http://docs.saltstack.cn/topics/installation/rhel.html
  • yum install salt-master salt-minion
  • 修改配置文件 vim /etc/salt/master,修改interface位置本机IP地址;
  • 重启salt-master;
  • 修改minion的配置文件,指定master的ip地址并重启;

13-CMDB资产采集功能实现之saltstack(二)

14-CMDB资产采集插件开发(一)

14.1 做好程序目录结构规划;

15-面向对象继承

16-CMDB资产采集插件开发(二)

17-CMDB资产采集插件开发(三)

17.1 使用可拔插式的方法编写;

18-基于配置文件加载插件

19-作业讲解

19.1 为什么开发CMDB系统?

  • 运维自动化的基础;
  • 进行公司资产管理,不再基于Excel表格;
  • 资产进行自动汇报,以及资产的自动汇报;

20-CMDB项目采集资产数据(一)

20.1 agent形式;

  • 采集资产
  • 将资产数据发送到API(POST)

20.2 SSH形式;

  • 获取今日未采集主机列表
  • 采集资产
  • 将资产数据发送到API(post方法)

20.3 Salt形式;

  • 获取今日未采集主机列表
  • 采集资产
  • 将资产数据发送到API(post)

可执行文件中,代码越少越好;

21-CMDB项目采集资产数据之唯一标识规定

21.1 唯一标识号码-SN号;

21.2 做运维自动化之前,先制定规则,要不然无法向下执行;比如主机名无法重复;

21.3 公司既有物理机又有虚拟机,SN号不好使;

22-CMDB项目采集资产数据(二)

22.1 开发CMDB前,先制定规则;

23-CMDB项目采集资产数据

24-知识拾遗之线程进程池

25-CMDB项目采集资产之日志记录

26-自定义JSON序列化类型

27-本小结作业

28-基于requests模块汇报资产数据

29-基于requests模块汇报API验证(一)

30-基于requests模块汇报API验证(二)

31-CMDB项目示例之API验证流程

32-CMDB项目之数据表结构(一)

33-CMDB项目之数据表结构(二)

34-CMDB资产之汇报并持久化(一)

35-CMDB资产汇报并持久化(二)

36-CMDB之持久化资产流程

37-作业

38-CMDB项目CRUD组件之配置文件构造

39-CMDB项目CURD组件之神奇的单@符号

40-CMDB项目CURD组件之神奇的双@符号(一)

41-CMDB项目CURD组件之神奇的双@符号(二)

42-CMDB项目CURD组件之自定义td属性

43-内容预习

44-CMDB项目CURD组件之进入编辑模式

45-CMDB项目CURD组件之全选取消反选和编辑模式

46-CMDB项目CURD组件之内容截图

47-CMDB项目CURD组件进入编辑模式详细

48-CMDB项目CURD组件属性中应用神奇的单@符号

49-CMDB项目CURD组件之退出编辑模式

50-CMDB项目CURD组件更新数据

51-CMDB项目CURD组件之基于jQuery扩展封装组件

52-CMDB项目CURD组件之基本操作

53-CMDB项目CURD组件之分页功能

54-CMDB项目CURD组件之搜索功能介绍

55-CMDB项目介绍

CMDB项目实战的更多相关文章

  1. Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示

    基于之前的项目代码 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页.index页.文章页面 Python Django CMDB项目实战之-2创建APP. ...

  2. Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据

    基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...

  3. Python Django CMDB项目实战之-1如何开启一个Django-并设置base页、index页、文章页面

    1.环境 win10 python 2.7.14 django 1.8.2 需要用到的依赖包:MySQLdb(数据库的接口包).PIL/pillow(处理图片的包) 安装命令: pip install ...

  4. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  5. 给缺少Python项目实战经验的人

    我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...

  6. 【腾讯Bugly干货分享】React Native项目实战总结

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...

  7. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  8. Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  9. Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

随机推荐

  1. IOS 解析Json数据(NSJSONSerialization)

    ● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...

  2. 前端高质量知识(五)-JS详细图解全方位解读this

    在这之前,我们需要来回顾一下执行上下文. 在前面几篇文章中,我有好几个地方都提到执行上下文的生命周期,为了防止大家没有记住,再次来回顾一下,如下图. 执行上下文生命周期 在执行上下文的创建阶段,会分别 ...

  3. 单调队列 poj2823,fzu1894

    题目链接:http://poj.org/problem?id=2823 用RMQ超时了,我想应该是不会的,看discuss说,之前RMQ过了. 维护两个单调队列. 单调递减的队列,每插入一个时: 超过 ...

  4. Angular2入门--架构概览

    Angular 介绍 Angular 是一款来自谷歌的开源的web前端框架,诞生于2009年,是一款优秀的前端JS框架,已经被用于谷歌的多款产品. Angular 基于Typescript开发 ,更适 ...

  5. Java从入门到放弃——04.数组

    本文目标 数组 1.数组 定义一个数组的三个姿势: 数组类型 []    数组名  =   new   数组类型[数组数量]: 数组类型 []    数组名  =   new   数组类型[]{对象1 ...

  6. 问题 B: 矩形类中运算符重载【C++】

    题目描述 定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数.输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数.要求使用提示中给出的测试函数并不得改动. 两个矩 ...

  7. Linux下C程序进程地址空间布局[转]

    我们在学习C程序开发时经常会遇到一些概念:代码段.数据段.BSS段(Block Started by Symbol) .堆(heap)和栈(stack).先看一张教材上的示意图(来源,<UNIX ...

  8. map和set的遍历

    map: 1.通过获取Entry:  Entry的iterator for(Map.Entry<Float,String> entry : map.entrySet()) { System ...

  9. Java关键字transient和volatile小结

    转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话 ...

  10. Codeforces#498F. Xor-Paths(折半搜索)

    time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standa ...