puppet安装和配置

Puuppet是一个开源的新一代的集中化配置管理工具,它由自己所声明的语言表达系统配置,通过客户端与服务端直接的连接,维护着关系库。

Puppet是一个跨平台的集中化配置管理系统,它使用自由的描述语言,可管理配置文件、用户、Cron、软件包,系统服务等,Puppet把这些统称为“资源”。

Puppet是基于Ruby语言并使用Apache协议授权的开源软件,它既能以客户端-服务端(C/S)的方式运行,也能独立运行。客户端默认每30分钟会与服务端确认一次更新,以确保配置的一致性。

Puppet的安装步骤

1)安装Ruby、Ruby-libs和Ruby-shadow,用于进行用户和组管理。

2)安装Facter、Puppet和Puppet-server。

3)设置主机名、域名解析或指定hosts。

4)通过命令/etc/init.d/puppetmaster start启动Server或者以非进程的方式启动Server。通过命令puppet master --no-daemonize --verbose可以查看到相关日志与输出。

5)在客户端配置文件Puppet.conf中指定Server端,在终端运行Puppet agent-test命令或直接运行puppet agent --test --server server.domain.com 与Master交互完成签名认证。

6)在Server上配置节点信息,告诉客户端要做什么。

7)检查语法是否正确(通长采用puppet parser validate test.pp命令进行语法检查)。

8)客户端再次运行配置(puppet agent --test)

一、 本文以Centos6.4操作系统下,安装和配置Puppet。

(1)根据操作系统版本配置Yum源

rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm 3

(2)在服务器端安装Puppet。运行如下代码会自动匹配安装Facter等相关依赖包

yum -y install puppet-server

运行如下命令来检查Puppet的安装

[[email protected] ~]# puppet -V
3.7.3
[[email protected] ~]# facter -v
2.3.0

(3)在客户端安装Puppet。

yum -y install puppet

二、配置Puppet

1)服务的启用方法如下:

主:[[email protected] ~]# /etc/init.d/puppetmaster 
Usage: /etc/init.d/puppetmaster {start|stop|status|restart|reload|force-reload|condrestart|genconfig}
客:[[email protected] ~]# /etc/rc.d/init.d/puppet 
Usage: /etc/rc.d/init.d/puppet {start|stop|status|restart|reload|force-reload|condrestart|once|genconfig}

2)设定主机名指定hosts

[[email protected] ~]# cat /etc/hosts
192.168.254.2             node1.jiabin.com
192.168.254.5             node2.jiabin.com

[[email protected] ~]# cat /etc/hosts
192.168.254.2             node1.jiabin.com
192.168.254.5             node2.jiabin.com

3)配置防火墙。

Puppet会监听8140端口,因此我们需要开放8140端口

 iptables -A INPUT -p tcp --dport 8140 -j ACCEPT

4)配置一个文件进行测试

[[email protected] ~]# cat /etc/puppet/manifests/site.pp 

node default {
        file {
                "/tmp/helloworld.txt": content => "hello, world";
        }
}

5)客户端发起验证,命令如下

[email protected] ~]# puppet agent --server node1.jiabin.com --test
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for node2.jiabin.com
Info: Certificate Request fingerprint (SHA256): 9D:26:8A:44:54:D4:B0:2A:73:0B:B6:BE:72:C3:E4:19:3C:13:CA:3F:C7:B8:03:99:69:70:06:9A:C1:DF:AD:69
Info: Caching certificate for ca
Exiting; no certificate found and waitforcert is disabled

Agent发起了一个证书验证请求并且使用一个私钥来加密连接。Puppet使用SSL证书来验证Master和Agent之间的连接。Agent会持续每两分钟检查一次是否存在被签名的证书。

6)服务器完成验证。

[[email protected] ~]# puppet cert --list
  "node2.jiabin.com" (SHA256) 9D:26:8A:44:54:D4:B0:2A:73:0B:B6:BE:72:C3:E4:19:3C:13:CA:3F:C7:B8:03:99:69:70:06:9A:C1:DF:AD:69
[[email protected] ~]# puppet cert sign node2.jiabin.com
Notice: Signed certificate request for node2.jiabin.com
Notice: Removing file Puppet::SSL::CertificateRequest node2.jiabin.com at ‘/var/lib/puppet/ssl/ca/requests/node2.jiabin.com.pem‘

7)客户端再次运行配置。

[[email protected] ~]# puppet agent --server node1.jiabin.com --test
Info: Caching certificate for node2.jiabin.com
Info: Caching certificate_revocation_list for ca
Info: Caching certificate for node2.jiabin.com
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node2.jiabin.com
Info: Applying configuration version ‘1419922755‘
Notice: Finished catalog run in 0.31 seconds

8)验证配置

[[email protected] ~]# more /tmp/node2.txt 
Hello World!

如果遇到签名故障,最直接的一种方法。删除主客ssl整个目录

rm -rf /var/lib/puppet/ssl

三、配置一个测试节点

1)创建test模块。模块目录为test,class类名也必须是test。test类里有一个File资源,File资源的目的是在/tmp目录中创建一个以Node2主机名的txt文件,其内容为"Hello World!"

主节点:

[[email protected] ~]# mkdir -p /etc/puppet/modules/test/{manifests,templates,files}
[[email protected] ~]# vim /etc/puppet/modules/test/manifests/init.pp 

class test {
    file { "/tmp/$hostname.txt": content => "Hello World!";}
}

2)在模块配置文件中定义一个变量“$hostname",需要将变量传递给ERB模块文件中,

[[email protected] ~]# vim /etc/puppet/modules/test/templates/test.erb 

hostname <%= fqdn %>

3)创建测试节点

[[email protected] ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp 

node ‘node2.jiabin.com‘ {
include test
include httpd
}

4)载入测试节点到Puppet

[[email protected] ~]# vim /etc/puppet/manifests/site.pp 

import "nodes/node2.jiabin.com.pp"

node default {
        file {
                "/tmp/helloworld.txt": content => "hello, world";
        }
}
~

import指令告诉Puppet载入nodes目录中所有以.pp结尾的文件。

四、检测配置文件

检测语法分两部分,第一步是在Puppet Master服务端采用puppet parser validate命令,

第二步是在Puppet Agent客户端采用--noop参数检测语法及代码。

[[email protected] ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp

linux中没显示就是最好的结果

客户端检测

[[email protected] ~]# puppet agent --test --server node1.jiabin.com --noop
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node2.jiabin.com
Info: Applying configuration version ‘1419922755‘
Notice: Finished catalog run in 0.33 seconds

增加httpd模块

1)创建httpd模块相应的目录

[[email protected] ~]# mkdir -p /etc/puppet/modules/httpd/{manifests,templates,files}

2)编辑httpd模块文件,指定资源配置

[[email protected] ~]# vim /etc/puppet/modules/httpd/manifests/init.pp 

class httpd {
yumrepo  { "repo163":
 descr   => "163 repo",
 baseurl => "http://mirrors.163.com/centos/6/os/x86_64/",
 gpgcheck => "0",
 enabled => "1";
 }

package {
        "httpd":
        ensure => installed,
        require => Yumrepo["repo163"];
        }
}

3)修改node2.jiabin.com.pp,增加httpd模块

[[email protected] ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp 
node ‘node2.jiabin.com‘ {
include test
include httpd
}

4)检查配置文件语法的正确性

[[email protected] ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp

linux中没显示就是最好的结果

5)在客户端运行配置,命令如下:

[[email protected] ~]# puppet agent --server node1.jiabin.com --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node2.jiabin.com
Warning: The package type‘s allow_virtual parameter will be changing its default value from false to true in a future release. If you do not want to allow virtual packages, please exp
   (at /usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:430:in `default‘)
Info: Applying configuration version ‘1419926864‘
Notice: Finished catalog run in 0.85 seconds

出现一个警告,不影响程序运行。可以在服务器端的 pp文件中的package 中加入 :allow_virtual => false,  来解决出现的警告。

[[email protected] ~]# vim /etc/puppet/modules/httpd/manifests/init.pp 

class httpd {
yumrepo  { "repo163":
 descr   => "163 repo",
 baseurl => "http://mirrors.163.com/centos/6/os/x86_64/",
 gpgcheck => "0",
 enabled => "1";
 }

package {
        "httpd":
        ensure => installed,
        require => Yumrepo["repo163"],
        allow_virtual => false;
        }
}

6)检查httpd是否已经成功安装

[[email protected] ~]# rpm -q httpd
httpd-2.2.15-26.el6.centos.x86_64
时间: 2024-10-09 23:51:54

puppet安装和配置的相关文章

puppet安装与配置

puppet是一个为实现数据库中心自动化管理而设计的配置管理软件.基于c/s架构.puppet的服务器端保存着所有的对客户端服务器的配置代码,在puppet里面叫做manifest. 客户端下载manifest之后,可以根据manifest对服务器进行配置,例如软件包管理,用户管理和文件管理等等.这样就把日常的系统管理任务代码化了,代码化的好处是可以分享,保存,避免重复劳动,也可以快速恢复以及快速的大规模部署服务器.同时,manifest可以的根据客户端服务器的配置情况(硬件和软件)来动态生成.

Puppet 安装与配置

在RHEL6.5上安装puppet 10.1.1.33  puppet 服务端     主机名 10.1.1.33.domain.com 10.1.1.34  puppet 客户端     主机名 10.1.1.34.domain.com 本机/etc/hosts配置为: 10.1.1.33 10.1.1.33.domain.com 10.1.1.34 10.1.1.34.domain.com 确认安装ruby相关包 yum -y install ruby ruby-libs ruby-shad

puppet安装于配置与编写简单模块

1.安装Puppet-server.puppet和facter 1 [[email protected] ~]# yum install puppet puppet-server facter -y #系统会自己安装一些ruby依赖包环境 2.配置puppet.conf注意:这个里面配置了两个certname名称,其中[master]中配置的certname是为所有节点认证用的master名称,[agent]中配置的certname是他本身agent的名称,当然不配置默认是和master的名称是

Puppet 安装配置

一.什么是puppet? 1.基于ruby语言开发的系统配置集中管理工具,跨平台 2.一个C/S架构,配置服务端和客户端 puppet依赖于ruby与facter,安装puppet3.x,需要ruby1.8.7版本及以上:facter是一个系统盘点工具,收集主机的一些资料,比如OS.IP.CPU等 3.puppet是一个C/S结构,开源软件,基于Ruby的系统配置管理工具,安装puppet3.x,需要ruby1.8.7版本及以上 4.默认情况下,客户端每隔30分钟连接一次puppet服务端 5.

puppet安装和部署

环境 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.6 (Final) http://downloads.puppetlabs.com/facter/facter-1.5.8.tar.gz http://downloads.puppetlabs.com/puppet/puppet-2.6.1.tar.gz 软件包: [[email protected] tools]# ll 总用量 1532 -rw-r--r--

puppet 安装及核心资源注解

-----本文大纲 简介 工作原理 puppet安装及命令解析 puppet资源类型 --------------------- 一.简介 puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系. puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互.每个客户端

Puppet安装部署篇(二)

前言:上篇写了结合svn钩子做版本控制puppet master代码,后续的操作都要在windows客户端使用svn完成操作,如果直接在服务器端操作,svn的钩子就会出现同步失败和不同步的问题. 解决:pkill svn && svnserve -d -r /data/puppet_co/  #重启操作 1.安装完puppet查看puppet的主配置文件目录: #puppet agent --configprint confdir /etc/puppet 2.设置puppet/puppet

puppet安装使用教程(一)

最近在学习puppet的安装,配置和使用.就从官网上下载了官方文档来看.因为也是刚开始学习puppet,所以咱看着官网的文档一步一步来.官网文档也下载下来上传到51了. http://down.51cto.com/data/1975148   文档地址. 实验准备: 1,前期准备 1)puppet的客户端节点,puppet的管理对象,各节点之间能够相互通讯 2)所有节点的系统时间误差保持在1分钟之内 3)配置好软件的网络yum源或者本地yum源 4)关闭防火墙,selinux 5)保证所有的节点

Puppet 安装与应用

Centos 6.4 安装Puppet   Puppet要求所有机器有完整的域名(FQDN),如果没有 DNS 服务器提供域名的话,可以在两台机器上设置主机名(注意要先设置主机名再安装 Puppet,因为安装 Puppet 时会把主机名写入证书,客户端和服务端通信需要这个证书),因为我配置了DNS,所以就不用改hosts了,如果没有就需要改hosts文件指定. 环境: 采用CentOS-6.4-x64系统,IP地址如下: Master: 192.168.239.128 Client: 192.1