0

0

Linux Puppet 配置管理基础

冰川箭仙

冰川箭仙

发布时间:2026-02-25 17:21:28

|

236人浏览过

|

来源于php中文网

原创

根本原因是模块路径配置错误,puppet仅在默认路径(如/etc/puppetlabs/code/environments/production/modules)或--modulepath指定路径下查找模块;模块名须与目录名一致、小写无下划线,init.pp须位于manifests/子目录。

linux puppet 配置管理基础

为什么 puppet apply 总报错说找不到模块?

根本原因不是模块没写,而是 Puppet 默认只在 /etc/puppetlabs/code/environments/production/modules 或当前目录的 modules/ 下找——你把模块放错了位置,它就当不存在。

  • 检查模块路径:运行 puppet config print modulepath,看输出是否包含你放模块的实际目录
  • 临时指定路径更可靠:用 puppet apply --modulepath ./my_modules site.pp,避免依赖全局配置
  • 别用 git clone 直接扔进 modules/ 顶层:Puppet 要求每个模块是独立子目录,比如 modules/nginx/,而不是 modules/puppet-nginx/
  • 模块名必须和目录名完全一致(小写、无下划线),init.pp 必须在 modules/<strong>nginx</strong>/manifests/init.pp,否则 class nginx 就加载失败

如何让 file { '/etc/motd': } 真正生效而不被覆盖?

直接写资源声明容易被其他模块或系统服务抢写,关键在控制所有权和触发时机。

魔众积分商城系统
魔众积分商城系统

魔众积分商城系统提供积分商城,会员积分系统,积分兑换商城,积分系统,积分运营,营销活动工具,积分游戏。API接口对接会员积分系统,简单配置页面即可上线,助力企业会员运营管理。 魔众积分商城系统,商品兑换更加容易 魔众积分商城系统支持多种操作系统和软件环境,如Linux/Unix、Windows操作系统以及Apache/Nginx、PHP5.5.9+/PHP7.0、MySQL5.

下载
  • replace => true 强制覆盖,但要小心:如果 motd 是其他服务生成的(如 issue-generator),Puppet 每次运行都会把它打回原形
  • notify => Service['rsyslog'] 这类链式触发不适用;motd 不是服务,改完不用重启啥——重点是确保它不被后续流程覆盖
  • 更稳的做法:配合 exec 资源先停掉干扰进程,比如 exec { 'stop-motd-gen': command => '/bin/systemctl stop motd-news.service', path => ['/bin', '/usr/bin'] },再声明 file
  • 注意权限:Puppet 默认以 root 跑,但若用 --user 测试,file 资源会因权限不足静默失败,错误日志里只显示 “failed to set mode”

puppet agent -t 卡住不动,连 master 都没连上?

不是网络不通,大概率是证书或主机名没对上。Puppet 的 TLS 握手比 HTTP 严格得多。

  • 先查证书状态:puppet cert list --all,如果 agent 主机名不在列表里,master 根本不会响应请求
  • 确认 /etc/puppetlabs/puppet/puppet.conf[agent] server = puppetmaster.local 的值,能 nslookup 解析,且和 master 的证书 CN 完全一致(大小写敏感)
  • 常见坑:用 IP 当 server 地址,但 master 证书是用域名签发的 → 不匹配,握手直接断开,-t 就卡在 “Applying configuration version” 前
  • 调试加 --debug,但别只扫日志末尾:关键线索在 “Could not request certificate: SSL_connect returned=1 errno=0 state=error: certificate verify failed” 这一行

为什么 class 参数传进去,$myvar 在模板里还是空?

变量作用域没透过去,不是语法错,是 Puppet 的作用域继承规则在起作用。

  • 模板里用 ,前提是这个变量在调用 template() 的上下文中已定义;class nginx($myvar = 'default') { ... } 里的 $myvar 不自动暴露给模板
  • 正确做法:在 class 内显式传参,比如 content => template('nginx/vhost.erb') 改成 content => template('nginx/vhost.erb', { 'myvar' => $myvar })
  • 或者改用 scope.lookupvar('nginx::myvar'),但强耦合命名空间,维护性差
  • 注意:Hiera 数据自动注入只对 class 参数有效,对模板变量无效——别指望 hiera.yaml 里配了 nginx::myvar,模板就能直接用 @myvar
事情说清了就结束。Puppet 的坑不在语法多难,而在它把很多隐式约定(路径、证书、作用域、权限)绑得太紧,改一处常牵出三处失效。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

240

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

519

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

587

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

243

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

585

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3606

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

51

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

67

2026.01.13

batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

127

2026.02.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.7万人学习

Git 教程
Git 教程

共21课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号