博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
puppet 配置 1. 服务器, 客户端配置说明
阅读量:4078 次
发布时间:2019-05-25

本文共 3303 字,大约阅读时间需要 11 分钟。

puppet 作用

1.  适合于在主机完成初始化安装后 (可通过 cobbler + kickstart 进行自动化安装部署) , 进行统一的管理2.  常见管理包括,  用户, 系统基础配置,  服务,  进程,  软件等等3.  适合于大规模对大量主机执行重复的相同的配置, 简化了管理员分别对主机执行重复的枯燥的配置, 避免了因为手误, 因为其他原因对主机执行错误配置4.  puppet 还可以定期重启执行, 确保服务, 配置文件一致性,  也可以执行集中化升级降级处理等功能5.  类似的几种管理软件有多种, 如 cfengine,puppet,chef, ansible 等等, 本文只针对 puppet 进行讨论,  不对其他软件评价与比较

基础环境介绍

server:    hostname:        terry-test-uq2pu.vclound.com   ip address:      10.199.198.218   os version:      2.6.32-504.23.4.el6.x86_64   puppet version:  puppet-server-3.6.2-1client:    hostname:        terry-rhel7.vclound.com   ip address:      10.199.198.86   os version:      3.10.0-229.el7.x86_64   puppet version:  puppet-3.6.2-3.el7.noarch

软件包安装方法 (略)

服务端配置文件说明

/etc/puppet/puppet.conf

作用: 主配置文件, 用于控制服务端

[main]    logdir = /var/log/puppet    rundir = /var/run/puppet    ssldir = $vardir/ssl    fileserverconf = /etc/puppet/fileserver.conf           # 用于共享文件, 并传送至客户端, 格式: puppet:///    manifest = /etc/puppet/manifests/main-site.pp          # 用于指定使用哪一个模板    modulepath = /etc/puppet/modules                       # 定义存放模板的位置[agent]    classfile = $vardir/classes.txt    localconfig = $vardir/localconfig    autosign = /etc/puppet/autosign.conf                   # 自动为客户端进行密钥认证, 避免手动为每个客户密钥签名

/etc/puppet/fileserver.conf

作用: 用于共享文件, 并传送至客户端, 格式: puppet:///

[files]  path /etc/puppet/files  allow *

/etc/puppet/autosign.conf

作用: 自动为客户端进行密钥认证, 避免手动为每个客户密钥签名

*.vclound.com              # 所有主机后缀为  *.vclound.com 则执行自动密钥签名

/etc/puppet/manifests/main-site.pp

作用: 定义模板位置

if versioncmp($::puppetversion,'3.6.1') >= 0 {  $allow_virtual_packages = hiera('allow_virtual_packages',false)  Package {    allow_virtual  => $allow_virtual_packages,  }}import 'terry/terry-test.pp'                             #  使用这个文件作为当前的 puppet 模板

/etc/puppet/manifests/terry/terry-test.pp

作用: 定义了客户端主机, 配置等功能, 所有 puppet 操作都在该文件中进行定义

客户端主机定义方法

1. puppet 客户端连接服务端需要经过验证 (主机名验证)2. 服务端 客户端主机名更改后, 需要重新进行验证3. 服务端, 客户端主机名都必须复合 fqdn 规则4. 只有被定义的主机可以可以使用到该 puppet 模板 (参考下面定义方法)

定义方法:

只匹配 terry.vclound.com 主机

node /terry.vclound.com/ {   各种 puppet 定义;}

只匹配 terry1.vclound.com, terry2.vclound.com, terry3.vclound.com 主机

node 'terry1.vclound.com', 'terry2.vclound.com', 'terry3.vclound.com' {    各种 puppet 定义;}

匹配所有以 vclound.com 后缀的主机名

node /\\*.vclound.com/ {    各种 puppet 定义;}

客户端配置文件说明

/etc/puppet/puppet.conf

作用: 定义 puppet 主服务器位置则可

[main]    logdir = /var/log/puppet    rundir = /var/run/puppet    ssldir = $vardir/ssl    server = terry-test-uq2pu.vclound.com        # 定义 puppet 服务器, 需要 dns 或 /etc/hosts 解释[agent]    classfile = $vardir/classes.txt    localconfig = $vardir/localconfig

注: 假如不进行上述的 server = xxx 定义, 那么在运行 puppet 时候, 需要手动添加 –server 参数也是可以的

puppet 的启动方法

服务端启动方法

rhel6  /etc/init.d/puppetmaster startrhel7  systemctl start puppetmaster

当服务器启动后, 默认会在下面生成三个密钥, 不建议对服务端执行主机名修改方法, 因为会导致验证失败, 需要手动维护才可以令 puppet master 重新生效, 是一个比较麻烦的操作

/var/lib/puppet/ssl/certs/terry-test-uq2pu.vclound.com.pem/var/lib/puppet/ssl/private_keys/terry-test-uq2pu.vclound.com.pem/var/lib/puppet/ssl/public_keys/terry-test-uq2pu.vclound.com.pem

客户端启动方法

暂时只需要按需连接或者利用 cron job 执行客户端与服务器连接则可当然, 也可以使用 /etc/init.d/puppet start 方法令 puppet 长期处于后台进程

客户端连接方法:

puppet agent -t --debug

注意

假如客户端主机名改变或者在之前已经曾经连接过其他的 puppet server则启动或连接当前的 puppet server 会出现报错解决方法删除密钥后 rm -rf /var/lib/puppet/ssl/*  在尝试重新连接 puppet server

转载地址:http://tlnni.baihongyu.com/

你可能感兴趣的文章
路由选择算法
查看>>
Objective-C 基础入门(一)
查看>>
Objective-C 基础入门(三) 读写文件与回调
查看>>
C++ STL标准库与泛型编程(一)概述
查看>>
C++ STL标准库与泛型编程(四)Deque、Queue、Stack 深度探索
查看>>
C++ STL标准库 算法
查看>>
JVM内存模型_Minor GC笔记
查看>>
SpringCloud学习之PassCloud——(一)PassCloud源代码下载
查看>>
Linux下安装Python环境并部署NLP项目
查看>>
Nginx篇-springCloud配置Gateway+Nginx进行反向代理和负载均衡
查看>>
Nginx篇-Nginx配置动静分离
查看>>
缓存篇-Redis缓存失效以及解决方案
查看>>
缓存篇-使用Redis进行分布式锁应用
查看>>
缓存篇-Redisson的使用
查看>>
phpquery抓取网站内容简单介绍
查看>>
找工作准备的方向(4月22日写的)
查看>>
关于fwrite写入文件后打开查看是乱码的问题
查看>>
用结构体指针前必须要用malloc,不然会出现段错误
查看>>
Linux系统中的美
查看>>
一些实战项目(linux应用层编程,多线程编程,网络编程)
查看>>