www.hj8828.com 4

【www.hj8828.com】布局管理工科具Puppet入门介绍:壹 :安装与设定,配置管理puppet

陈设管理工具Puppet入门介绍:一 :安装与设定,配置管理puppet

Puppet是安排处理工科具的1种,那篇小说首要介绍一下Puppet的设置与设定。

Puppet学习之puppet的设置和计划

一、Puppet概念

什么是Puppet

Puppet是puppetlabs出品的布置管理工科具,每年的DORA的DevOps报告正是有puppetlabs牵头做的,puppet作为卓绝的管理工科具,也是可圈可点。通过可读性很好的设定描述新闻,能够成功许多复杂的功效,比如如下保证软件wget被安装,用户admin被创制,而不用关系太多具体细节,剩余的付出Agent/Master构成的Puppet来做。

package { 'wget':
  ensure => installed,
}

user { 'admin':
ensure => present,
}

一、Puppet简介

简介

Agent/Master VS Stand-alone

Puppet能够看做Agent/Master的方式也得以用来Stand-alone的形式,后者则独自作为单机版本工具的接纳,可依附意况举行分选。

Puppet基于ruby语言开拓的自动化系统计划工具,能够C/S格局或单独运维,帮衬对富有UNIX及类UNIX系统的安插管理,最新版本也起始援助对Windows操作系统有限的部分管理。Puppet适用于服务器管的整整经过 ,举个例子起头安装、配置更新以及系统下线。

当服务器数量达到自然的范围时,仅依附人为完成批量布局服务器个能源的安排,运转专门的学业将变得繁琐且便于失误,为了消除那一主题素材,大家应有怎么做呢?大家能够引进一群工具,那批工具可编写制定相应的manifests代码,运行它便可以自动实现全体的做事,如今可比盛行的运转为工人身份具根本有:puppet,ansible,
slackstack等,在那大家注重以puppet来实行话题。在局部巨型互连网商家中,运转自动化管理着几百居然上千台服务器,它能够本着多台服务器实行统壹操作,比方布署联合软件、实行合并上线维护等,而且可以神速到位上线安顿,减弱人力及人力误操作风险。

设置妄图

本文的安装与设定音信如下

IP Hostname OS Puppet软件
192.169.31.131 host131 CentOS7.4 Puppet-server 5.4
192.169.31.133 host133 CentOS7.4 Puppet-agent 5.4

二、Puppet的安装

   

安装Master

设置Puppet Master须要如下步骤:

  • Step 1: rpm -Uvh
  • Step 2: yum install puppetserver

本子确认

[root@host131 ~]# puppet --version
5.4.0
[root@host131 ~]#

Puppet的安装形式援助源码安装、yum安装以及ruby的gem安装。官方网站推荐使用yum来安装puppet,方面随后的升迁、管理、维护。Centos能够行使yum来设置,不过Centos的私下认可源中从未puppet包,因而供给先安装epel包。Epel是信用合作社版Linux附加软件包(Extra
Packages for Enterprise Linux)的缩写,是1个由特别兴趣小组创造、维护并管理的,针对红帽公司版Linux(奇骏HEL)随同衍生发行版(举例CentOS、Scientific Linux)的3个高素质附加软件包项目。

行事规律   

安装Agent

安装Puppet Agent要求如下步骤:

  • Step 1:rpm -Uvh
  • Step 2:yum install puppet-agent

本子确认

[root@host133 ~]# puppet --version
5.4.0
[root@host133 ~]#
  1. Master的安装

puppet的指标是让系统一管理理员只集中于要管理的目的服务器,而忽视完结的细节。puppet既能够在单机上运用,也能够C/S结构选择,在大规模陈设puppet的景观下,日常我们会使用C/S结构,在这种布局下,服务端运维puppet-master程序客户端运营puppet-client服务程序

早先化设定

yum -y install ruby ruby-libs ruby-shadow

实际的干活流程图如下所示:

启动Puppet master

在master所在节点host13一,使用如下命令运行master,在那之中–debug为出口调节和测试音信

[[email protected] ~]# puppet master --no-daemonize --debug
Debug: Applying settings catalog for sections main, master, ssl, metrics
Debug: Evicting cache entry for environment 'production'
Debug: Caching environment 'production' (ttl = 0 sec)
...

wget
ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

对于puppet的的牵线,精通puppet的做事原理是3个少不了的的阶段,只有在摸底了puppet的办事原理后本事更加好使用puppet,上边让大家共同精晓学习puppet的干活原理:

启动Agent

在agent所在节点host13三,尝试连接host133,因为非缺省设定,可经过server=host13一传入设定

[[email protected] ~]# puppet agent --server=host131 --test --debug
Debug: Applying settings catalog for sections main, agent, ssl
Debug: Caching environment 'production' (ttl = 0 sec)
Debug: Evicting cache entry for environment 'production'
Debug: Caching environment 'production' (ttl = 0 sec)
...
Debug: Dynamically-bound port lookup failed; falling back to ca_port setting
Debug: Creating new connection for https://host131:8140
Exiting; no certificate found and waitforcert is disabled
[[email protected] ~]# 

依据提醒发掘证书设定不正确,所以接下去供给设定服务器侧证书音信

rpm -Uvh epel-release-5-3.noarch.rpm

谈到puppet的劳作规律,不得不从以下多少个地点来讲到,如下所示:

缺省证书消息

列出当下注明新闻,发掘有两张证书,在那之中当前机械host13壹的和host13叁,host13三前不带+申明此证书未经过调查。

[[email protected] ~]# puppet cert list -all
  "host133" (SHA256) 52:2A:AE:C0:58:47:B1:C3:8E:BC:80:F5:51:71:6C:46:77:58:00:4C:96:61:6D:FA:4E:AD:59:4B:F6:71:78:4E
+ "host131" (SHA256) 0E:2E:2B:22:61:E8:F1:59:3A:E4:92:F9:99:2E:3F:D4:7F:D6:E6:83:21:E0:96:4B:1F:4E:7A:A3:D4:EE:FA:78
[[email protected] ~]#

因为证书host13三未经过审查批准,所以从客户端host13叁发过来的测试音讯不能通过,使用命令对此证书实行核查和认可

[root@host131 ~]# puppet cert sign host133
Signing Certificate Request for:
  "host133" (SHA256) 52:2A:AE:C0:58:47:B1:C3:8E:BC:80:F5:51:71:6C:46:77:58:00:4C:96:61:6D:FA:4E:AD:59:4B:F6:71:78:4E
Notice: Signed certificate request for host133
Notice: Removing file Puppet::SSL::CertificateRequest host133 at '/etc/puppetlabs/puppet/ssl/ca/requests/host133.pem'
[root@host131 ~]# 
[root@host131 ~]# puppet cert list -all
+ "host131" (SHA256) 0E:2E:2B:22:61:E8:F1:59:3A:E4:92:F9:99:2E:3F:D4:7F:D6:E6:83:21:E0:96:4B:1F:4E:7A:A3:D4:EE:FA:78
+ "host133" (SHA256) 68:4B:45:DD:99:C7:F7:ED:25:BB:DC:BD:18:3A:81:8C:EF:9F:1D:3E:FB:1E:2D:73:B3:77:31:DE:46:E4:E1:E5
[root@host131 ~]# 

yum -y install puppet puppet-server facter

(一)定义:使用Puppet特定的言语定义基础配置音信。平常大家把那几个音信写在Modules中。

重新打开Agent连接

双重张开Agent连接,则发现Agent已经能够健康与Master实行通讯了。

[root@host133 ~]# puppet agent --server=host131 --test
Info: Caching certificate for host133
Info: Caching certificate_revocation_list for ca
Info: Caching certificate for host133
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for host133
Info: Applying configuration version '1519038659'
Info: Creating state file /opt/puppetlabs/puppet/cache/state/state.yaml
Notice: Applied catalog in 0.01 seconds
[root@host133 ~]# 
  1. Agent的安装

(2)模板:在配置试行在此以前检查测试代码,但并不真正施行。

yum install ruby ruby-libs ruby-shadow

(三)推行:定义的布局活动安插。检查评定并记录下所产生变化的1对。

wget
ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

(肆)报告:将梦想的转变、实际发生的变动及别的修改发送给报告体系。

rpm -Uvh epel-release-5-3.noarch.rpm

如下所示为puppet的办事数据流暗暗提示图

yum -y install puppet facter

www.hj8828.com 1

 

数据流表达:

         至此假设设置进度不报错的话,puppet已经安装成功了。

壹.率先具备的节点(Node)Node节点将Facts和本机新闻发送给Master

3、Puppet的简要陈设

贰.Master告诉Node节点应该怎么样安顿,将这个音信写入Catalog后传给Node。

  1. Master的配置

3.Node节点在本机进行代码解析验证并实践,将结果报告给Master。

先来探视puppet主目录下都有啥文件已经各类文件是做如何用的:

四.Master因而API将数据发给分析工具。报告完全能够通过开放API或与其他系统融为一体。

ls -1 /etc/puppet/

凡事数据流的走向是依附SSL安全磋商的,如下图所示:

auth.conf       #定义puppet
master的acl文件

www.hj8828.com 2

fileserver.conf   #定义puppet
master文件服务器的布局文件

模板文件管理过程表明如下:

manifests        #puppet脚本主文件目录,site.pp文件必须存在

Puppet通过编写翻译Manifest中的内容
(即模板中内容),将编写翻译好的代码存入Catalog。在推行前先实行代码的证实,再执行,完毕最初叶所定义好的情状。代码编写翻译进程如图所示:

modules            #puppet模块目录

www.hj8828.com 3

puppet.conf     #puppet主配置文件

一般来讲所示为1切puppet自动铺排进程中agent和master的详实的互动进度:

ssl                     #寄存ssl证书的目录

www.hj8828.com 4

刚初阶以来, puppet.conf无需配备就能够满足。

进度表达:

亟待改造hosts文件,注意hosts要和主机名对应。

一.
Puppet客户端Agent将节点名与facts消息发送给Master。

vim  /etc/hosts加多如下内容:

贰.
Puppet服务端Master通过分类推断请求的客户端是什么人,它将在做哪些。那么些剖断是透过site.pp中涵盖的Node.pp配置文件定义的。

10.1.4.218 puppet.zhang.com puppet

三.
Puppet服务端Master将所急需的Class类音讯举行编译后存入Catalog并发送给Puppet客户端Agent,到此变成第2回交互。

10.1.4.213 node1.zhang.com node1

4.
Puppet客户端Agent对Catalog实行代码验证(语法检查及错误检查)并实行。主尽管代码的验证,并将实施进度的消息及结果写入日志。

10.1.4.214 node2.zhang.com node2

5.
Puppet客户端Agent最后到达最初阶所定义的状态,并且将结果及其他实行多少经过开放API的花样发送给Puppet服务端Master。

世家要依照真实意况加,笔者那边是3个master,多少个agent。

如上就是puppet的行事规律需要小心是:因为任何经过中都以依照ssl完成的,所以最首要的是保险agent和master间能够依照ssl通信!

  1. Agent的配置

   

Agent的布局首借使更动agent上的/etc/puppet/puppet.conf文件的[agent]部分。

Hardware

在agent上vim /etc/puppet/puppet.conf 增加如下配置

The Puppet agent
service has no particular hardware requirements and can run on nearly
anything.

server = puppet.zhang.com        #master服务器的地点

However, the Puppet
master service is fairly resource intensive, and should be installed on
a robust dedicated server.

runinterval = 3600                      
#每隔多久的时刻进行自动更新,时间单位为秒

  • At a minimum, your
    Puppet master server should have two processor cores and at least 1
    GB of RAM.
  • To comfortably
    serve at least 1,000 nodes, it should have 2-4 processor cores and
    at least 4 GB of RAM.

listen = true                         #客户端作为三个劳动实行监听,允许其余的机械触发puppet运维允许远程触发puppet的节点配置

The demands on the
Puppet master vary widely between deployments. The total needs are
affected by the number of agents being served, how frequently those
agents check in, how many resources are being managed on each agent, and
the complexity of the manifests and modules in use.

 

来自
<>

四、puppet的运行和终止

   

  1. Master的开发银行和结束

Puppet consists of:

Master的启动

  • A puppet-agent
    “All-in-One” package that installs Puppet, Ruby,
    Facter,
    Hiera, and
    supporting code.
  • A puppetserver
    package that installs Puppet
    Server.
  • A puppetdb package
    that installs PuppetDB.

/etc/rc.d/init.d/puppetmaster start

To install these, read
the pre-install
instructions, then
see the Puppet installation guides for
Linux,
Windows, and
macOS.

也足以以利用
service puppetmaster start运营

   

先是次运维提出采纳puppet master –verbose –no-daemonize形式运转,有助于测试和调试错误,即使选取前边这种措施,你能够见见运行的全套进度,运维进度会做一些初叶化的干活,为master创造本地证书认证中央,证书和key。并开荒socket等待client的接二连三。你能够在/etc/puppet/ssl目录看到相关的文本和目录。

Puppet 5 Platform
contents

Master的停止

Puppet 5 Platform
contains the following components:

/etc/rc.d/init.d/puppetmaster stop

Package

Contents

puppet-agent

Puppet, Facter, Hiera, MCollective, pxp-agent, root certificates, and prerequisites like Ruby and Augeas

puppetserver

Puppet Server; depends on puppet-agent 5 or greater

puppetdb

PuppetDB

puppetdb-termini

Plugins to let Puppet Server talk to PuppetDB

也足以以利用
service puppetmaster stop结束