多台linux服务器的集中统一批量布署管理, 用什么工具最好呢?

简介:

cfengine、 puppet、 func哪种会好些呢?

我看下网上介绍的这些资料吧

这些之后一一贴上相关的资料

 

 

 cfengine 基本配置
文字太多跳转下面的页面查看
 
 

配置管理工具Puppet简介、安装 (转)

本文转自:http://www.yoyotown.com/?tag=cfengine

前言:

系统管理员经常陷入一系列的重复任务中:如升级软件包、管理配置文件、系统服务、cron任务以及添加新的配置、修复错误等。这些任务通常是重复低 效的,解决这类任务的第一反应是让他们自动化,于是出现了定制脚本。由于环境复杂,定制脚本和应用程序一再被重复开发,并且很难适合多种平台,灵活性和功 能也很难保证,于是像Puppet这样的自动化配置管理工具便出现了。

在开源世界里,有很多配置工具可供选择,这个领域一些关键的产品有:

Puppet(http://puppet.reductivelabs.com/):

  • Ruby写成的配置管理工具,使用C/S架构,使用declarative language配置客户端。

Cfengine(http://www.cfengine.org):

  • 最先发布的开源配置工具之一,1993年发布,同样是C/S架构,通常应用于教育机构。

LCFG(http://www.lcfg.org/):

  • C/S架构的配置管理工具,使用XML定义配置。

Bcfg2

  • Python编写的C/S架构的配置管理工具,使用规格书和客户机响应配置目标主机。
SmartFrog(http:// www.smartfrog.org/):

func (https://fedorahosted.org/func/)

本文档致力于描述使用Puppet管理你的主机、应用程序、后台程序和各种服务。

Puppet简介:

1. Puppet的用途

Puppet是开源的基于Ruby的系统配置管理工具,依赖于C/S的部署架构。主要开发者是Luke Kanies,遵循GPLv2版权协议。从1997年开始Kanies参与UNIX的系统管理工作,Puppet的开发源于这些经验。因为对已有的配置工 具不甚满意,从2001年到2005年间,Kanies开始在Reductive实验室从事工具的开发。很快,Reductive实验室发布了他们的旗舰 产品——Puppet。

2. Pupput的特性

许多系统配置管理工具工作的方式非常类似,如cfengine。是什么让Puppet与众不同?

Puppet的语法允许你创建一个单独脚本,用来在你所有的目标主机上建立一个用户。所有的目标主机会依次使用适用于本地系统的语法解释和执行这个 模块。举例:如果这个配置是在Red Hat服务器上执行,建立用户使用useradd命令;如果这个配置是在FreeBSD主机上执行,使用的是adduser命令。

Puppet另一个卓越的地方是它的灵活性。源于开源软件的天性,你可以自由的获得Puppet的源码,如果你遇到问题并且有能力的话,你可以修改 或者加强Puppet的代码去适用于你的环境。另外,社区开发者和捐献者还在不断增强Puppet的功能。一个大的开发者和用户社区也致力于提供 Puppet的文档和技术支持。

Puppet也是易于扩展的。定制软件包的支持功能和特殊的系统环境配置能够快速简单的添加进Puppet的安装程序中。

3. Puppet的工作模式

Puppet是一个C/S架构的配置管理工具,在中央服务器上安装puppet-server软件包(被称作Puppet master)。在需要管理的目标主机上安装puppet客户端软件(被称作Puppet Client)。当客户端连接上Puppet master后,定义在Puppet master上的配置文件会被编译,然后在客户端上运行。每个客户端默认每半个小时和服务器进行一次通信,确认配置信息的更新情况。如果有新的配置信息或 者配置信息已经改变,配置将会被重新编译并发布到各客户端执行。也可以在服务器上主动触发一个配置信息的更新,强制各客户端进行配置。如果客户端的配置信 息被改变了,它可以从服务器获得原始配置进行校正。

4. Puppet的未来

最后,Puppet是一个年轻的工具,仍然处于开发和发展中。Puppet社区快速壮大,并且许多新的想法不断融入,促使开发、更新和模块每天都在 呈现。

安装配置:

1. PuppetRedHat/CentOS系 统上安装

Puppet是基于Ruby写成的,所以安装前要准备好Ruby环境。在中心的Server上安装puppet-server包,并运行 puppetmasterd进程;在被管理机上安装puppet包,并运行puppetd进程。另外,在每台主机上配置好自己的hostname,之后每 台机器要以hostname区分。

1). 安装ruby环境:

yum install ruby ruby-rdoc

2). 安装puppet

Server端安装:

 wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

rpm -Uvh epel-release-5-4.noarch.rpm

yum install puppet-server

chkconfig --level 2345 puppetmaster on

修改hosts,添加下面行:

Vi /etc/hosts

172.16.228.30   puppet.sina.com.cn puppet

172.16.228.29   web1.sina.com.cn web1

客户端安装:

 wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

rpm -Uvh epel-release-5-4.noarch.rpm

yum install puppet

chkconfig --level 2345 puppet on

修改hosts,添加下面行:

Vi /etc/hosts

172.16.228.30   puppet.sina.com.cn puppet

172.16.228.29   web1.sina.com.cn web1

3). 启动puppet

Server端首次运行前,编辑/etc/puppet/manifests/site.pp文件,内容可以用最基本的:

# Create “/tmp/testfile” if it doesn’t exist.

class test_class {

file { “/tmp/testfile”:

ensure => present,

mode => 644,

owner => root,

group => root

}

}

# tell puppet on which client to run the class

node web1.sina.com.cn {

include test_class

}

启动Server端:

service puppetmaster start

启动客户端:

/etc/init.d/puppet once -v

这时客户机会去连server,但是由于连接是在ssl上的,而Server还没有sign过客户端的cert,客户机被断开。

到Server端执行:puppetca --list,会显示等待签名的客户端的主机名,执行:puppetca -sign <客户端主机名> 即可为其签名。

在Server端为web1.sian.com.cn授权:

puppetca --list

web1.sian.com.cn

puppetca --sign web1.sian.com.cn

这时再到客户机上启动puppetd,即可看到客户在正常地连接server,并且应用Server上为客户端定制的配置策略。

启动客户端:

/etc/init.d/puppet once -v

4). 测试:

也可以将日志直接打印到终端上进行测试:

Server端:puppetmasterd -d --no-daemonize -v --trace

客户端:puppetd --test --trace --debug

2. puppet配置文件

主配置文件(puppet.conf):

1). 配置文件命名空间:

main 通用配置选项

puppetd 客户端配置选项

puppetmasterd 服务端配置选项

2). main命名空间选项:

confdir 配置文件目录,默认在/etc/puppet

vardir 动态数据目录,默认在/var/lib/puppet

logdir 日志目录,默认在/var/log/log

rundir puppet PID目录,默认在/var/run/puppet

statedir state目录,默认在$vardir/state

statefile state文件,默认在$statedir/state.yaml

ssldir SSL证书目录,默认在$vardir/ssl

trace 发生错误时显示跟踪信息,默认false

filetimeout 检测配置文件状态改变的时间周期,单位秒,默认15秒

syslogfacility 指定syslog功能为user级,默认为daemon级

3). puppetmasterd命名空间选项:

user 后台进程执行的用户

group 后台进程执行的组

mainfestdir mainfests文件存储目录,默认为$confdir/mainfests

mainfest mainfest站点文件的名字,默认为site.pp

bindaddress 后台进程绑定的网卡地址接口

masterport 后台进程执行的端口,默认为8140

4). puppet命名空间选项:

server puppet puppet服务器名,默认为puppet

runinterval seconds puppet应用配置的时间间隔,默认1800秒(0.5小时)

puppetdlockfie file puppet lock文件位置,默认$statedir/puppetdlock

puppetport port 后台进程执行的端口,默认8139

文件服务配置文件(fileserver.conf):

[files]

path /var/lib/puppet/files

allow 121.14.1.*

allow 60.28.228.0/24

allow *.house.sina.com.cn

deny *.sina.com.cn

path定义文件存放路径,通过allow/deny来控制访问权限。

3. puppet命令集

 

1). puppet 用于执行用户所写独立的mainfests文件

# puppet -l /tmp/manifest.log manifest.pp

2). puppetd 运行在被管理主机上的客户端程序

# puppetd –server puppet.leju.com

3). puppetmasterd 运行在管理机上的服务器程序

# puppetmasterd

4). puppetca puppet认证程序

# puppetca -l

pclient.leju.com

# puppetca -s pclient.leju.com

5). puppetrun 用于连接客户端,强制运行本地配置文件

# puppetrun -p 10 –host host1 –host host2 -t remotefile -t webserver

6). filebucket 客户端用于发送文件到puppet file bucket的工具

# filebucket -b /tmp/filebucket /my/file

7). ralsh 转换配置信息到puppet配置代码

# ralsh user luke

user { ‘luke’:

home => ‘/home/luke’,

uid => ‘100′,

ensure => ‘present’,

comment => ‘Luke Kanies,,,’,

gid => ‘1000′,

shell => ‘/bin/bash’,

groups => ['sysadmin','audio','video','puppet']

}

8). puppetdoc 打印puppet参考文档

# puppetdoc -r type > /tmp/type_reference.rst

# puppetdoc –outputdir /tmp/rdoc –mode rdoc /path/to/manifests

# puppetdoc /etc/puppet/manifests/site.pp

官网 问题解答http://projects.puppetlabs.com/issues/3126

 

 

 

例子


1、同步目录:

file {"/qeedoodb/setup/package":
        source =>"puppet://$puppetserver/package",
        recurse =>"true", #递归检索文件,同步目录时设为true
        owner =>"root",
        group =>"root",
        mode =>"744",
        purge =>"true", #保持和source完全一致。类似rsync的 --delete参数
}

2、同步文件:

file { "/qeedoodb/package/2.txt":
        source => "puppet://$puppetserver/package/2.txt",
        owner => "root",
        group => "root",
        mode => 0644,
}

 需要配置/etc/puppet/fileserver.conf

 

[package]
  path /etc/puppet/client_conf/package        存放同步文件的路径
  allow *                 #指所有的IP都可访问

[code]
 path /etc/puppet/client_conf/code
  allow *

 

 

部署Func/Certmaster平台

转自刘天斯
http://blog.liuts.com/post/186/

Func简介
      Func是由红帽子公司以Fedora平台统一网络控制器 Func(Fedora Unified Network Controller https://fedorahosted.org/func),目的是为了解决这一系列统一管理监控问题而设计开发的系统管理基础框架。 它是一个能有效的简化我们多服务器系统管理工作的工具,它很容易学习、很容易使用、也很容易被扩展,它功能强大而我们只需要非常非常少的配置和维护。
    Func分为master及slave两部分,master为主控端,slave为被控端。以下为两部分的安装配置说明
     FUNC模块学习笔记
========================Func 2.5版本安装文档[Master]=========================
环境要求

Linux2.6内核
python2.5或以上(建议源码安装,系统自带的python2.3、2.4对func支持不好)
 


下载软件包


wget http://people.fedoraproject.org/~alikins/files/certmaster/certmaster-0.25.tar.gz
wget http://people.fedoraproject.org/~alikins/files/func/func-0.25.tar.gz
wget http://ovh.dl.sourceforge.net/sourceforge/pyopenssl/pyOpenSSL-0.9.tar.gz
 

安装

tar -zxvf pyOpenSSL-0.9.tar.gz
cd pyOpenSSL-0.9
/usr/local/bin/python setup.py install

tar -zxvf certmaster-0.25.tar.gz
cd certmaster-0.25
/usr/local/bin/python setup.py install

tar -zxvf func-0.25.tar.gz
cd func-0.25
/usr/local/bin/python setup.py install安装

ln -s /usr/local/bin/certmaster /usr/bin/certmaster
ln -s /usr/local/bin/certmaster-request /usr/bin/certmaster-request
ln -s /usr/local/bin/certmaster-ca /usr/bin/certmaster-ca
ln -s /usr/local/bin/certmaster-sync /usr/bin/certmaster-sync

ln -s /usr/local/bin/funcd /usr/bin/funcd
ln -s /usr/local/bin/func /usr/bin/func
ln -s /usr/local/bin/func-create-module /usr/bin/func-create-module
ln -s /usr/local/bin/func-inventory /usr/bin/func-inventory
ln -s /usr/local/bin/func-transmit /usr/bin/func-transmit
ln -s /usr/local/bin/func-build-map /usr/bin/func-build-map
 

配置

vi /etc/certmaster/certmaster.conf
[main]
autosign = no
listen_addr =

#证书交换通讯端口
listen_port = 1998

cadir = /etc/pki/certmaster/ca
cert_dir = /etc/pki/certmaster
certroot = /var/lib/certmaster/certmaster/certs
csrroot = /var/lib/certmaster/certmaster/csrs
cert_extension = cert
sync_certs = False

vi /etc/func/minion.conf
[main]
log_level = DEBUG
acl_dir = /etc/func/minion-acl.d

listen_addr =

#(Func通讯端口
listen_port = 1999
minion_name =
 


启动服务
service certmaster start


=============================2.5版本安装文档[slave]=========================
下载软件包

wget http://people.fedoraproject.org/~alikins/files/certmaster/certmaster-0.25.tar.gz
wget http://people.fedoraproject.org/~alikins/files/func/func-0.25.tar.gz
wget http://ovh.dl.sourceforge.net/sourceforge/pyopenssl/pyOpenSSL-0.9.tar.gz
 

安装

tar -zxvf pyOpenSSL-0.9.tar.gz
cd pyOpenSSL-0.9
/usr/local/bin/python setup.py install

tar -zxvf certmaster-0.25.tar.gz
cd certmaster-0.25
/usr/local/bin/python setup.py install

tar -zxvf func-0.25.tar.gz
cd func-0.25
/usr/local/bin/python setup.py install

ln -s /usr/local/bin/certmaster /usr/bin/certmaster
ln -s /usr/local/bin/funcd /usr/bin/funcd
 

配置

vi /etc/certmaster/certmaster.conf
[main]
autosign = no
listen_addr =

#与master端口保持一致
listen_port = 1998
cadir = /etc/pki/certmaster/ca
cert_dir = /etc/pki/certmaster
certroot = /var/lib/certmaster/certmaster/certs
csrroot = /var/lib/certmaster/certmaster/csrs
cert_extension = cert
sync_certs = False

vi /etc/certmaster/minion.conf
[main]
certmaster = func.master.server.com

#与master端口保持一致
certmaster_port = 1998
log_level = DEBUG
cert_dir = /etc/pki/certmaster

vi /etc/func/minion.conf
[main]
log_level = DEBUG
acl_dir = /etc/func/minion-acl.d

listen_addr =

#与master端口保持一致
listen_port = 1999

#slave主机名
minion_name =NN2007-08-048
 

启动服务
/sbin/chkconfig --level 345 certmaster on
/sbin/service certmaster start

/sbin/chkconfig --level 345 funcd on
/sbin/service funcd start

*安装完毕后一定要重启服务器操作系统,不然服务器端有时看不到该主机的证书请求。

=============================Master端常用操作==============================

func "*" call --forks="5" command run "date" 启用5个进程来执行date命令。
certmaster-ca --list 可以查看未签名的计算机名。
certmaster-ca --sign NN2004-02-008 对slave服务器进行签名(证书交换)。
certmaster-ca --sign `certmaster-ca --list ` 如证书请求的服务器比较多,可以这样一下子搞定。
certmaster-ca -c NN2004-02-008 删除该主机证书
 


=============================防火墙配置==============================

Slave主机需对master开放1998(certmaster)、1999(func)端口
master需对所有Slave主机开放1998(certmaster)端口

 

本文转自 holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/418040

相关文章
|
12天前
|
Rust Ubuntu Java
[Linux工具] Makefile
Makefile是Linux环境下用于自动化编译和链接程序的配置文件,常用于简化大型项目的编译流程。通过定义目标文件、依赖文件及生成命令,Makefile能高效管理编译任务。它不仅适用于C语言项目,还可扩展到其他编程语言和非编程任务中。
46 20
[Linux工具] Makefile
|
11天前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
52 28
|
8天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
23 11
|
29天前
|
安全 网络协议 Linux
结合 `nc` 工具利用笑脸漏洞(Smile Bug)攻击 Metasploitable2 Linux
本文介绍如何使用 `nc`(Netcat)工具结合笑脸漏洞(Smiley Bug)攻击 Metasploitable2 Linux 靶机。首先概述了 `nc` 的基本功能和高级用法,包括建立连接、监听端口、文件传输等操作。接着详细描述了笑脸漏洞的原理及其在网络攻防中的应用,展示了通过 `nc` 发送恶意输入检测漏洞的方法。最后结合 Python 脚本实现更复杂的攻击场景,并强调了合法性和环境隔离的重要性。
48 13
|
19天前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
2月前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
142 6
W9
|
3月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
249 1
|
2月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
3月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
48 0
|
25天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
355 87

热门文章

最新文章