Python 拾遗2

本文是上一篇文章 python 拾遗 的延续,继续整理 python 的一些使用技巧,以及一些可能被忽略的细节

注意: 以下讨论主要为 Python2.7 版本, Python 3 的内容有待跟进

Read on →

Python 拾遗

整理 python 使用的一些技巧,以及一些可能被忽略的细节,很多在文档可以查找到的内容将不会过多的描述,更多以外链的形式存在。

注意: 以下讨论主要为 Python2.7 版本, Python 3 的内容有待跟进

Read on →

Puppet使用笔记

本文主要介绍使用 puppet 过程中遇到的问题和解决方法。

同步文件

先介绍一下基本环境,master 和 client 所在机器都是 Ubuntu Server 12.04,使用 puppetlab 官方源安装,参考 Using the Puppet Labs Package Repositories,puppet的版本:

1
2
$ puppet --version
3.5.0-rc3

下边介绍同步文件遇到的一个小问题。首先服务端已经对客户端完成了验证,现在需要从服务端向客户端同步文件。创建一个类,然后添加 init.pp 文件

Read on →

Making Ebooks of Pro Git

Pro Git 是一本用来学习 git 使用很不错的书,从 progit 这个开源项目可以获得这本书的全部内容,下边介绍在 Ubuntu Server 12.04 环境下制作电子书的过程。

安装依赖

1. ruby, rubygems

参考 Ruby-China 的 wiki

2. rdiscount

markdown 使用的模板,通过 rubygems 安装

1
$ gem install rdiscount

3. calibre

calibre 是一款开源的电子书管理软件,生成 epub 或 mobi 格式需要安装。

1
$ sudo apt-get install calibre
Read on →

APScheduler 源码阅读笔记

概述

APScheduler 是由 python 实现的一个轻量级任务调度器,它可以按照一定间隔(IntervalTrigger)、指定时间(2.1中的SimpleTrigger/3.0中的DateTrigger)或者以类似 cron(CronTrigger) 的形式触发待执行任务(即调用函数或者调用 python 的 callable 对象)。现在 pypi 上的稳定版是 APScheduler 2.1.1,3.0 版本在 class Scheduler 中移除了针对不同 trigger 的 add_trigger_job() 接口,统一为 add_job(),但是底层实现变化不大。我主要看了 2.1.1 的代码。代码很简洁,加起来一共2049行。

模块组织

  • Scheduler 调度器的核心部分,负责对 job 的管理和调度,用户使用添加/移除任务,启动调度器都通过 Scheduler 提供的接口完成。

  • Job 封装了需要调度的任务,每一个 Job 实例是在 Scheduler 添加 job 时被初始化,具体的初始化参数决定了调度被触发的形式(3类不同的trigger)。

  • Trigger 包含 SimpleTrigger,IntervalTrigger和 CronTrigger 三个类。Trigger 的作用就是计算下一次触发任务的时间。

  • JobStore 抽象基类,针对任务存储的介质有多个实现,包括基于内存(RAMJobStore)、使用shelve的简单持久化存储(ShelveJobStore)、使用数据库存储(RedisJobStore,MongoDBJobStore)等。如果不指定参数默认使用 RAMJobStore,使用持久化的 JobStore 的目的是在 Scheduler 重启之后能够恢复原有的任务调度。

底层实现

从分析 Scheduler 类入手,首先看项目中自带的example:

Read on →

Xenserver 使用小结

手头四台服务器,准备搭建一个小的云平台,了解了几种不同的方案,包括Vmware Esxi,Xen,OpenStack 等。先把各种方法都试一试,然后确定一个具体实施。之前有使用过 Vmware ESXi,虽说 ESXi 可以免费使用,但是 Vmware 浓厚的商业气息让我有种道不同不相为谋的感觉。XenServer 最近有开源,于是昨天花了一个下午尝试了一下。

安装 XenServer 和 XenCenter

首先去官网下载 XenServer 的镜像文件,我下载了 6.2.0 版本。XenServer 本身其实就是一个 Linux 操作系统,于是服务器直接通过启动 bios 引导安装 XenServer,安装过程中配置好 root 的密码以及网络信息,这样就可以通过管理工具管理 XenServer 了。

使用的管理工具是 Windows 版的,貌似有 Linux 版本的OpenXenCenter,我没有试验。进入 XenCenter,服务器是四网卡,现在接了0,2号网卡。2号网卡连接外网,配有有一个 166.111.xx.yy的 ip。0号网卡接内部网络,ip 设为 192.168.10.254。配置如下图:

Read on →