Python 运维总结

传统运维

        -命令行

        -批量脚本

自动化运维

云运维

 

自动化运维工具

部署类: jenkins

环境类:ansible

监控类:ngios

 

适合自动化运维的编程语言的特点:

丰富的第三方库

学习成本低

 

自动化运维的缺点

数据无法共享

无法主动发现问题

部署成本高

标准不统一

 

云运维简介

资源数据共享

主动发现问题

统一标准

成本低

 

ansbile 教程简介

一个自动化管理IT资源的工具

功能:

系统环境配置、

安装软件

持续集成

热回滚

 

优点:

无客户端

推送式

丰富的module

基于YAML的Playbook

商业化的支持

 

缺点:

效率低,易挂起

并发性能差

 

安装ansbile

环境准备:python setuptools Pip(可选)

 

执行ansible的流程

ansible all -m ping

 

唤起ansible ----查询hosts,获取指定目标的IP -----调用指定的模块 -----传入指定的参数----返回执行结果

 

指定host连接的端口:

在host文件中的IP:端口号

例:192.168.0.10:5000

 

Ad-Hoc

类似与命令行shell命令与shell script两者之间的关系

 

ansible -playbook简介

一种简单的配置管理系统与多机器部署系统的基础

可以编排有序的执行过程甚至做到多组机器之间来回有序执行特定的步骤

 

 

调用ansible 模块

1.引入ansible runner库

2.初始化runner对象,传入相关参数

3.运行runner对象的run函数

 

 

 

自动化运维之saltstack

概念:

1.一个配置远程管理系统,能够维护预定义状态的远程节点

2.一个分布式远程执行系统,用来在远程节点上执行命令和查询数据

 

特点 :

1.简单 (相对)puppet

2.并行执行

3.基于成熟技术(ZeroMQ,AES)

4.Python API

5.灵活开放

 

服务架构

1.master---- 负责管理所有节点

2.minion----节点服务

3.ZeroMQ----通信服务

4.AES----数据加密算法

 

安装依赖:

1.python 2.6-3.0

2.ZeroMQ or REAT

3,mako(可选) :一个可选的Salt States解析器

4.gcc

 

启动:

1.运行master节点

2.修改minion节点配置,填入master节点信息

3.启动minion

4.master添加minion

 

grains

minion启动的时候采集的系统静态,包括cpu,操作系统,文件系统,硬盘等

 

pillar

与grains类似,可以将minion数据通过key/value的格式进行存储

 

targeting minions

为salt指定minion的方法

例:salt web1 apache.signal restart

 

salt -c "G@os:debian and webserver* or E@db.*" test.ping

G@指定了grains

webserver指定了ID以webserver开头的minion

E@是以正则的额方式指定minion的ID

 

salt runners

运行在 master上命令的方法

 

远程执行

salt '*' cmd.run 'uname -a'

salt '*' exec_code python "import sys; print sys,version"

 

saltstack API

配置API

1.安装saltapi

2.添加调用API用户

3.生成加密证书

4.修改配置文件

 

 

 

 

监控工具:Nagios

一款免费的开源IT基础设施监控系统,功能强大,灵活性强,能有效监控windows linux vmware 和unix主机状态 交换机 路由器等网络设置

 

结构上分为两部分:核心功能 插件

 

特性:

1.监控网络服务

2.监控主机资源

3.主动通知

4.web页面

5.可扩展

 

优点:

1.轻量级,架构简单

2.容易部署

3.文档健全

4.灵活 全面

 

缺点:

1.修改配置麻烦

2.太灵活,学习成本高

3.监控报警缺乏历史数据

4.严重依赖外部插件

 

 

nagios配置web页面

1.安装web server(nginx apache等)

2.配置web server 到nagios

3.启动php-fpm,perl-fcgi

4.启动web server

 

nagios图形化配置管理工具:nagiosQL

pnp4nagios:监控信息图表工具

nagiosgraph:监控信息图表工具

 

 

 

 

buildbot

一个开源的框架,可以自动化构建,测试和发布代码等过程,每当代码有改变,服务器要求不同平台上的客户端立即进行代码构建和测试,收集并报告不同平台的构建和测试结果

 

各个组件模块

1.repository: 代码管理库

2.Buildmaster:决策中心

3.Buildslave :执行模块

4.Notifiers :消息通知

 

通讯方式:

1.BuildSlave运行在需要测试的机器上

2.Tcp通信,由BuildSlave主动发起

3.命令都只能由buildmaster 下发到buildslave中

4.buildslave从repository上获取集成代码

 

优点:

1.跨平台 ----python

2.跨语言 java php

3.环境依赖低

4.多样化通知

5.配置灵活

6.分布式

 

 

 

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页