CMDB项目实战
- 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项目实战的更多相关文章
- Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示
基于之前的项目代码 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页.index页.文章页面 Python Django CMDB项目实战之-2创建APP. ...
- Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据
基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...
- Python Django CMDB项目实战之-1如何开启一个Django-并设置base页、index页、文章页面
1.环境 win10 python 2.7.14 django 1.8.2 需要用到的依赖包:MySQLdb(数据库的接口包).PIL/pillow(处理图片的包) 安装命令: pip install ...
- Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- 给缺少Python项目实战经验的人
我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...
- 【腾讯Bugly干货分享】React Native项目实战总结
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...
- Asp.Net Core 项目实战之权限管理系统(0) 无中生有
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
随机推荐
- linux 内存地址空间管理 mm_struct
http://blog.csdn.net/yusiguyuan/article/details/39520933 Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起 ...
- 判断团队适不适合使用node
1.要不要用 2.历史包袱 3.跟进升级 看完scott创业公司使用node,对于一个团队要不要使用node,第一个就是如果承接的项目有很多历史迭代,线上也在稳定的抛,不要轻易的替换,比如很多老代码, ...
- javaweb基础(38)_事务
一.事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句 update from account set mone ...
- 理解 Gulp 和 Webpack(转)
Gulp 和 webpack 之间的关系是十分暧昧的,却也经常被人误解,以为它俩是竞争关系,其实不然. Gulp 是一个任务管理工具,让简单的任务更清晰,让复杂的任务易于掌控:而 webpack 的理 ...
- 洛谷P1762 偶数(找规律)
题目描述 给定一个正整数n,请输出杨辉三角形前n行的偶数个数对1000003取模后的结果. 输入输出格式 输入格式: 一个数 输出格式: 结果 输入输出样例 输入样例#1: 复制 6 输出样例#1: ...
- lintcode_115_不同的路径 II
不同的路径 II 描述 笔记 数据 评测 "不同的路径" 的跟进问题: 现在考虑网格中有障碍物,那样将会有多少条不同的路径? 网格中的障碍和空位置分别用 1 和 0 来表示. ...
- lvs+ipvsadm负载均衡
使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...
- java动态返回一个大对象里多个小对象map返回,el表达式用c:set拼接
基于堆内存,先把map放到返回值里 Map _map=new HashMap(); modelAndView.addObject("pledgeInsurance",_map);/ ...
- Ubuntu 18.04 配置
Ubuntu 18.04 配置IP-静态(UB与其他linux os不同) sudo netplan generate sudo vim /etc/netplan/50-cloud-init.yaml ...
- php COM
查看php.ini中是否已经开启了com.allow_dcom = true 从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件 如果没有网上下载个,一般都会有的吧应 ...