且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Puppet3.0原理介绍与安装配置

更新时间:2022-09-05 23:01:05

Puppet3.0原理介绍与安装配置

一,puppet概述

Puppetruby语言开发,用于管理系统配置文件的工具集。简单易用,可移植性强。节约大量时间。

二,puppet操作模型,三层

Puppet3.0原理介绍与安装配置

Deployment:puppet的架构

Configuration language && resource abstract层:1,资源2,配置语言

Transactional layer层:侧重配置文件的具体实施,是puppet的工作过程。

三,puppet架构常用的一种。

Puppet3.0原理介绍与安装配置

四,Configuration language && resource abstract作用:

1puppet给配置对象下的定义,文件,软件包,用户,用户组,虚拟主机等都可以成为资源

2,配置语言是puppet的一种规范,用以实现对资源的描述

五,Transactional layer层:侧重于配置文件的具体实施,是puppet的工作过程

1master编译编写的配置

2masternode连接,将编译的配置传递给agent

3,在agent上应用这些配置

4agent将处理结果反馈给master

六,puppet安装配置及使用

1,源码安装与yum安装,下面选择yum安装

服务端

[root@master ~]# wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-1.noarch.rpm

[root@master ~]# yum install puppetlabs-release-6-1.noarch.rpm

[root@master ~]# yum install puppet-server

[root@master ~]# chkconfig puppet on

[root@master ~]# /etc/init.d/puppet

puppet        puppetmaster  puppetqueue  

[root@master ~]# /etc/init.d/puppetmaster  start

Starting puppetmaster:                                     [  OK  ]

[root@master ~]# netstat  -tunlp |grep 8140  监听8140端口

tcp        0      0 0.0.0.0:8140                0.0.0.0:*                   LISTEN      7859/ruby      

客户端

[root@client ~]# wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-1.noarch.rpm

[root@client ~]# yum install -y puppetlabs-release-6-1.noarch.rpm

[root@client ~]# yum install -y puppet

修改主机名

Puppet 要求所有机器有完整的域名(FQDN),如果没有 DNS 服务器提供域名的话,可以在两台机器上设置主机名(注意要先设置主机名再安装 Puppet,因为安装 Puppet 时会把主机名写入证书,客户端和服务端通信需要这个证书):

[root@master ~]# vim /etc/hosts

192.168.0.10 master

192.168.0.9 slave

[root@master ~]# scp /etc/hosts 192.168.0.9:/etc/

设置时间同步:

Puppet 要求所有机器上的时钟保持同步masterclient都需要执行下面步骤

[root@master ~]# yum install ntp

[root@master ~]# /etc/init.d/ntpd start

*/5 * * * * /usr/sbin/ntpdate ntp.api.bz &> /dev/null

签发证书:

[root@client ~]# puppet agent --no-daemonize --onetime --verbose --debug --server=master

客户端执行上面命令后,此时会在master端的/var/lib/puppet/ssl/ca/requests/client.pem 会生成一个证书请求

[root@master ~]#  puppet cert list --all   显示有哪些证书请求

 "client" (SHA256) 17:34:FF:1E:6E:1D:44:13:FA:38:AE:F6:3B:43:87:C7:61:F6:76:B8:66:97:74:38:B2:97:17:CA:1E:89:DA:31

+ "master" (SHA256) EE:76:BE:A8:87:D2:6E:7E:54:A4:06:35:42:09:2E:9D:4B:F6:1D:40:62:42:E3:C4:F5:39:71:0A:E7:AD:13:00

[root@master ~]# puppet cert --sign client    为client签发证书,Puppet cert --sign all

all表示对所有请求都签发一个证书,也可以单独指定客户端的主机名,如果签发完了之后,在requests中的.pem文件就不存在了。在/var/lib/puppet/ssl/ca/signed/下会生成签证好的文件。

Notice: Signed certificate request for client

Notice: Removing file Puppet::SSL::CertificateRequest client at '/var/lib/puppet/ssl/ca/requests/client.pem'

[root@master ~]# puppet cert list --all

+ "client" (SHA256) 8A:6D:5E:A0:E0:14:BF:32:41:78:42:D2:A9:81:B8:70:14:4D:C1:DB:90:DC:C0:CC:79:F3:43:39:4F:CB:43:31

+ "master" (SHA256) EE:76:BE:A8:87:D2:6E:7E:54:A4:06:35:42:09:2E:9D:4B:F6:1D:40:62:42:E3:C4:F5:39:71:0A:E7:AD:13:00

[root@master ~]# ll /var/lib/puppet/ssl/ca/signed/

total 8

-rw-r----- 1 puppet puppet 1887 Jul 29 17:40 client.pem

-rw-r----- 1 puppet puppet 1887 Jul 29 17:09 master.pem

七,master端的配置文件

[root@master ~]# vim /etc/puppet/puppet.conf 默认的配置比较简单

[main] 控制整体的配置文件中所有的项

[server] 控制master端行为。 添加

Certname=master

[agent]只控制客户端的行为,如果与main有冲突,则以agent中的为准。如果没有会继续main的值。

[root@master ~]# puppet master --genconfig >> /root/master.conf  可以用puppet master生成master的配置文件需要重定向

[root@client ~]# puppet agent --genconfig > agent.conf 生成client的配置文件

[root@client ~]# puppet agent --no-daemonize --onetime --verbose --debug --server=master    指定与server通信,可以在配置文件中添加,那么此时在命令行中可以省略--server参数。

[root@client ~]# vim /etc/init.d/puppet agent段添加一行

server=master

[root@client ~]#/etc/init.d/puppet start

[root@client ~]# nestat -tunlp |grep 8139 客户端监控的端口

tcp        0      0 0.0.0.0:8139                0.0.0.0:*                   LISTEN      6919/ruby










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