puppet配置

1.简介

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

puppet是基于ruby语言并使用Apache洗衣授权的开源软件,它既能以客户端--服务端的方式云修行,也能独立运行。客户端默认每30分钟与服务端确认一次更新,以确保服务的一致性

puppet主要由luke kanies和他的公司puppet labs开发,于2005年正式面世。目前最新版本为3.0,最新版本的puppet不支持ruby1.8.5以下的语言

目前使用puppet的企业:oracle,google,redhat,新浪,阿里巴巴,百度,腾讯等。

2.实验环境:

puppet-server:192.168.32.200

puppet-client:192.168.32.202

在master上和agent修改hosts文件

192.168.32.200  puppet-server

192.168.32.202  puppet-client

关闭防火墙。selinux

puppet的组织结构

/etc/puppet

├── auth.conf      ACL权限控制文件

├── fileserver.conf       文件服务配置文件

├── manifests 定义存储目录

├── modules                  模块配置目录

└── puppet.conf  puppet主配置文件

3.puppet的工作原理:

定义:使用puppet特定的语言定义基础配置信息。通常我们把这些信息写在modules中

模拟:在配置执行前检测代码,但并不执行

执行:执行步骤1定义的配置自动部署,检测并记录所发生变化的部分

报告:将期待的变化,实际发生的变化以及任何修改发送给报告系统

4.puppet的数据流:

node节点将facts和本机信息发送给master

master告诉node节点应该如何配置,将这些信息写入catalog后传送给node。

node节点在本机进行代码解析验证并执行,将结果反馈给master

master通过api将数据发送给分析工具,报告完全可以通过开发api或其他系统集成

整个数据流的走向是基于ssl安全协议的

5.Puppet的安装步骤

Puppet的安装与使用可以细分8步进?,详细步骤如下:

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) 客户端配置?件指定Server端,运?puppet agent –test命令或直接运?puppet agent --test --

server server.domain.com与master交互完成签名认证。

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

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

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

6.master端配置

修改hosts

192.168.32.200 puppet-server

192.168.32.202 puppet-client

设置ntp

ntpdate pool.ntp.org

chkconfig ntpd on

service ntpd start

1.在master安装puppet-server,puppet和facter

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

rpm -ivh  puppetlabs-release-6-7.noarch.rpm

yum -y install puppet-server puppet

ruby最好安装1.8.7版本

facter(简称为fact),手机关注主机的信息,来帮助定制puppet配置

2.配置puppet.conf

[agent]

certname = puppet-server

3.创建site.pp文件。site.pp是puppet读取所有模块PP文件的开始,在3.0版本以前必须设置,否则服务无法启动

touch /etc/puppet/manifests/site.pp

4.启动puppetmaster服务

/etc/init.d/puppetmaster start

chkconfig puppetmaste  on设置开机启动

7.设置服务端自动签发证书

在/etc/puppet下创建autosign.conf文件,不需要修改puppet.conf

puppet-client

/etc/init.d/puppetmster restart

puppet agent --no-daemonize --onetime --verbose --debug

--no-daemonize前台输出日志

puppet cert list all  查看证书。带+号是签发成功的

5.查看本地证书情况:puppetmaster第一次启动会自动生成证书自动注册自己

tree /var/lib/puppet/ssl/

/var/lib/puppet/ssl/

├── ca

│?? ├── ca_crl.pem

│?? ├── ca_crt.pem

│?? ├── ca_key.pem

│?? ├── ca_pub.pem

│?? ├── inventory.txt

│?? ├── private

│?? │?? └── ca.pass

│?? ├── requests

│?? ├── serial

│?? └── signed

│??     ├── puppet-client.pem

│??     └── puppet-server.pem

├── certificate_requests

├── certs

│?? ├── ca.pem

│?? └── puppet-server.pem

├── crl.pem

├── private

├── private_keys

│?? └── puppet-server.pem

└── public_keys

└── puppet-server.pem

6.查看监听状态,puppetmaster服务开启后,默认监听tcp8140端口

netstat -tunpl | grep 8140

8.agent端的配置

修改hosts

192.168.32.200 puppet-server

192.168.32.202 puppet-client

设置ntp

ntpdate pool.ntp.org

chkconfig ntpd on

service ntpd start

1.安装puppet和facter

yum -y install puppet facter

yum -y ruby ruby-rdoc ruby-libs

2.配置puppet.conf

vim /etc/puppet/puppet.conf

[main]

server = puppet-server

/etc/init.d/puppet start

chkconfig puppet on

3.通过调试模式启动节点,向puppetmaster端发起认证

puppet agent --test

4.服务器端确定认证

puppet cert --list --all查看认证情况

puppetca -s puppet-client注册agent

puppet cert --clean clientname 删除证书

如何生成puppet配置文件puppet.conf

puppetd --genconfig > /tmp/puppet.conf

puppetmasterd --genconfig > /tmp/puppet.conf

生成puppet配置文件site.pp的命令

puppet apply --genmainfest > /etc/puppet/mainfests/site.pp

如果不知道配置文件在那个目录下,可以使用一下命令查看

puppet agent --configprint confdir

默认在/etc/puppet

puppet配置文件参数

【main】通用配置选项

vardir=/var/lib/puppet/

confdir=/etc/puppet   配置文件目录

logdir=/var/log/puppet 日志目录

rundir=/var/run/puppet pid文件目录

ssldir=/var/lib/puppet/ssl   ssl签发认证目录

manifest=/etc/puppet/mainfests/site.pp 主机文件默认读取

site.pp的目的主要是告诉puppet去哪里寻找并载入所有主机相关的配置

modulepath:/etc/puppet/modules:/usr/share/puppet/modules

authconfig=/etc/puppet/namespaceauth.conf 如果开启listen为true需要配置此文件

pluginsync=true 开启插件同步

reportdir=/var/lib/puppet/reports 报告文件生成目录,目录以主机名命令开头

reports=log,foreman:报告的方式与类型

environment=production:运行环境配置,默认为生产环境

【agent】客户端配置选项

localconfig=/var/lib/puppet/localconfig 本地缓存配置目录

runinterval=1800 客户端默认探测司机,可按需修改

listen=true 是否监听,执行puppet kick时需要配置

report=true 客户端的报告系统配置,不同于master

report-port=8140 监听端口,如果服务器有配置防火墙,需要开放此端口

server = server.doamin.com master的主机名

【master】服务端配置选项

certname = server.domain.com 也可以不定义,以主机名为准

reporturl=http://server.domain.com:3000/reports/upload 报告发送地址,可配置在dashboard或foreman配置文件中

autosign=/etc/puppet/autosign.conf 自动认证配置文件

site.pp配置文件内容

Exec {path=>"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"} 设置环境变量

$fileserver="puppet.domain.com"指定全局fileserver变量

$ntpserver="ntp.domain.com" 指定ntpserver变量

Package {provider=>"yum"} 指定远景报的安装方式为yum

import "modules.pp"  加载模块配置文件,可以不配置

import "nodes/*pp" 加载主机信息,可以使用通配符,也可以定义多组目录

import “test.dimain.com.pp” 加载测试主机

认证与安全配置文件

namespaceauth.conf用于指定允许谁访问每个名称空间

auth.conf认证配置文件是puppet中的ACL,主要应用于puppet‘s rest api。

path /path/to/resource  目录配置

[environment envlist]   环境配置

[method methodlist]     方法命令配置

[auth[enthicated] {yes|no|on|off|any}]  授权配置

allow [host|ip|*]   允许配置

deny [host|ip]           拒绝配置

客户端自动认证配置

autosign.conf 允许配置文件中的客户端自动进行签名验证,省去人工交互过程。

配置文件参考如下

允许单一客户端或者域名匹配。主机名匹配

rebuilt.example.com

*.scratch.example.com

同时puppet客户端的证书也可以采用提前在master上生成的方法,将生成的证书文件拷贝到客户端对应的目录下实现自动认证的配置

自动生成证书命令为:

puppet cert generate clien.domain.com

客户端的证书目录

/var/lib/puppet/ssl/private_keys/

/var/lib/puppet/ssl/certs/

报告系统配置

tagmail将配置的报告内容按需求发送给谁。需要使用此功能,在master端配置reports=tgmail。agent端配置为report=true,同时也可以配置smtp

由谁发送,在master端配置reportfron为smtpserver or sendmail即可。默认为本机sendmail发送

文件系统配置文件

flieserver.conf 是一项安全配置。结合puppet.confauth.conf使用,针对哪个目录,那些客户端允许访问,禁止访问。

配置方法

[files]

path /var/lib/puppet/files

allow *.example.com

deny *.evil.example.com

allow 192.168.0.0/24

puppet 自颁发认证

master端配置

vim /etc/puppet/autosign.conf

client.domain.com   #客户端主机名

vim /etc/puppet/puppet.conf

[agent]

certname = client.domain.com  #等号空格要有

/etc/ini.d/puppetmaster  restart

查看认证

[[email protected] puppet]# puppet cert list --all

+ "server.domain.com" (SHA256) 35:00:9D:41:03:3A:FE:B7:67:6F:B0:B3:47:2D:0D:F6:26:28:D5:4E:01:EE:29:62:E6:E6:FD:8F:66:0C:D4:DB (alt names: "DNS:puppet", "DNS:puppet.domain.com", "DNS:server.domain.com")

[[email protected] puppet]# puppet cert list --all

+ "client.domain.com" (SHA256) 1C:20:AC:43:90:8F:7E:33:07:48:AE:D1:B0:56:9C:DB:23:68:D4:5A:E4:4B:6B:60:2D:A1:88:3B:52:5D:BE:79

+ "server.domain.com" (SHA256) 35:00:9D:41:03:3A:FE:B7:67:6F:B0:B3:47:2D:0D:F6:26:28:D5:4E:01:EE:29:62:E6:E6:FD:8F:66:0C:D4:DB (alt names: "DNS:puppet", "DNS:puppet.domain.com", "DNS:server.domain.com")

slave端配置

vim /etc/puppet/puppet.conf

[main]

server = server.domain.com

/etc/init.d/puppet restatr

[[email protected] puppet]# puppet agent --test    申请认证

Info: Retrieving pluginfacts

Info: Retrieving plugin

Info: Loading facts

Info: Caching catalog for client.domain.com

Info: Applying configuration version ‘1423467420‘

Notice: Finished catalog run in 0.04 seconds

如果在认证中间出错的话,一定要在master端和slave端把/var/lib/puppet/ssl 删掉,然后重启服务,重新认证

时间: 2024-10-07 06:33:42

puppet配置的相关文章

puppet 配置证书

1.服务端查看有哪些客户端证书 # puppet cert list  (--all) "slave-puppet" (SHA256) A0:BE:9F:85:2F:67:2A:1D:94:D2:A4:4C:8F:2F:6D:2A:C4:F2:33:B4:18:66:1C:6A:D6:AC:10:92:50:4D:A2:D2 2.让客户端生成 ssl 证书(服务端运行) 生产证书: # puppet agent --test --server master.zjcap.cn # pup

通过gitweb管理Puppet配置(nginx版本+lighttpd版)

Puppet路径为:/etc/puppet 软件版本:gitweb-1.7.1-3.el6_4.1.noarch git-1.7.1-3.el6_4.1.x86_64 fcgi-2.4.0-12.el6.x86_64 spawn-fcgi-1.6.3-1.el6.x86_64 nginx version: nginx/1.6.2 lighttpd/1.4.35 (ssl) - a light and fast webserver 一.建立puppet git仓库 1.进入puppet 的目录 #

Puppet配置自动签发证书

配置自动签发证书 服务端上删除客户端证书puppet cert clean client.aming.com 客户端上删除ssl下的文件rm -rf /var/lib/puppet/ssl/* 服务端更改配置文件vim /etc/puppet/puppet.conf在[main]下面加一行autosign = true 服务端创建自动签发的配置文件 vim /etc/puppet/autosign.conf加入如下内容:*.aming.com 重启puppetmaster服务/etc/init.

Puppet-2:Puppet 配置第一个Agent

创建必要的目录.Manifests存放模块的主要配置文件init.pp Puppet在应用类后会首先加载init.pp读取必要的信息 如果init.pp使用templates函数,会读取templates目录下的erb模块文件 当前的变量也会传入templates函数中 mkdir -p /etc/puppet/modules/test/{manifests,templates,files} vi /etc/puppet/modules/test/manifests/init.pp 定义类: c

RHEL6.5配置安装puppet-server和puppet(一)

RHEL6.5配置安装puppet-server和puppet --配置YUM 源并安装puppet-server 一.服务器端配置安装 1 环境配置: [[email protected] /]# less /etc/hosts127.0.0.1       localhost 192.168.1.100   master.linux.com master192.168.1.111   client.linux.com client 2 安装过程: 2.1 设置YUM源 1.[[email p

Puppet集中配置管理系统

Puppet是一个配置管理工具,典型的,puppet是一个C/S结构,当然,这里的C(客户端)可以有很多,因此,也可以说是一个星形结构,所有的puppet客户端同一个服务器端的puppet通讯.每个puppet客户端每半小时连接一次客户端(时间也可以设置为其他),下载最新的配置文件,并且严格按照配置文件来配置服务器,配置完成以后,puppet客户端可以反馈给服务器端一个消息,如果出错,也会给服务器端反馈一个消息.下面是一个典型的puppet配置的数据流动情况 1 (管理员)管理员编写puppet

学习笔记--Puppet集中配置管理系统

实验环境:server6:server端 Server7:client端 须保证server端与client端存在解析,并且时间一致,火墙与selinux关闭 1.安装 Server端:yum install -y puppet-server-3.8.1-1.el6.noarch.rpm puppet-3.8.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm rubygem-json-1.5

<Puppet 集中配置管理系统RHEL6>

Puppet 集中配置管理系统 puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因此,也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个puppet 客户端每半小时(可以设置)连接一服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息. 下图展示了一个典型的 puppe

45 puppet基础、资源详解、配置语言、puppet类与模板及模块

01 puppet基础 配置: node1:192.168.1.131 CentOS7.2 node2:192.168.1.132 CentOS7.2 [[email protected] ~]# rpm -ivh epel-release-latest-7.noarch.rpm [[email protected] ~]# yum list all | grep -i "puppet" puppet.noarch                           3.6.2-3.e