pupet配置管理

2024-03-31 1173阅读

一 puppet 的概念

    Puppet 是一种 Linux、Unix、windows 平台的集中配置管理系统,使用自有的 puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。puppet 把这些系统实体称之为资源,puppet 的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

二 puppet 架构

    C/S 星型架构。客户端每隔一段时间,从服务器端检查是否有更新。如果有更新则下载更新内容,并严格按照该内容配置自己。配置成功或出错将会通知服务器。

三 puppet 工作过程

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

2.服务器端的 puppetmaster 检测到客户端的主机名,然后会到 manifest 里面对应的 node配置,然后对这段内容进行解析,facter 送过来的信息可以作为变量进行处理的,node 牵涉

到的代码才解析,其它的代码不不解析,解析分几个过程:语法检查、然后会生成一个中间的伪代码,然后再把伪代码发给客户机

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

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

四 实验步骤

ntp时间同步

1.安装软件

 配置好 yum 源:

#vim /etc/yum.repos.d/y.repo

pupet配置管理

安装软件:

 服务器:#yum --enablerepo=y install puppet-server -y

 客户端:#yum --enablerepo=y install puppet -y

2.配置服务器及客户端的主机名

 配置 DNS 服务,使得每台机器的主机名可以被解析

3.puppet 服务器与客户端建立连接

(1)编辑服务器端 puppet 配置文件

 #vim /etc/puppet/puppet.conf

 在配置文件[main]区域内,写入服务器的完整 FQDN

 dns_alt_names = www.yy5.com

pupet配置管理

(2)验证服务器端软件安装是否成功,及主机名配置是否有误(实际上进行了一次 CA 的认证)

 #puppet master --verbose --no-daemonize

pupet配置管理

(3)服务器端启动服务:systemctl start puppetmaster

(4)客户端编辑配置文件

 #vim /etc/puppet/puppet.conf

 在[agent]区域添加服务器的 FQDN

 server = www.yy5.com

pupet配置管理

(5)测试客户端与服务器的连接性(实际上是在客户端生成用于连接的请求证书)

 puppet agent --test --ca_server=www.yy5.com

pupet配置管理

(6)客户端启动服务:systemctl restart puppet

(7)服务器签署客户端验证请求证书

 查看来自客户端的证书:puppet cert list

pupet配置管理

 4、签署来自节点的证书

 puppet cert --allow-dns-alt-names sign 证书名

pupet配置管理

(1)修改客户端与服务器端同步时间

 编辑服务器端/客户端配置文件:

#vim /etc/puppet/puppet.conf

  在[main]区域内增加:runinterval = 1

pupet配置管理

pupet配置管理

注:默认单位为秒 s

(2)在服务器端编辑客户端配置文件

 进入指定目录:cd /etc/puppet/manifests

 编辑配置文件:vim site.pp(文件名必须是这个)

 配置文件内容:

group{'test':

ensure => presnt,

gid => 2000,

}

pupet配置管理

注:资源类型与{}间没有空格

    在客户端 cat /etc/group|grep test 可见新生成的 test 组,组的 ID 为 2000

pupet配置管理

(3)在客户端指定目录下生成文件

 编辑服务器端配置文件

 vim /etc/puppet/manifests/site.pp

 file{ '/home/yy.txt':

 ensure => file,

 owner => 'root',

 group => 'root',

 mode => 644,

 content => 'This is the puppet test file.',

 }

pupet配置管理

注:如果服务器端也想按照/etc/puppet/manifests 下的配置文件对自己进行配置,可以使用命令:puppet apply /etc/puppet/manifests/site.pp

pupet配置管理

(4)在客户端生成文件时指定文件内容

 编辑服务器端配置文件

 vim /etc/puppet/manifestes/site.pp

$contents = 'Finally,we will have a small holiday,it is god damn it well'

file{ '/mnt/test':

ensure => file,

owner => 'root',

group => 'root',

mode => 755,

content => "$contents",

}

pupet配置管理

在客户端查看

pupet配置管理

(5)以指定文件作为内容模板

 编辑服务器端配置文件

 #vim /etc/puppet/fileserver.conf

 开启 13-15 注释

pupet配置管理

 生成用于存储模板文件的目录:

#mkdir -pv /etc/puppet/files

#chown 777 files

pupet配置管理

 创建模板文件:

#echo "test file" > files/f1

pupet配置管理

 编辑服务气端节点的配置文件:

#vim /etc/puppet/manifestes/site.pp

file{ '/home/test1':

ensure => file,

owner => 'root',

group => 'test',

mode => 644,

source => 'puppet://www.yy5.com/extra_files/f1',

}  (蓝色字体表示模板文件目录)

pupet配置管理

 注:此时需重启服务,因为修改过fileserver.conf配置文件。

服务器端重启服务:systemctl restart puppetmaster

查看客户端

pupet配置管理

(6)创建连接文件

 编辑服务器端配置文件:

#vim /etc/puppet/manifests/site.pp

file{ '/mnt/test1.link':

ensure => link,

target => '/mnt/test',

}

pupet配置管理

客户端查看

pupet配置管理

注:该链接文件为硬链接

(7)删除一个文件

 编辑服务器端配置文件:

#vim /etc/puppet/manifests/site.pp

file{'/mnt/test1.link':

ensure => absent,

}

pupet配置管理

注:要注释之前生成的,避免生成删除循环

客户端查看

pupet配置管理

(8)根据目录模板创建目录

 编辑服务器端配置文件:

#vim /etc/puppet/fileserver.conf

 添加:

[extra_dirs]

path /etc/puppet/dirs

allow *

pupet配置管理

 创建模板目录:mkdir -pv /etc/puppet/dirs.

#echo 888888888 > dirs/f1

pupet配置管理

 编辑节点配置文件:vim /etc/puppet/manifests/site.pp

file{'/home/yi':

ensure => directory,(针对目录)

recurse => true,

purge => true,

force => true,

owner => 'root',

group => 'root',

mode => 777,

source => 'puppet://www.yy5.com/extra_dirs/f1',

}

pupet配置管理

 服务器端重启服务:systemctl restart puppetmaster

客户端查看

pupet配置管理

(9) 软件包的安装与卸载

1.使用本地 yum 源安装软件

package{'httpd':

 provider => yum,

 ensure => installed,

}

pupet配置管理

查看客户端

pupet配置管理

2.使用本地 yum 源升级软件

package{'httpd':

 provider => yum,

 ensure => latest,

}

3.安装指定服务器上的软件

package{'epel-release':

 provider => rpm,

 ensure => installed,

 source => 'http://172.16.100.1/epel/epel-release-latest-7.noarch.rpm',

}

pupet配置管理

查看客户端

pupet配置管理

4.卸载软件

package{'httpd':

 provider => yum,

 ensure => purged,

}

pupet配置管理

查看客户端

pupet配置管理

10) 服务资源管理

1.运行 httpd

service{'httpd':

 name => 'httpd',

 ensure => running,

}

2.运行 httpd,如果 httpd 程序不存在则安装,安装后启动 httpd

package{'httpd':

 provider => yum,

 ensure => installed,

}

service{'httpd':

 name => 'httpd',

 ensure => running,

 require => Package['httpd'],

}

pupet配置管理

3.停止 httpd

service{'httpd':

 name => 'httpd',

 ensure => stopped,

}

4.更新 httpd.conf 后,重启 httpd

1)vim /etc/puppet/fileserver.conf

取消 13-15 行注释

[extra_files]

path /etc/puppet/files

allow *

pupet配置管理

2)生成文件模板即所在目录

#mkdir -pv /etc/puppet/files

#touch /etc/puppet/files/index.html(此文件名可任意取名)

#echo Tast Page……… > index.html

3)编辑客户端资源配置文件

 vim /etc/puppet/manifests/site.pp

node 'www.yy5.com' {

file{'/var/www/html/index.html':

 ensure => file,

 owner => 'root',

 group => 'root',

 mode => 755,

 source => 'puppet://www.server.com/extra_files/index.html',

 notify => Service['httpd'],

}

service{'httpd':

 name => 'httpd',

 ensure => running,

}

}

Node 'www.yy6.com' {

package{'elinks':

 provider => yum,

 ensure => installed,

}

}

注:node{}指定某客户端执行以下操作

pupet配置管理

客户端测试

pupet配置管理

pupet配置管理

pupet配置管理

资源执行管理:通过脚本让客户端自动下载软件、启动服务

  1. 在puppet服务器端编写脚本 :vim nfs.sh

#!/bin/bash

yum install nfs-utils -y &> /dev/null

mkdir  /mnt/share

chmod 777 /mnt/share

echo “/mnt/share  *(rw)” > /etc/exports

systemctl restart rpcbind

systemctl restart nfs-server

pupet配置管理

2.运行脚本:bash nfs.sh

3.在服务器端编写客户端配置文件:

  vim /etc/puppet/manifests/site.pp

node ‘www.yy6.com’ {

file{'/root/f1':          

ensure => file,         

owner => 'root',         

group => 'root',         

mode => 755,          

source => 'puppet://www.yy5.com/extra_files/nfs.sh',

 }

exec{'/usr/bin/bash /root/f1':         

path => ["/usr/sbin:/usr/bin/:usr/bin/bash"],         

subscribe => File['/root/f1'],         

refreshonly => true

}

}

pupet配置管理

4.以指定文件作为内容模板: 编辑服务器端配置文件

            vim /etc/puppet/fileserver.conf

开启 13-15 注释

生成用于存储模板文件的目录:mkdir -pv /etc/puppet/files

将脚本文件移动至上述目录: mv nfs.sh /etc/puppet/files

pupet配置管理

1、在puppet客户端查看脚本是否执行,创建文件写入内容

pupet配置管理

2、在nfs客户端(puppet服务器端)创建挂载点、进行挂载

mount -t nfs 192.168.1.2:/mnt/share  /mnt/nfs

3、查看到挂载的内容:

pupet配置管理

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]