Puppet 推送文件测试


创建模块目录结构

[root@lost1 modules]# tree /etc/puppet/modules/
/etc/puppet/modules/
└── push
    ├── files
    │   └── puppet-test
    ├── manifests
    │   └── init.pp
    └── templates
4 directories, 2 files

阅读全文

Puppet 证书管理


查看证书。

[root@lost1 ssl]# puppet cert --list --all
+ "lost1.com" (SHA256) 63:6B:DE:7E:E6:DA:68:71:90:23:42:64:19:9F:A1:36:B7:14:D8:56:3C:8E:AD:C9:E9:2E:DC:4E:81:FF:33:8F (alt names: "DNS:lost1.com", "DNS:puppet", "DNS:puppet.com")
+ "lost2.com" (SHA256) 56:BE:3A:B5:6C:5C:73:7E:31:0C:30:88:49:3E:9D:E5:37:D1:61:F9:C4:6C:66:75:46:0D:6A:4B:6D:8D:A6:99
+ "lost3.com" (SHA256) 8F:53:A5:BC:1E:BA:11:DF:AB:8E:86:C3:C9:5E:9C:F4:F2:67:E6:76:EA:E5:58:13:2D:B2:39:12:79:66:F2:A3

撤销证书。

[root@lost1 ssl]# puppet cert revoke lost2.com
Notice: Revoked certificate with serial 4
[root@lost1 ssl]# puppet cert --list --all
+ "lost1.com" (SHA256) 63:6B:DE:7E:E6:DA:68:71:90:23:42:64:19:9F:A1:36:B7:14:D8:56:3C:8E:AD:C9:E9:2E:DC:4E:81:FF:33:8F (alt names: "DNS:lost1.com", "DNS:puppet", "DNS:puppet.com")
+ "lost3.com" (SHA256) 8F:53:A5:BC:1E:BA:11:DF:AB:8E:86:C3:C9:5E:9C:F4:F2:67:E6:76:EA:E5:58:13:2D:B2:39:12:79:66:F2:A3
- "lost2.com" (SHA256) 56:BE:3A:B5:6C:5C:73:7E:31:0C:30:88:49:3E:9D:E5:37:D1:61:F9:C4:6C:66:75:46:0D:6A:4B:6D:8D:A6:99 (certificate revoked)

阅读全文

Puppet 安装部署


清空 iptables 规则

vim /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

设置 ntp

[root@lost1 test]# ntpdate pool.ntp.org
24 Feb 11:24:55 ntpdate[2540]: step time server 202.112.29.82 offset -28798.519271 sec
[root@lost2 test]# ntpdate pool.ntp.org
24 Feb 11:25:00 ntpdate[2648]: step time server 202.112.29.82 offset -28798.248673 sec
[root@lost3 test]# ntpdate pool.ntp.org
24 Feb 11:25:04 ntpdate[3528]: step time server 202.112.29.82 offset -28798.070055 sec

阅读全文

Python 实现经典排序算法


插入排序:
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。

def insert_sort(lists):
    count = len(lists)
    for i in range(1, count):
        key = lists[i]
        j = i - 1
        while j >= 0:
            if lists[j] > key:
                lists[j + 1] = lists[j]
                lists[j] = key
            j -= 1
    return lists

阅读全文

Python dict 排序


对 dict 排序的方法,主要是把 dict 中的元素分离出来放到一个 list 中,对 list 排序,从而间接实现对 dict 的排序。
这个"元素"可以是 key、value 或者 item。

# -*- coding: utf-8 -*-

adict = {
    "a" : 2,
    "c" : 1,
    "b" : 3
}

def sortedDictValues1(self):
    items = self.items()
    items.sort()
    return [value for key, value in items]

newAdict1 = sortedDictValues1(adict)
print newAdict1

def sortedDictValues2(self):
    keys = self.keys()
    keys.sort()
    return [self[key] for key in keys]

newAdict2 = sortedDictValues2(adict)
print newAdict2

newAdict3 = [(k,adict[k]) for k in sorted(adict.keys())] 
print newAdict3

def sort_by_value(self):
    items = self.items()
    backitems = [[v[1],v[0]] for v in items]
    backitems.sort()
    return [backitems[i][1] for i in range(0,len(backitems))]

newAdict4 = sort_by_value(adict)
print newAdict4

newAdict5 = [ v for v in sorted(adict.values())] 
print newAdict5

newAdict6 = sorted(adict.items(), lambda x, y: cmp(x[1], y[1]))
print newAdict6

newAdict7 = sorted(adict.items(), lambda x, y: cmp(x[1], y[1]), reverse=True)
print newAdict7

newAdict8 = sorted(adict.items(), key=lambda d: d[0])
print newAdict8

newAdict9 = sorted(adict.items(), key=lambda d: d[1])
print newAdict9
阅读全文

Python 获取昨天 今天 明天


# -*- coding: utf-8 -*-

import datetime
import time

# get date
today = datetime.date.today()
print today

oneday = datetime.timedelta(days=1)
yesterday = today - oneday
print yesterday

tomorrow = today + oneday
print tomorrow
阅读全文

Python 提取文本中的中文


主要是通过中文编码范围匹配

# -*- coding: utf-8 -*-
import re
import sys

reload(sys)
sys.setdefaultencoding("utf8")

def translate(str):
    # 处理前进行相关的处理 包括转换成 Unicode 等
    line = str.strip().decode('utf-8', 'ignore')
    # 中文的编码范围是 \u4e00 到 \u9fa5
    p2 = re.compile(ur'[^\u4e00-\u9fa5]')
    zh = " ".join(p2.split(line)).strip()
    zh = ",".join(zh.split())
    # 经过相关处理后得到中文的文本
    outStr = zh
    return outStr
阅读全文