文章目录
1. 项目简介
1.1 背景
本项目通过KVM虚拟化搭建Linux系统集群,使用 Ansible实现Linux集群下的批量部署与自动化管理,
实现Web形式的自动化运维系统,集中批量控制服务器, 最终实现能支撑1000台实例的环境提供管理和自
动化任务, 提高运维工程师的工作质量和效率。 项目基于HTTP实现自动化任务接受和响应接口设计,
基于MySQL用作的关系型数据存取, 基于Redis的任务锁机制和消息队列, 基于MongoDB的事件日志
记录, 最终实现邮件通知功能、敏感数据加密功能、日志事件记录功能。
这个文档主要目标是实现自动化资产扫描, 扫描指定网段的服务器资产信息
互联网快速发展
- 网站用户规模、使用快速上升
- 要求庞大系统支撑能力
- 更加快速的运维效率应对突发流量
- 更加自动化的方式减少人工投入成本
- 更加可靠的技术手段,保障系统的稳定
云时代
- 腾讯云、阿里云、亚马逊云、青云等云厂商的市场份额不断增加
- 大部分技术架构设计不再以网络设计、IDC和系统硬件等方面作为重点
- 运维基础的、繁琐的工作逐步减少
- 小公司也不再需要一个运维工程师或者系统工程师
结论: 在这样的时代背景下, 大型互联网公司为了应对市场的快速变化,就需要运维自动化
1.2 项目技术分析
1.3 主要内容
1.自动化资产扫描发现
- 资产扫描的作用
- nmap的作用
- telnetlib端口扫描
- pexpect登录探测
- paramiko登录探测
ansible自动化任务在此不涉及
2.整体工程设计
-
资产的自动化扫描发现
用Python程序扫描发现企业内部的所有资产(服务器资产),当资产出现变动时能自动及时的发现并完成资产变更(eg: 服务器IP变更、机器集体报废)。 -
Ansible的自动化任务执行
用Ansible的ad-hoc和playbook实现批量主机的自动化任务。
2.项目环境搭建1
和之前Django项目准备阶段一样,在此简单列出步骤:
- django项目创建cmdb
- 子应用的创建scanhost
- 设置本地化(语言,时区, 安装的应用)
- 应用数据库并创建超级用户
- 浏览器访问测试一下
- 基本的管理(requirements.txt和README.md文件)
- git的管理
2.1 Django环境搭建
python manage.py startapp scanhost
应用数据库并创立超户:
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
浏览器登录查看效果:
2.2 ignore
需要的模块
pip freeze > requirements.txt
添加README.md