阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

初识puppet

32次阅读
没有评论

共计 3172 个字符,预计需要花费 8 分钟才能阅读完成。

导读 puppet 是一种 Linux、Unix 平台的集中配置管理系统,使用自有的 puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。puppet 把这些系统实体称之为资源,puppet 的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。puppet 采用 C /S 星状的结构,所有的客户端和一个或几个服务器交互。
Puppet 的介绍
什么是 Puppet?

puppet 是一种 Linux、Unix 平台的集中配置管理系统,使用自有的 puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。puppet 把这些系统实体称之为资源,puppet 的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
puppet 采用 C /S 星状的结构,所有的客户端和一个或几个服务器交互。

每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配 置信息同步。每个 puppet 客户端每半小时 (可以设置 runinterval=30) 连接一次服务器端, 下载最新的配置文件, 并且严格按照配置文件来配置服务器.  配置完成以后,puppet 客户 端可以反馈给服务器端一个消息.  如果出错, 也会给服务器端反馈一个消息.

为什么要使用 puppet?

当你去管理 10 台服务器,你肯定会说小意思。没有任何压力。

当你去管理 100 台服务器,你肯定也会说小意思。

当你去管理 1000+ 台服务器呢?你是不是就头痛了,不同的机器,不同的系统,使用不同的软件版本,配置也不一样。这样为了提升效率。Puppet 就派上了大用场。

Puppet 架构 

初识 puppet

puppet 工作原理:

Puppet  后台运行的时候默认是半小时执行一次,不是很方便修改。可以考虑不让它 在后台跑而是使用 crontab 来调用。这样可以精确控制每台客户端的执行时间。分散 执行时间也可以减轻压力 

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

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

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

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

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

 Puppet 组织结构:

为什么要说 puppet 的组织结构?当你安装完 puppet 后,你会发现你不知道它的目录结构是什么样的。要如何组织,怎么样才算合理?puppet 目录在 /etc/puppet 下面。

树结构如下:

|-- puppet.conf   #主配置配置文件 

           |-- fileserver.conf #文件服务器配置文件 

           |-- auth.conf     #认证配置文件 

           |-- autosign.conf # 自动验证配置文件 

           |-- tagmail.conf  #邮件配置文件(将错误信息发送)|-- manifests     #文件存储目录(puppet 会先读取该目录的.PP 文件) 

           |   --nodes 

           |   |    | puppetclient.pp 

           |   |-- site.pp   #定义 puppet 相关的变量和默认配置。|   |-- modules.pp  #加载 class 类模块文件(include syslog)|-- modules        #定义模块 

           |   -- syslog     #以 syslog 为例 

           |        |-- file 

           |        |-- manifests 

           |        |   |-- init.pp #class 类配置

           |        |--- templates    #模块配置目录 

           |        |   |-- syslog.erb #erb 模板

基本介绍到这,在这里也分享下 PUPPET 的中文 WIKI:http://puppet.wikidot.com/

E 文不错的也可以直接到官网看:http://www.puppetlabs.com/

环境搭建

然后开始安装,这里选择的是源码安装,puppet 是运行在 ruby 环境的,所以需要安装 ruby

上传 ruby-1.8.6,facter-1.6.0,puppet-2.7.1 到 /tmp 目录(这 3 个安装包见附件)tar zxvf ruby-1.8.6-p114.tar.gz
cd ruby-1.8.6-p114
./configure
make
make install
cd /tmp
tar zxvf facter-1.6.0.tar.gz
cd facter-1.6.0
ruby install.rb
cd /tmp
tar zxvf puppet-2.7.1.tar.gz
cd puppet-2.7.1
ruby install.rb
mkdir -p /etc/puppet &&cp  conf/redhat/*  /etc/puppet/ && cd ~
添加 host 文件解析

安装完成后需要把主机名和 IP 写入 hosts,因为 puppet 是根据主机名来识别的,所以主机名对 puppet 来说比较重要:

echo "192.168.1.100  puppetmaster" >> /etc/hosts
echo "192.168.1.200  app_1" >> /etc/hosts
开了防火墙的需要在防火墙里面添加 8140 端口
-A RH-Firewall-1-INPUT -s 192.168.0.0/255.255.0.0 -p tcp -m tcp --dport 8140 -j ACCEPT
完成后服务端运行
[root@cyy100 templates]# puppetmasterd
客户端运行:
[root@cyy111 ~]# puppetd --server cyy100 --test

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

没什么问题应该成功了,puppet 默认是半小时执行一次,个人推荐用定时任务来执行

实验验证

可以先随便写个类来验证下是否成功

[root@cyy100 templates]# cd /etc/puppet
[root@cyy100 puppet]# cd modules/
[root@cyy100 modules]# mkdir test/
[root@cyy100 modules]# mkdir test/manifests/
[root@cyy100 modules]# mkdir test/files/
[root@cyy100 modules]#vi test/files/init.pp

在 init.pp 里面写入以下内容

class po {
file { "/tmp/test.txt":
ensure => present,
group => "root",
owner => "root",
mode => "0644",
source => "puppet:///test/test.txt"
}
}

然后在 /etc/puppet/modules/est/files 下面创建一个 test.txt 文件,往里面写入:

hello world!

在 /etc/puppet/manifests/modules.pp 写入:

import "test"

在 /etc/puppet/manifests/node 里面写入:

node 'cyy111'{include po}

然后在客户端执行

puppetd --server cyy100 --test

就可以看到 test.txt 文件下发到客户端的 /tmp 目录下了。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计3172字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中