文章目录
项目实战: 基于Ansible的云平台自动化运维系统
一、项目介绍
1.项目介绍
本项目通过KVM虚拟化搭建Linux系统集群,使用 Ansible实现Linux集群下的批量部署与自动化管理,实现Web形式的自动化运维系统,集中批量控制服务器, 最终实现能支撑1000台实例的环境提供管理和自动化任务, 提高运维工程师的工作质量和效率。 项目基于HTTP实现自动化任务接受和响应接口设计,基于MySQL用作的关系型数据存取, 基于Redis的任务锁机制和消息队列, 基于MongoDB的事件日志记录, 最终实现邮件通知功能、敏感数据加密功能、日志事件记录功能。
2.项目背景
(1)互联网快速发展
网站用户规模、使用快速上升
要求庞大系统支撑能力
更加快速的运维效率应对突发流量
更加自动化的方式减少人工投入成本
更加可靠的技术手段,保障系统的稳定
(2)云时代
腾讯云、阿里云、亚马逊云、青云等云厂商的市场份额不断增加
大部分技术架构设计不再以网络设计、IDC和系统硬件等方面作为重点
运维基础的、繁琐的工作逐步减少
小公司也不再需要一个运维工程师或者系统工程师
结论: 在这样的时代背景下, 大型互联网公司为了应对市场的快速变化,就需要运维自动化
二、项目环境搭建
1.项目目录的配置
创建Django项目CMDB
连接并配置远程服务器
[Tools] -> [Deployment]
具体操作如下:
新建一个django项目
查看django版本
配置本地目录和远程服务器目录的映射(Mapping)
上述操作完成, 本地文件修改, 远程服务器文件也同时修改
2.远程服务器虚拟环境的配置
连接远程服务器
上传文件到服务器
- 创建虚拟环境并激活虚拟环境
安装virtuaenv
在服务器上建虚拟环境
[root@docker CMDB]# virtualenv -p /usr/bin/python3 env
created virtual environment CPython3.6.8.final.0-64 in 384ms
creator CPython3Posix(dest=/data/www/CMDB/env, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators PythonActivator,FishActivator,XonshActivator,CShellActivator,PowerShellActivator,BashActivator
[root@docker CMDB]#
[root@docker CMDB]# ls
CMDB env manage.py
[root@docker CMDB]# source env/bin/activate
(env) [root@docker CMDB]# pip install django==2.2 -i https://pypi.douban.com/simple
- 出现的报错及处理方式
# sqlite版本问题 django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
解决方式: 不使用sqlite存储数据, 使用mysql
屏蔽数据库设置
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases