如何使用 Example42 的 Puppet 模块

标签: Linux | BSD | Solaris puppet puppet module | 发表时间:2012-05-04 19:01 | 作者:vpsee
出处:http://www.vpsee.com

现在我们差不多移植了100多台服务器到虚拟机,中间合并了很多功能类似的服务器(历史遗留问题)到同一虚拟机,并且整个配置过程完全用 Puppet 代码化,也就是说有一天我们实验室机房遭遇物理毁灭(刚看完 Battleship,有点激动~),只要再给我们合适的硬件设备(异地有备份数据)我们应该能在6小时内恢复整个基础设施(OS, DNS, DHCP, Provision, Firewall, Squid, Web, Database, LDAP, Email, VPN, Kerberos, NFS, HPC, Cloud, Monitor, Backup, …)。自从 Puppet/Chef 之类的自动化配置工具流行以后,现在甚至有了一个新职位叫做 DevOps.

安装好 Puppet 后,就可以开始自己写配置代码了,当然也可以在网上找到别人的配置代码直接拿过来用,更妙的是一些通用的 Puppet 配置代码,比如配置一台 Nginx/PHP/MySQL、配置 NFS、配置 DHCP、配置 DNS、配置 OpenNebula 等等已经有人写成模块了,直接拷过来就可以用了。Example42 就是这样的开源 Puppet 模块大集合,包含了众多常用的服务器配置。

首先去 Example42 下载 Puppet 模块代码:

$ git clone http://github.com/example42/puppet-modules.git

看看 Example42 包含了哪些模块吧,几乎常用的都有,不用自己亲自去写配置:

$ cd puppet-modules/
$ ls
DOCS		example42	mysql		puppi		synbak
Example42-tools	exim		nagios		rails		sysctl
LICENSE		firewall	network		redis		sysklogd
README.rdoc	foo		nfs		repo		syslog-ng
Rakefile	foreman		nginx		resolver	tftp
activemq	git		nrpe		rootmail	timezone
apache		haproxy		ntp		rpmbuild	tomcat
apt		hardening	openldap	rsync		trac
autofs		hosts		openntpd	rsyslog		users
backup		iptables	openssh		samba		vagrant
bind		jboss		openvpn		sarg		varnish
clamav		jenkins		oracle		selinux		virtualbox
cobbler		lighttpd	pam		sendmail	vmware
collectd	link		php		snmpd		vsftpd
common		logrotate	phpsyslogng	spamassassin	wordpress
concat		lsb		portmap		splunk		xinetd
controltier	mailscanner	postfix		sqlgrey		yum
cron		mailx		postgresql	squid		zip
dashboard	mcollective	powerdns	squirrelmail
dhcpd		monit		psad		ssh
dovecot		monitor		psick		ssmtp
drupal		munin		puppet		stdlib42

把上面的 Example42 代码移到 /etc/puppet 目录,然后修改 Puppet 服务器的配置,加上 puppet-modules 模块路径,别忘了重启 puppetmaster 服务:

# mv puppet-modules /etc/puppet

# vi /etc/puppet/puppet.conf
...
[master]
    modulepath = /etc/puppet/puppet-modules

# /etc/init.d/puppetmaster

写个配置文件测试一下,自动配置 PHP + Apache + MySQL:

# vi /etc/puppet/manifests/node.pp

node 'web.vpsee.com' {
    include apache

    include php
    include php::pear
    include php::apc
    php::module { mysql: }
    php::module { curl: }
    php::module { gd: }
    php::module { idn: }
    php::module { imagick: }
    php::module { imap: }
    php::module { mcrypt: }
    php::module { ming: }
    php::module { ps: }
    php::module { pspell: }
    php::module { recode: }
    php::module { snmp: }
    php::module { tidy: }
    php::module { xmlrpc: }
    php::module { xsl: }
    php::module { ldap: }

    include mysql
}

在要配置的机器上执行下面一条命令就自动装上 Apache/PHP/MySQL 了,再不用自己手动去安装配置了:

# puppet agent --test --server=master.vpsee.com

相关 [example42 puppet 模块] 推荐:

如何使用 Example42 的 Puppet 模块

- - vpsee.com
自从 Puppet/Chef 之类的自动化配置工具流行以后,现在甚至有了一个新职位叫做 DevOps.. 安装好 Puppet 后,就可以开始自己写配置代码了,当然也可以在网上找到别人的配置代码直接拿过来用,更妙的是一些通用的 Puppet 配置代码,比如配置一台 Nginx/PHP/MySQL、配置 NFS、配置 DHCP、配置 DNS、配置 OpenNebula 等等已经有人写成模块了,直接拷过来就可以用了.

维基媒体公开服务器配置文件Puppet

- ArmadilloCommander - Solidot
维基媒体基金会公开了服务器配置软件Puppe的配置文件. 配置管理系统Puppet被用于管理所有的维基媒体服务器. 维基媒体表示公开配置文件,旨在与世界分享知识,将运营当成是一种软件开发项目. 它表示配置文件的发布是Wikimedia Test/Dev实验室项目的第一步,目标是创造维基服务器集群的一个克隆,让用户能参与运营维基百科等网站.

Puppet 3.2.1发布,集中式系统管理工具

- - 开源中国社区最新新闻
Puppet,是基于Ruby的一个工具,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件. Puppet的简单陈述规范语言的能力提供了强大的classing制定了主机之间的相似之处,同时使他们能够提供尽可能具体的必要的,它依赖的先决条件和对象之间的关系清楚和明确.

Puppet 3.0.2 发布,集中式系统管理工具

- - 开源中国社区最新新闻
Puppet,是基于Ruby的一个工具,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件. Puppet的简单陈述规范语言的能力提供了强大的classing制定了主机之间的相似之处,同时使他们能够提供尽可能具体的必要的,它依赖的先决条件和对象之间的关系清楚和明确.

Nginx模块开发入门

- ripwu - 博客园-EricZhang's Technology Blog
Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%. 与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.

nginx防hashdos模块释出

- - 五四陈科学院-坚信科学,分享技术
以下内容由 [五四陈科学院]提供. hashdos这个事,严格意义上不是各种语言的错了(不过perl的确处理得很好),但是用nginx来擦屁股要干净些. 借鉴tomcat的作法,实现了下面这个nginx-http-hashdos-module,通过设置hashdos(默认on)的开关和body_max_count(默认值1000),对nginx后面的服务进行安全防护,相比对php或者java进行patch,这或许是最好的办法了.

追加安装sticky模块

- - 开源软件 - ITeye博客
下载地址: http://code.google.com/p/nginx-sticky-module/downloads/list. 进入nginx-1.9.3目录. /ngx_http_sticky_module.c:333: 警告:赋值时将整数赋给指针,未作类型转换. ake[1]: *** [objs/addon/nginx-sticky-module-1.1/ngx_http_sticky_module.o] 错误 1.

开发一个Nginx模块

- - 互联网 - ITeye博客
用C语言写一个ngx_http_hello_module.c的文件. ngx_null_command }; // 不设置在HTTP初始化完成的,则不需要设置回调函数 static ngx_http_module_t ngx_http_hello_module_ctx = {. NULL }; // 定义http的hello模块 ngx_module_t ngx_http_hello_module = {.

jQuery 模块介绍与 jQuery 插件的深度模块化

- zhibin - 岁月如歌
大名鼎鼎的 jQuery 就不多介绍了,详细介绍推荐官网:jquery.com. 阮一峰最近整理的文章也不错,推荐:jQuery 设计思想, jQuery 最佳实践. jQuery 是 DOM 操作类库,其核心功能是找到 DOM 元素并对其进行操作. 拿 jQuery 与 YUI, Dojo 等框架相比是不公平的,就如拿轮胎和汽车相比一样.