Puppet的安装和初配置

一、前言:

Puppet是Puppet Labs基于ruby语言开发的自动化系统配置工具,可以以C/S模式或独立模式运行,支持对所有UNIX及类UNIX系统的批量配置和管理,最新版本也开始支持对Windows操作系统有限的一些管理。

Puppet适用于服务器管理的整个过程,比如初始安装、配置、更新以及系统下线。

Puppet原理:

Puppet的工作细节分成如下几个步骤:  

1、客户端puppetd调用facter,facter会探测出这台主机的一些变量如主机名、内存大小、IP地址等。然后puppetd把这些信息发送到服务端。 

2、服务器端的puppetmaster检测到客户端的主机名,然后会到manifest里面对应的node配置,然后对这段内容进行解析,facter送过来的信息可以作为变量进行处理的,node牵涉到的代码才解析,其它的代码不解析,解析分几个过程:语法检查、然后会生成一个中间的伪代码,然后再把伪代码发给客户机。  

3、客户端接收到伪代码之后就会执行,客户端再把执行结果发送给服务器。  

4、服务器再把客户端的执行结果写入日志。

二、安装:

安装 puppet-Server:yum install puppet,puppet-server  

首先在服务器端和客户端配置好hostname,因为puppet是基于hostname来检测的,同时都要修改hosts文件:  

修改主机名的命令:

cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=master

vim /etc/hosts

192.168.159.151    master.com 

192.168.159.120    slave.com

Puppet 需要 Ruby 的支持,如果要查看命令行帮助的话需要额外 ruby-rdoc 这个软件包:    

yum install puppet-server -y 【这一步为默认安装ruby ruby-libs ruby-rdoc等软件包】  

/etc/init.d/puppetmaster start  

关闭 iptables,关闭selinux  

iptables  -F  

sed -i ‘/SELINUX/S/enforce/disabled/’ /etc/selinux/config

需在puppet.conf中添加一个条目,certname,配置项certname指定了puppet master的名字,如下
[master]
certname=master.com
添加certname配置的目录有两个:它会使证书相关的问题解决起来更容易,解决了在目前许多linux主机上都存在的Ruby SSL代码错误,这个错误导致了我们需要手动指定puppet master的SSL证书使用的名字。同时为我们的puppet创建一个DNS别名,添加到hosts和DNS配置中。
接下来我们需要添加site.pp,它包含了我们想要管理的配置的基本信息。
site.pp文件告诉puppet去哪里寻找并载入指定的客户端配置,这个文件放在/etc/puppet/manifests中,首先创建site.pp,是因为没有它,puppet将拒绝启动。
启动我们的puppetmaster
#systemctl start puppetmaster

添加字段
[main]
server=master.com
之后启动服务
#systemctl start puppet

三、证书申请:

Puppet客户端与服务器端是通过SSL隧道通信的,客户端安装完成后,需要向服务器端申请证书:  

1. 首次连接服务器端会发起证书申请,在客户端执行命令如下:  

puppet agent --server  master.com  --no-daemonize -v -d --noop --test

执行上面的命令,客户端将生成证书,并且把证书签名请求发到服务器端。 

2. 在服务器端可以用puppet cert –list命令查看到申请证书的客户端主机名。  

3. puppet cert  -s命令可以为特定的主机颁发证书,puppet cert –s and –a 表示给所有的主机颁发证书  

例如:puppet cert –s slave.com 为客户端颁发证书。  

四、 验证puppet配置:  

在服务端写个例子测试一下。这个例子作用很简单,用来在客户端的/tmp目录下新建一个 test.txt 文件,内容为:hello,test!在服务端编写代码:【服务器端不需要新建这个文件】  

vim /etc/puppet/manifests/site.pp  

node default {  

file {  

"/tmp/test.txt": content => "helo,test!";  

 }  

}

master针对于slave.puppet.com的配置完成了,然后去agent上执行。

五、客户端测试:
#puppet agent --test --server master.com
此时,客户端将会从服务器下载并执行,在/tmp目录下生成叫做1.txt的文件。

最后查看cat /tmp/test.txt

helo,test!

此时puppet服务器端和客户端安装完毕。

时间: 2024-10-15 07:15:44

Puppet的安装和初配置的相关文章

Puppet的安装和初使用

一个人管一百台服务器的时候,就要用到批量处理工具,这样可以把大量无聊重复的任务一口气完成,之前我一直用pssh,因为pssh就是一个类似for in语句的工作原理,但是这玩意不能保证时时同步服务器组的内容,所以在这一点上puppet更牛,也是现代管理中puppet更受青睐的原因. puppet跟 zabbix一样,也是管理员所操作的中心机是"服务器端",需要安装一个puppet-server ,而被操作的那些机器叫"客户端",每台机器都需要安装一个puppet-cl

puppet初始化安装和配置(puppet自动化系列1)

一.服务器规划 以下均直接yum安装最新版. 服务器操作系统为centos6.2 Puppetmaster1 10.168.32.116 puppstmaster1.jq.com Puppetmaster2 10.168.32.117 puppetmaster2.jq.com Puppet1 10.168.32.120 ag1.jq.com Puppet2 10.168.32.121 ag2.jq.com Puppetca1 10.168.32.118 puppetca1.jq.com Pupp

puppet yum安装配置,简单证书维护

Puppet学习之puppet的安装和配置 一.Puppet简介 Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理.Puppet适用于服务器管的整个过程 ,比如初始安装.配置更新以及系统下线. 二.Puppet的安装 Puppet的安装方式支持源码安装.yum安装以及ruby的gem安装.官网推荐使用yum来安装puppet,方面以后的升级.管理.维护.Cento

Linux puppet的安装配置部署

一.puppet简介 puppet是一个为实现数据中心自动化管理而设计的配置管理软件,能够管理IT基础设施的整个生命周期:供应(provisioning)配置(configuration).联动(orchestration)及报告(reporting).puppet基于C/S架构,类似于zabbiz,有master与agent节点之分.它是一个开源的(谈不上真正的开源,因为有商业版与社区版之分).新一代的.集中化的配置管理工具,由ruby语言研发,它拥有自己的配置语言(PCL,puppet co

puppet简单安装

本次安装使用的操作系统环境:Centos6.5 x86_64,puppet3.8.3 ##服务器端 1.修改主机名(很重要) 服务端和各个客户端都要确保域名能正常解析到对应的服务器上! 可用使用DNS服务,这里就使用修改hosts的方式来简化了. #vim /etc/hosts 192.168.0.26   maseter.puppet.com #vim /etc/sysconfig/network 修改HOSTNAME HOSTNAME=maseter.puppet.com 不想重启的话将临时

[自动化]Puppet服务安装和部署

puppet简介 puppet是一种基于ruby语言开发的Lnux.Unix.windows平台的集中配置管理系统.它使用自有的puppet描述语言,可管理配置文件file.用户user.cron任务.软件包.系统服务等系统实体. puppet依赖于C/S(客户端/服务器)的部署架构.它需要在puppet服务器上安装puppet-server软件包(以下简称master),在需要管理的目标主机上安装puppet客户端软件(以下简称client). 为了保证安全,master和client之间是基

mysql的安装和基本配置

一.mysql的安装和基本配置 1 安装cmake #./configure#make &&make install 2 安装mysql# yum install ncurses* bison*   # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/database/mydata -DSYSCONFDIR=/etc -DTMPDIR=/tmp -DWITH_INNOBASE_STORAGE_ENGINE=1 -

DNS2之bind安装、主从配置同步、子域创建、view配置

主DNS配置从服务器: 我们知道,DNS服务器在网络服务中可能出现故障当机等状况,会导致DNS服务瘫痪,显然在实际的网络应用中我们不希望出现这种状况,所有我们就要配置从服务器来在主DNS服务器出现故障时代替他来工作,然而作为价格昂贵的服务器本身你又不希望出现这种极大的浪费,所有从服务器在实际工作中是和主服务器共同分担DNS解析任务的,这样既解决了服务器故障导致的问题,还可以缓解DNS服务器的压力. 那么要配置一个从服务器我们又该怎么做呢? 前提:我们要为本地配置一个从服务器aolens2.从服务

linux 下安装 mysql 并配置 python 开发环境

1.安装 mysql ,安装过程中将提示设置 root 用户的密码,默认可以设置为 rootadmin . $ sudo apt-get install mysql-server 2.安装 mysql 开发工具(不安装时,安装 MySQL-python 提示错误 "mysql_config not found"). $ sudo apt-get install libmysqld-dev 3.安装 python 的 mysql 库 MySQL-python (首先安装 python-d