天天看点

Puppet + pssh 批量管理工具

Puppet学习之puppet的安装和配置

               PSSH的安装和使用     

 ===========================================================

PSSH安装 (pssh是一个轻量批量管理工具)

(系统中已经安装有python)

只需要在主节点上安装pssh

下载地址 http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

解压后进入该目录,安装

wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

tar -xvf pssh-2.3.1.tar.gz

cd pssh-2.3.1

python setup.py build

python setup.py install

PSSH配置

配置主要有两项内容,一、从结点的IP列表文件;二、主节点到从节点的ssh无密钥登录

IP列表文件就是将从结点的IP按行存在一个文件里,我给它命名为host_list.txt,里面共有99行,第一行172.16.0.2

下面是ssh无密钥登录

由于好多很多操作需要有sudo权限,所以尽量ssh无密钥登录到从节点的root用户下。

ssh-keygen  (然后按提示输入信息)

ssh-copy-id  –i ~/.ssh/id_rsa.pub [email protected] (将密钥复制到从节点,需要输入密码)

PSSH使用

pscp -h host_list.txt -r source_file_path destination_file_path

#例如将主节点的/home/master/1.txt拷贝到从节点的/home/slave/目录下

pscp -h host_list.txt -r /home/master/1.txt /home/slave/

#pscp是远程拷贝文件,如从主节点将文件分发到所有从节点

pssh -h host_list.txt -P "command"

#例如在从节点建立新目录/home/slave/test

pssh -h host_list.txt -P "mkdir /home/slave/test"

使用PSSH应该会的命令

pssh结合脚本使用比较高效,有以下几个命令可能会用到

sed

cat

重定向 >>与>

expect

======================================================================================

Puppet简介

Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。

Puppet的安装

1. Master的安装

yum -y install ruby ruby-libs ruby-shadow

wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

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

yum -y install puppet puppet-server facter

2. Agent的安装

yum install ruby ruby-libs ruby-shadow

yum -y install puppet facter

         至此如果安装过程不报错的话,puppet已经安装成功了。

Puppet的简单配置

Master的配置

先来看看puppet主目录下都有什么文件已经每个文件是做什么用的:

ls -1 /etc/puppet/

auth.conf       #定义puppet master的acl文件

fileserver.conf   #定义puppet master文件服务器的配置文件

manifests        #puppet脚本主文件目录,site.pp文件必须存在

modules            #puppet模块目录

puppet.conf     #puppet主配置文件

ssl                     #存放ssl证书的目录

刚开始的话, puppet.conf不需要配置就可以满足。

需要更改hosts文件,注意hosts要和主机名对应。

vim  /etc/hosts添加如下内容:

10.1.4.218 puppet.zhang.com puppet

10.1.4.213 node1.zhang.com node1

10.1.4.214 node2.zhang.com node2

大家要根据实际情况加,我这里是一个master,两个agent。

2. Agent的配置

Agent的配置主要是更改agent上的/etc/puppet/puppet.conf文件的[agent]部分。

在agent上vim /etc/puppet/puppet.conf 添加如下配置

server = puppet.zhang.com        #master服务器的地址

runinterval = 3600                       #每隔多久的时间进行自动更新,时间单位为秒

listen = true                         #客户端作为一个服务进行监听,允许其它的机器触发puppet运行允许远程触发puppet的节点配置

puppet的启动和停止

Master的启动和停止

Master的启动

/etc/rc.d/init.d/puppetmaster start

也可以以采用 service puppetmaster start启动

第一次启动建议采用puppet master --verbose --no-daemonize方式启动,有助于测试和调试错误,如果采用后面这种方式,你可以看到启动的整个过程,启动过程会做一些初始化的工作,为master创建本地证书认证中心,证书和key。并打开socket等待client的连接。你可以在/etc/puppet/ssl目录看到相关的文件和目录。

Master的停止

/etc/rc.d/init.d/puppetmaster stop

也可以以采用 service puppetmaster stop停止

更改多选项可以使用/etc/rc.d/init.d/puppetmaster –h查看

2. Agent的启动和停止

Agent的启动

/etc/rc.d/init.d/puppet start

也可以采用service puppet start来启动

调试的时候可以采用

puppet agent --server=puppet.zhang.com --no-daemonize –verbose

的方式来启动,这样启动我们可以看到agent是如何和master建立连接的。

Agent的停止

/etc/rc.d/init.d/puppet stop

也可以采用service puppet stop来停止。

FAQ

连接master的时候出现如下报错:

dnsdomainname: Unknown host

解决办法:检查机器主机名的设置,以及是否添加进hosts。

2.   连接master的时候出现如下报错:

err: Could not request certificate: getaddrinfo: Name or service not known

解决办法:服务器端没有配置hosts域名绑定,在hosts中添加。

3.  连接master的时候出现如下报错:

warning: peer certificate won't be verified in this SSL session

解决办法:服务端还没有返回签发证书,使用puppet cert --list查看

4.  连接master的时候出现如下报错:

err: Could not retrieve catalog from remote server: certificate verify failed

解决办法:客户端和服务器端时间不同步,SSL连接需要依赖主机上的时间是否正确。执行更新时间的命令:/sbin/ntpdate asia.pool.ntp.org

      本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1537803,如需转载请自行联系原作者