V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hustlzp
V2EX  ›  Python

《Python 自动化运维:技术与最佳实践》

  •  
  •   hustlzp ·
    hustlzp · 2014-12-02 08:52:49 +08:00 · 8681 次点击
    这是一个创建于 3626 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/product-description/B00P5VKZWW

    第一部分 基础篇

    第1章 系统基础信息模块详解 2

    1.1 系统性能信息模块psutil 2
    1.1.1 获取系统性能信息 3
    1.1.2 系统进程管理方法 6
    1.2 实用的IP地址处理模块IPy 7
    1.2.1 IP地址、网段的基本处理 8
    1.2.2 多网络计算方法详解 9
    1.3 DNS处理模块dnspython 11
    1.3.1 模块域名解析方法详解 11
    1.3.2 常见解析类型示例说明 12
    1.3.3 实践:DNS域名轮循业务监控 14

    第2章 业务服务监控详解 17

    2.1 文件内容差异对比方法 17
    2.1.1 示例1:两个字符串的差异对比 17
    2.1.2 生成美观的对比HTML格式文档 19
    2.1.3 示例2:对比Nginx配置文件差异 19
    2.2 文件与目录差异对比方法 21
    2.2.1 模块常用方法说明 21
    2.2.2 实践:校验源与备份目录差异 25
    2.3 发送电子邮件模块smtplib 27
    2.3.1 smtplib模块的常用类与方法 27
    2.3.2 定制个性化的邮件格式方法 28
    2.3.3 定制常用邮件格式示例详解 29
    2.4 探测Web服务质量方法 34
    2.4.1 模块常用方法说明 35
    2.4.2 实践:实现探测Web服务质量 36

    第3章 定制业务质量报表详解 39

    3.1 数据报表之Excel操作模块 39
    3.1.1 模块常用方法说明 41
    3.1.2 实践:定制自动化业务流量报表周报 48
    3.2 Python与rrdtool的结合模块 50
    3.2.1 rrdtool模块常用方法说明 51
    3.2.2 实践:实现网卡流量图表绘制 53
    3.3 生成动态路由轨迹图 56
    3.3.1 模块常用方法说明 56
    3.3.2 实践:实现TCP探测目标服务路由轨迹 57

    第4章 Python与系统安全 60

    4.1 构建集中式的病毒扫描机制 60
    4.1.1 模块常用方法说明 61
    4.1.2 实践:实现集中式的病毒扫描 61
    4.2 实现高效的端口扫描器 64
    4.2.1 模块常用方法说明 64
    4.2.2 实践:实现高效的端口扫描 66

    第二部分 高级篇

    第5章 系统批量运维管理器pexpect详解 70

    5.1 pexpect的安装 70
    5.2 pexpect的核心组件 71
    5.2.1 spawn类 71
    5.2.2 run函数 74
    5.2.3 pxssh类 75
    5.3 pexpect应用示例 76
    5.3.1 实现一个自动化FTP操作 76
    5.3.2 远程文件自动打包并下载 77

    第6章 系统批量运维管理器paramiko详解 79

    6.1 paramiko的安装 79
    6.2 paramiko的核心组件 81
    6.2.1 SSHClient类 81
    6.2.2 SFTPClient类 82
    6.3 paramiko应用示例 85
    6.3.1 实现密钥方式登录远程主机 85
    6.3.2 实现堡垒机模式下的远程命令执行 85
    6.3.3 实现堡垒机模式下的远程文件上传 88

    第7章 系统批量运维管理器Fabric详解 91

    7.1 Fabric的安装 91
    7.2 fab的常用参数 92
    7.3 fabfile的编写 93
    7.3.1 全局属性设定 93
    7.3.2 常用API 94
    7.3.3 示例1:查看本地与远程主机信息 95
    7.3.4 示例2:动态获取远程目录列表 96
    7.3.5 示例3:网关模式文件上传与执行 97
    7.4 Fabric应用示例 98
    7.4.1 示例1:文件打包、上传与校验 98
    7.4.2 示例2:部署LNMP业务服务环境 99
    7.4.3 示例3:生产环境代码包发布管理 101

    第8章 从“零”开发一个轻量级WebServer 104

    8.1 Yorserver介绍 104
    8.1.1 功能特点 104
    8.1.2 配置文件 105
    8.2 功能实现方法 106
    8.2.1 HTTP缓存功能 107
    8.2.2 HTTP压缩功能 111
    8.2.3 HTTP SSL功能 111
    8.2.4 目录列表功能 114
    8.2.5 动态CGI功能 114

    第9章 集中化管理平台Ansible详解 118

    9.1 YAML语言 119
    9.1.1 块序列描述 120
    9.1.2 块映射描述 120
    9.2 Ansible的安装 121
    9.2.1 业务环境说明 121
    9.2.2 安装EPEL 122
    9.2.3 安装Ansible 122
    9.2.4 Ansible配置及测试 122
    9.2.5 配置Linux主机SSH无密码访问 123
    9.3 定义主机与组规则 124
    9.3.1 定义主机与组 124
    9.3.2 定义主机变量 125
    9.3.3 定义组变量 125
    9.3.4 分离主机与组特定数据 126
    9.4 匹配目标 127
    9.5 Ansible常用模块及API 127
    9.6 playbook介绍 132
    9.6.1 定义主机与用户 132
    9.6.2 任务列表 133
    9.6.3 执行playbook 134
    9.7 playbook角色与包含声明 135
    9.7.1 包含文件,鼓励复用 135
    9.7.2 角色 136
    9.8 获取远程主机系统信息:Facts 141
    9.9 变量 142
    9.9.1 Jinja2过滤器 143
    9.9.2 本地Facts 143
    9.9.3 注册变量 144
    9.10 条件语句 145
    9.11 循环 146
    9.12 示例讲解 147

    第10章 集中化管理平台Saltstack详解 155

    10.1 Saltstack的安装 156
    10.1.1 业务环境说明 156
    10.1.2 安装EPEL 156
    10.1.3 安装Saltstack 156
    10.1.4 Saltstack防火墙配置 157
    10.1.5 更新Saltstack配置及安装校验 157
    10.2 利用Saltstack远程执行命令 158
    10.3 Saltstack常用模块及API 161
    10.4 grains组件 166
    10.4.1 grains常用操作命令 167
    10.4.2 定义grains数据 167
    10.5 pillar组件 170
    10.5.1 pillar的定义 171
    10.5.2 pillar的使用 173
    10.6 state介绍 174
    10.6.1 state的定义 174
    10.6.2 state的使用 175
    10.7 示例:基于Saltstack实现的配置集中化管理 177
    10.7.1 环境说明 177
    10.7.2 主控端配置说明 177
    10.7.3 配置pillar 179
    10.7.4 配置state 180
    10.7.5 校验结果 183

    第11章 统一网络控制器Func详解 185

    11.1 Func的安装 186
    11.1.1 业务环境说明 186
    11.1.2 安装Func 186
    11.2 Func常用模块及API 189
    11.2.1 选择目标主机 190
    11.2.2 常用模块详解 190
    11.3 自定义Func模块 194
    11.4 非Python API接口支持 198
    11.5 Func的Facts支持 199

    第12章 Python大数据应用详解 202

    12.1 环境说明 202
    12.2 Hadoop部署 203
    12.3 使用Python编写MapReduce 207
    12.3.1 用原生Python编写MapReduce详解 208
    12.3.2 用Mrjob框架编写MapReduce详解 212
    12.4 实战分析 216
    12.4.1 示例场景 216
    12.4.2 网站访问流量统计 217
    12.4.3 网站HTTP状态码统计 219
    12.4.4 网站分钟级请求数统计 220
    12.4.5 网站访问来源IP统计 221
    12.4.6 网站文件访问统计 222

    第三部分 案例篇

    第13章 从零开始打造B/S自动化运维平台 226

    13.1 平台功能介绍 226
    13.2 系统构架设计 227
    13.3 数据库结构设计 228
    13.3.1 数据库分析 228
    13.3.2 数据字典 228
    13.3.3 数据库模型 229
    13.4 系统环境部署 230
    13.4.1 系统环境说明 230
    13.4.2 系统平台搭建 230
    13.4.3 开发环境优化 233
    13.5 系统功能模块设计 235
    13.5.1 前端数据加载模块 235
    13.5.2 数据传输模块设计 237
    13.5.3 平台功能模块扩展 240

    第14章 打造Linux系统安全审计功能 245

    14.1 平台功能介绍 245
    14.2 系统构架设计 246
    14.3 数据库结构设计 247
    14.3.1 数据库分析 247
    14.3.2 数据字典 247
    14.4 系统环境部署 248
    14.4.1 系统环境说明 248
    14.4.2 上报主机配置 248
    14.5 服务器端功能设计 252
    14.5.1 Django配置 252
    14.5.2 功能实现方法 253

    第15章 构建分布式质量监控平台 256

    15.1 平台功能介绍 256
    15.2 系统构架设计 257
    15.3 数据库结构设计 258
    15.3.1 数据库分析 258
    15.3.2 数据字典 258
    15.3.3 数据库模型 259
    15.4 系统环境部署 260
    15.4.1 系统环境说明 260
    15.4.2 数据采集角色 260
    15.4.3 rrdtool作业 261
    15.5 服务器端功能设计 263
    15.5.1 Django配置 263
    15.5.2 业务增加功能 264
    15.5.3 业务报表功能 266

    第16章 构建桌面版C/S自动化运维平台 269

    16.1 平台功能介绍 269
    16.2 系统构架设计 270
    16.3 数据库结构设计 271
    16.3.1 数据库分析 271
    16.3.2 数据字典 272
    16.3.3 数据库模型 272
    16.4 系统环境部署 273
    16.4.1 系统环境说明 273
    16.4.2 系统环境搭建 273
    16.5 系统功能模块设计 274
    16.5.1 用户登录模块 274
    16.5.2 系统配置功能 275
    16.5.3 服务器分类模块 277
    16.5.4 系统升级功能 280
    16.5.5 客户端模块编写 284
    16.5.6 执行功能模块 287
    16.5.7 平台程序发布 289

    第 1 条附言  ·  2014-12-02 14:47:59 +08:00
    《Python自动化运维:技术与最佳实践》附带示例及案例源码

    https://github.com/yorkoliu/pyauto

    感谢 @bitwing
    25 条回复    2015-05-27 02:09:36 +08:00
    est
        1
    est  
       2014-12-02 09:12:40 +08:00 via Android
    好大一个坑。

    用了下ruby那边的cap和mina感觉比大python差远啦
    bingx86
        2
    bingx86  
       2014-12-02 09:40:38 +08:00
    在 ansible 和 saltstack 中纠结了好久
    ashin
        3
    ashin  
       2014-12-02 10:00:54 +08:00
    昨晚刚买了这本
    tftk
        4
    tftk  
       2014-12-02 10:05:26 +08:00
    @bingx86 最后那?
    gonbo
        5
    gonbo  
       2014-12-02 10:14:49 +08:00
    还是非常牛逼的!
    Lycnir
        6
    Lycnir  
       2014-12-02 10:29:30 +08:00
    @bingx86 我果断选了ansible
    is
        7
    is  
       2014-12-02 10:29:47 +08:00
    赞一个.
    lsmgeb89
        8
    lsmgeb89  
       2014-12-02 10:29:49 +08:00
    这么复杂~~
    kemad
        9
    kemad  
       2014-12-02 10:35:33 +08:00
    ansible 不支持 Windows。

    saltstack windows minion 的升级太麻烦了。真希望来个 golang 版的,加支持自动升级。
    wwek
        10
    wwek  
       2014-12-02 11:04:28 +08:00
    ansible~
    kingphar
        11
    kingphar  
       2014-12-02 11:37:13 +08:00
    早上刚下单这本书。。
    jjx
        12
    jjx  
       2014-12-02 11:44:14 +08:00
    我也支持了一下
    canky
        13
    canky  
       2014-12-02 12:24:39 +08:00 via iPhone
    适合零基础的人用吗,英语不认识一个的那种
    n37r06u3
        14
    n37r06u3  
       2014-12-02 12:26:08 +08:00
    @canky 建议学习英语
    hazard
        15
    hazard  
       2014-12-02 13:03:28 +08:00
    这书很好么?
    hustlzp
        16
    hustlzp  
    OP
       2014-12-02 13:13:51 +08:00
    @hazard 只是分享发现,好坏不知。
    fxbird
        17
    fxbird  
       2014-12-02 13:35:17 +08:00
    这种书挺实用的,我学python就是为了做些工具,免除手动敲那些命令的繁复无聊
    iT2afL0rd
        18
    iT2afL0rd  
       2014-12-02 14:17:24 +08:00
    salt用了感觉还不错,其他的暂时还没有试过
    bitwing
        19
    bitwing  
       2014-12-02 14:23:05 +08:00   ❤️ 2
    hustlzp
        20
    hustlzp  
    OP
       2014-12-02 14:46:44 +08:00
    @bitwing 赞!
    bingx86
        21
    bingx86  
       2014-12-02 14:59:26 +08:00
    @tftk 选了 Ansible, 感觉 agentless 更清爽一些
    bingx86
        22
    bingx86  
       2014-12-02 15:00:18 +08:00
    @Lycnir 我是因为 Ansible 的无 agent 选了它,你呢
    huson
        23
    huson  
       2014-12-02 23:47:10 +08:00
    已下单 谢谢楼主
    Charle
        24
    Charle  
       2014-12-03 13:37:42 +08:00
    @bitwing 不错,正想找~
    fiery
        25
    fiery  
       2015-05-27 02:09:36 +08:00
    @kemad 感谢提醒,我正在纠结Ansible和Salt,查了一下现在Ansible是要用PowerShell才能支持Windows,一下子就蛋疼了,果断SaltStack
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:45 · PVG 21:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.