当前位置:首页 > 旅游指南

puppet Puppet 搭建与部署,看这一篇就够了

木偶是如何工作的

让管理员只关注要管理的目标,而忽略实现的细节。木偶可以在单机上使用,也可以在C/S结构中使用。在大规模使用Puppet的情况下,通常采用C/S结构,其中puppetclient只运行puppet client,puppet server只运行puppetmaster。具体工作流程如下所示:

环境

使用四个服务器模拟傀儡环境,拓扑图如下:

环境表

实验步骤1。建造傀儡师

(1)规划三台服务器的主机名

[root @ localhost ~]# vim/etc/hostname

master.test.cn

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

192 . 168 . 126 . 138 master.test.cn

192 . 168 . 126 . 148 client01.test.cn

192 . 168 . 126 . 158 client02.test.cn

(2)服务器时间同步

Puppet需要使用SSL证书,依靠时间同步,所以需要搭建NTP服务器

1)构建NTP服务器

[root @ localhost ~]# yum install NTP-y

[root @ localhost ~]# vim/etc/NTP . conf

添加以下两行:服务器127.127.1.0 #指定本地为时间源服务器

福吉127.127.1.0地层8

它的功能是在/etc/ntp.conf中定义的所有服务器都不可用时,为NTP客户端提供本地时间作为NTP服务。

2)启动ntp服务,设置启动自启动。

[root @ localhost ~]# system CTL stop firewalld . service

[root @ localhost ~]# system CTL disable firewalld . service

[root@localhost ~]# setenforce 0

[root @ localhost ~]# systemctl start ntpd . service

[root @ localhost ~]# systemctl enable ntpd . service

[root@localhost ~]# ntpstat #同步

同步到第3层的NTP服务器(193.228.143.13)

时间校正到517毫秒以内

每64秒轮询一次服务器

3)将puppetmaster配置为NTP客户端

[root @ master ~]# yum install NTP date-y

[root @ master ~]# NTP date 192 . 168 . 126 . 159

8月6日09: 45: 03 ntpdate [3488]:调整时间服务器192.168.126.159偏移量-0.072288秒#调整时间服务器192.168.126.159偏移量-0.072288秒

4)配置YUM源

[root @ master ~]# yum install epel-release-y

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

5)启动傀儡主程序

[root @ master ~]# system CTL stop firewalld . service

[root @ master ~]# system CTL disable firewalld . service

[root@master ~]# setenforce 0

[root @ master ~]# system CTL start puppet master . service

[root @ master ~] # systemctl启用puppet master . service 2 . Build puppet client(两个客户端的配置相同)

1)通过域名ping puppetmaster

[root @ client 01 ~]# ping master.test.cn

PING master.test.cn(192 . 168 . 126 . 138)56(84)字节的数据。

来自master.test.cn的64字节(192 . 168 . 126 . 138):icmp _ seq = 1 TTL = 64时间=1.06毫秒

来自master.test.cn的64字节(192 . 168 . 126 . 138):icmp _ seq = 2 TTL = 64时间=3.27毫秒

来自master.test.cn的64字节(192 . 168 . 126 . 138):icmp _ seq = 3 TTL = 64时间=0.382毫秒

来自master.test.cn的64字节(192 . 168 . 126 . 138):icmp _ seq = 4 TTL = 64时间=0.660毫秒

2)服务器时间同步

[root @ client 01 ~]# yum install NTP date-y

[root @ client 01 ~]# vim/etc/NTP . conf

服务器127.127.1.0 #将本地指定为时间源服务器

福吉127.127.1.0地层8

[root @ client 01 ~]# NTP date 192 . 168 . 126 . 159

68月10日01:12 ntpdate[3303]:调整时间服务器192.168.126.159偏移量-0.012348秒

3)配置YUM源

[root @ client 01 ~]# yum install epel-release-y

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

4)修改木偶的配置文件/etc/puppet/puppet.conf

[root @ client 01 ~]# vim/etc/puppet/puppet . conf

[主要]

#傀儡日志目录。

#默认值为“$vardir/log”。

logdir = /var/log/puppet

#保存木偶PID文件的地方。

#默认值为“$vardir/run”。

rundir = /var/run/puppet

#保存SSL证书的位置。

#默认值为“$confdir/ssl”。

ssldir = $vardir/ssl

服务器= master.test.cn #添加傀儡主人的地址

5)分别在puppetclient01和puppetclient01上注册

[root @ client 01 ~]# puppet agent-server = master . test . cn-no-daemonize-verbose

信息:为client01.test.cn创建一个新的SSL密钥

信息:为ca缓存证书

信息:从/etc/puppet/csr_attributes . YAML加载CSR _ attributes文件

信息:为client01.test.cn创建新的SSL证书申请

信息:证书申请指纹(sha 256):C1:1F:11:32:53:96:AA:91:16:9F:CE:F2:AD:D2:3F:56:C7:9B:D9:87:5C:F8:2D:30:7D:FE:49:66:46:2A:D9:FC

信息:为ca缓存证书

6)检查申请注册的客户

[root@master ~]#傀儡证书列表

“client 01 . test . cn”(SHA 256)C1:1F:11:32:53:96:AA:91:16:9F:CE:F2:AD:D2:3F:56:C7:9B:D9:87:5C:F8:2D:30:7D:FE:49:66:46:2A:D9:FC

“client 02 . test . cn”(sha 256)7C:C9:22:59:B2:1E:2B:F5:12:30:4D:88:D9:B1:AF:60:FE:02:65:7A:A2:3F:E3:B5:CB:1D:2F:9F:B5:4B:FD:6D

7)注册未注册的客户

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

通知:已签署的client01.test.cn证书申请

注意:删除文件Puppet::SSL::certificate request client01.test.cn在'/var/lib/Puppet/SSL/ca/requests/client 01 . test . cn . PEM '

通知:已签署的client02.test.cn证书申请

注意:删除文件Puppet::SSL::certificate request client02.test.cn在'/var/lib/Puppet/SSL/ca/requests/client 02 . test . cn . PEM '

8)检查注册客户

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

总消耗量12

1952年8月6日21:22 client01.test.cn.pem

1952年8月6日21:22 client02.test.cn.pem

木偶2021年8月6日21:06 master.test.cn.pem

此时,客户端已经完成证书的请求和签名。

配置实例

这里为了保护Linux的ssh端口,修改客户端client1的sshd端口,将端口22修改为9922,并实 现重启工作。首先创建ssh模块,ssh模块下面有三个文件:manifests,templates和files。在manifests里面包含一个init.pp文件,这是该模块的初始入口文件,导入模块时,会从init.pp开始执行。可以把所有的代码都写到init.pp里面,也可以分成多个pp文件,init再去包含其他文件。定义class类名的时候必须是ssh,这样才能实现调用。file目录是该模块的文件发布目录,Puppet提供一个文件分发机制,类似于rsync的模块。templates目录包含erb模型文件,这个和file资源的template属性相关,不过很少用。具体配置如下:

1)创建必要的目录:

[root@master ~]# cd /etc/puppet/

[root @ master puppet]# mkdir-p modules/ssh/{清单、模板、文件}

[root@master puppet]# mkdir清单/节点

[root @ master puppet]# mkdir modules/ssh/files/ssh

[root @ master puppet]# chown-r puppet modules/#修改权限

2)检查/etc/puppet/modules/ssh目录中的结构

[root @ master puppet]# ll modules/ssh/

总消耗量0

Drwxr-xr-x.3傀儡根17 8月6 21:32文件

傀儡之根8月6日21:31清单

Drwxr-xr-x.2傀儡根6 8月6日21:31模板

3)创建模块配置文件

[root @ master puppet]# vim/etc/puppet/modules/ssh/manifest/install . PP

输入以下信息(首先确保客户端已安装ssh服务):ssh类::安装{

包{"openssh ":

确保=>。目前,

}

}

4)创建模块配置文件

[root @ master puppet]# vim/etc/puppet/modules/ssh/manifest/config . PP

类ssh::config{

文件{ "/etc/ssh/ssh _ config ":#配置客户端需要同步的文件

确保=>。出现,#确认该文件存在于客户端

所有者=>。“root”,#文件所有者

group=>。根“,#文件属于组

模式=>。“0600”,#文件权限属性

source=>。“puppet://$ puppet server/modules/ssh/ssh/ssh _ config”,

#从服务器同步文件

要求=>。Class["ssh::install"],#调用install.pp确认ssh已经安装

notify=>。Class["ssh::service"],# notify service.pp if config.pp更改。

}

}

5)创建模块配置文件服务

[root @ master puppet]# vim/etc/puppet/modules/ssh/manifest/service . PP

类ssh::service{

服务{ "sshd ":

确保=>。运行,#确认ssh正在运行

hasstatus=>。该服务支持状态命令,类似于服务ssh状态

hasrestart=>。该服务支持重启,类似于服务ssh重启

启用=>。无论服务器是否通电,均为True

要求=>。class[" ssh::config "]# confirm config . PP调用

}

}

6)创建模块主配置文件init.pp

[root @ master puppet]# vim/etc/puppet/modules/ssh/manifest/init . PP

ssh类{

包括ssh:: install、ssh:: config、ssh:: service #来将配置文件加载到ssh类中

}

7)此时目录/etc/puppet/models/ssh/main fest中有四个文件

[root @ master puppet]# ll/etc/puppet/modules/ssh/manifest/

总消耗量16

-rw-r-r-.1根根248 8月6日21:40配置

-rw-r-r-.1根根60 8月6日21:46 init.pp

-rw-r-r-.1根根64 8月6日21:38安装

-rw-r-r-. 1 root root 165 August 6 21:42 service . PP

8)在服务器端建立ssh统一维护文件

由于服务器和客户端的ssh _ config文件在默认情况下是相同的,所以将服务器的/etc/ssh/ssh _ config复制到模块的默认路径。

[root @ master puppet]# CP/etc/ssh/ssh _ config/etc/puppet/modules/ssh/files/ssh/

[root @ master puppet]# chown-r puppet/etc/puppet/modules/ssh/files/ssh/#修改权限

9)创建一个测试节点配置文件,并将ssh加载到其中。

[root @ master puppet]# vim/etc/puppet/manifest/nodes/ssh . PP

节点“client01.test.cn”

包括ssh

}

节点“client02.test.cn”

包括ssh

}

10)将测试节点加载到puppet中,即修改site.pp..

[root @ master puppet]# vim/etc/puppet/manifests/site . PP

导入“nodes/ssh.pp”

11)修改服务器维护的sshd _ config配置文件

[根@主木偶]# vim/etc/puppet/modules/ssh/files/ssh/ssh _ config

端口22 #改为9922

12)重启puppet服务

[root@master puppet]# systemctl重新启动puppetmaster.service

2.客户主动拉动

一般在小规模的自动化集群中,如果代码上线,需要重启服务,为了防止网站暂时无法访问,每个客户端运行一次puppet agent -t命令,选择模式根据客户端集群的大小而定。根据经验,傀儡服务器和客户端之间通常建立ssh信任,然后定制shell脚本。ssh允许客户端批量执行傀儡同步命令。

1)客户端01端:

[root@client01 ~]#傀儡代理-t

...//省略

注意:/Stage[main]/Ssh::Config/File[/etc/Ssh/Ssh _ Config]/内容:

-/etc/ssh/ssh _ config 2017-08-07 10:28:25.000000000+0800

+++/tmp/puppet-file 2018 08 06-5162-JC 80 yr 2018-08-06 22:25:58.726506429+0800

@@ -14,7 +14,7 @@

# SELinux关于这个变化。

# SEM anage port-a-t ssh _ port _ t-p TCP # PORTNUMBER

#

-#端口22

+端口9922

#地址家族任何

#列表地址0.0.0.0

#列表地址::

...//省略

Client02:...//省略

注意:/Stage[main]/Ssh::Config/File[/etc/Ssh/Ssh _ Config]/内容:

-/etc/ssh/ssh _ config 2017-08-07 10:28:25.000000000+0800

++ ++/tmp/puppet-file 2018 08 06-4667-149 TJ 11 2018-08-06 22:27:39.362282788+0800

@@ -14,7 +14,7 @@

# SELinux关于这个变化。

# SEM anage port-a-t ssh _ port _ t-p TCP # PORTNUMBER

#

-#端口22

+端口9922

#地址家族任何

#列表地址0.0.0.0

#列表地址::

.....//省略

2)此时,命令已在客户端成功执行,验证如下:

[root @ client 01 ~]# cat/etc/ssh/ssh _ config | grep Port

端口9922

#网关端口编号

3)检查服务器的ssh服务是否重启,端口是否生效。

[root @ client 01 ~]# netstat-tunlp | grep ssh

TCP 0 0 0 . 0 . 0 . 0:9922 0 . 0 . 0 . 0:* LISTEN 5428/ssh

TCP 60 0:::9922::* LISTEN 5428/宋承宪

3.服务器推送同步

1)大规模部署时,采用服务器推送模式。

客户端:

[root @ client 02 ~]# vim/etc/puppet/puppet . conf

在最后一行加上

听=真#让木偶在端口8139上听

2)认证配置文件auth.conf定义了一些认证信息和访问权限

[root @ client 02 ~]# vim/etc/puppet/auth . conf

在最后一行加上

允许* #允许任何服务器推送

3)启动傀儡客户端

[root @ client 02 ~]# system CTL start puppetagent . service

[root @ client 02 ~]# cat/etc/ssh/ssh _ config #视图

.....//省略

端口9922

#地址家族任何

#列表地址0.0.0.0

#列表地址::

.....//省略

4)开始向客户推销

主人:

[root @ master puppet]# puppet kick client02.test.cn

触发client02.test.cn

获取状态

地位就是成功

client02.test.cn以退出代码0结束

完成了的

5)校准结果如下

[root @ master puppet]# cat/etc/ssh/ssh _ config | grep Port

#端口22

#网关端口编号

6)检查服务器的ssh服务是否重启,端口是否生效。

[root @ client 02 ~]# netstat-tunlp | grep ssh

TCP 0 0 0 . 0 . 0 . 0:9922 0 . 0 . 0 . 0:* LISTEN 4908/ssh

TCP 60 0:::9922::* LISTEN 4908/宋承宪

实验成功,仅供参考。

1.《puppet Puppet 搭建与部署,看这一篇就够了》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《puppet Puppet 搭建与部署,看这一篇就够了》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1620391.html

上一篇

韩国无整容女星排行榜 韩国公认10大整容美女名单,韩国美女整容前后对比

下一篇

怀旧服战场装备 怀旧服猎人PVP装备推荐 不需要军装也能很强力

dmg文件 DropDMG for Mac v3.5.7使用小技巧

dmg文件 DropDMG for Mac v3.5.7使用小技巧

Dropdmg for Mac是一款运行在Mac平台上的dmg文件打包软件,可以高速快速地为用户打包任意dmg文件,并通过简单的拖放操作压缩不同的导入文件和文件夹。目前很多软件都是通过DMG格式的打包文件传输的,这也是Mac下非常流行的打包和磁盘镜像格式。dropdmg的中文版可以将dmg...

魅族发布会 源文件 | 魅族最新发布会PPT,这次足以惊艳全场!(文末附下载)

魅族发布会 源文件 | 魅族最新发布会PPT,这次足以惊艳全场!(文末附下载)

#新闻发布会源文件# 魅族终于又开了发布会 新产品不做评价,PPT直接发给大家  写下你对魅族PPT的看法 背景回复:魅族新产品 接收魅族会议的PPT源文件整理不容易,期待你的转发和分享 移动你的小手,收集并向前 点击它,得到PPT源文件...

服务器高防 高防服务器与高防IP的区别

服务器高防 高防服务器与高防IP的区别

高防服务器和高防IP明明可以知道一个是服务器,一个是IP,这是两码事,但是用高防IP好还是高防服务器好呢?这是很多客户的疑问。  首先跟随腾正科技边肖了解高安全性服务器和高安全性IP的概念差异。 高防御服务器: 指单机防御在50G以上的独立服务器,属于服务器的一种类型。根据IDC机房环境的...

高防服务器 高防服务器与高防IP的区别

高防服务器 高防服务器与高防IP的区别

高防服务器和高防IP明明可以知道一个是服务器,一个是IP,这是两码事,但是用高防IP好还是高防服务器好呢?这是很多客户的疑问。  首先跟随腾正科技边肖了解高安全性服务器和高安全性IP的概念差异。 高防御服务器: 指单机防御在50G以上的独立服务器,属于服务器的一种类型。根据IDC机房环境的...

电脑微信聊天记录在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑

  • 电脑微信聊天记录在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 电脑微信聊天记录在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 电脑微信聊天记录在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑

微信文件在手机哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑

  • 微信文件在手机哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 微信文件在手机哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 微信文件在手机哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑

微信保存的文件在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑

  • 微信保存的文件在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 微信保存的文件在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 微信保存的文件在哪个文件夹 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑

微信聊天文件在哪 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑

  • 微信聊天文件在哪 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 微信聊天文件在哪 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑
  • 微信聊天文件在哪 华为手机微信聊天记录保存在哪个文件夹?如何导出电脑