Saltstack自0.17.x版本开始引进Formulas的概念,旨在通过简化State和集成数据来实现State的友好管理。根据SALT FORMULAS的官方文档,在完成手动添加formula目录后,formula应该提供一些默认的配置而立即可用。如果需要进一步的配置,大部分……
Continue reading
本篇承接上一篇 saltstack实现批量路由增加 ,在上一篇中提到了使用saltstack自带的network state实现了redhat路由的自动配置,不过在suse系统下却无解,晚上没事写了个模块,实现了针对suse系统实现路由增加。代码如下: 1#coding: utf-8 2# code from www.361way.com 3import commands 4__outputter__ = { 5 'suse': 'txt', 6} 7_SUSE_ROUTE_FILE =……
Continue reading
一、需求 现网之前有两个机房,每台主机上有两个网段,三条路由 ——– 业务网段为192.168.X.X,管理网段是10.X.X.X,默认路由走的是业务网段,10.211.6网段是走互联网F5映射用的。后来又新增了一个机房,并根据总部要求分配了两个网段,10.125.X.X 网段是新机房的业务……
Continue reading
本篇实现的作用是利用Jinja2模板根据需要生成html 页面。 ghtml.py内容如下: 1# cat ghtml.py 2#!/usr/bin/env python 3# coding=utf-8 4# code from www.361way.com 5import os 6from jinja2 import Environment, FileSystemLoader 7PATH = os.path.dirname(os.path.abspath(__file__)) 8TEMPLATE_ENVIRONMENT = Environment( 9 autoescape=False, 10 loader=FileSystemLoader(os.path.join(PATH, 'templates')), 11 trim_blocks=False) 12def render_template(template_filename, context): 13 return TEMPLATE_ENVIRONMENT.get_template(template_filename).render(context) 14def create_index_html(): 15 fname = "output.html" 16 urls = ['http://www.361way.com/tag/python', 'http://www.361way.com/tag/linux', 'http://www.361way.com/tag/mysql'] 17 context = { 18 'urls': urls 19 } 20 # 21 with open(fname, 'w') as f: 22 html = render_template('index.html', context) 23 f.write(html) 24def main(): 25 create_index_html() 26######################################## 27if __name__ == "__main__": 28 main() templates/in……
Continue reading
python装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。装饰器实际上就是一个函数,其有如下两个特别之处: 1.参数是一个函数 2.返回值是一个函数 一、无参装饰器 这里先实现一个简单……
Continue reading
Let’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞……
Continue reading
一、什么是反向shell 就是控制端监听在某TCP/UDP端口,被控制端主动连接控制端的这一端口,控制端可以通过这一端口进行相关命令操作。像telnet,ssh这些可以理解为正向shell,控制端主动连通控制端,而反向shell则是正向shell的向。 反向shell通常用于被控端因……
Continue reading
一、merge、join与concat的区别 Pandas.DataFrame操作表连接有三种方式:merge, join, concat。三者的使用很容易搅浑,三者之间的区别什么呢? merge 相当于SQL中的JOIN。该函数的典型应用场景是,两张表有相同内容的列(即SQL中的键),现在我们想把两张表……
Continue reading
在《pandas小结(五)concat数据合并》中提到了数据合并,本篇学习另一个数据合并方法merge,不过这个和concat是有区别的,concat方法准确的说更像是级联,而不算合并,merge才是真正意义的合并。merge个人用的比较多的一个场景就是两个pandas数据,有相……
Continue reading
这里还是承接同事的需求,想要将所有网络设备的日志汇总后在一个平台上进行展示。在上一篇syslog-ng日志应用详解中提到了,通过syslog-ng创建日志集中服务器。可以通过syslog-ng+loganalyzer实现将接受采集过来的日志入库并在web页面上统一展示。 一、数据库……
Continue reading