puppet 资源及依赖关系及本地测试
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一.本地pp 文件测试 package {"nginx": #作用:安装nginx ensure=> latest,} service {"nginx"
千家信息网最后更新 2026年11月01日puppet 资源及依赖关系及本地测试
一.本地pp 文件测试
package {"nginx": #作用:安装nginx ensure=> latest,} service {"nginx": #作用:启动nginx,并让设置开机启动 ensure=> running, enable=> true, restart => "systemctl restart nginx.service", #只有被通知或者订阅才会被触发重启 subscribe => file["/etc/nginx/nginx.conf"], #监听下面那个服务,若触发了,重启nginx #测试得出结论,如果新文件事先已经存在没有发生修改,重启nginx不会被触发。} file{"/etc/nginx/nginx.conf": #作用:复制nginx配置文件 ensure=>file, content=>template("/root/nginx.conf"),}puppet apply -v --noop cs.pp #测试运行,并不真正安装,用于看报错的
puppet apply -v cs.pp #真正运行安装
二.资源的依赖关系
before:表示需要依赖于某个资源
require:表示应该先执行本资源,在执行别的资源
notify:A notify B:B依赖于A,且A发生改变后会通知B
subscribe:B subscribe A:B依赖于A,且B监控A资源的变化产生的事件
subscribe例:
package {"httpd":ensure=> present,subscribe =>package["nginx"],#表示订阅下面那个资源,如果下面那个资源执行不成功这个资源不会执行,下面资源执行成功了或者已经在执行完毕的状态了,本资源就会执行}package {"nginx": ensure=> present, }notify例:package {"httpd":ensure=> present,}package {"nginx":ensure=> present,notify=>package["httpd"],#表示该资源执行完毕通知上面那个资源,这个资源不执行成功,上面那个资源不会执行}依赖关系还可以使用->和~>来排序 例:exec {"echo '1'>>/root/2333.txt": path => ["/usr/bin", "/usr/sbin"],}exec {"echo '2'>>/root/2333.txt": path => ["/usr/bin", "/usr/sbin"],}exec {"echo '3'>>/root/2333.txt": path => ["/usr/bin", "/usr/sbin"],}exec["echo '3'>>/root/2333.txt"] -> exec["echo '2'>>/root/2333.txt"] -> exec["echo '1'>>/root/2333.txt"]如果是正常输出结果应该为123,但是我用 -> 符号定义运行顺序最后输出结果为
三.几个常用的资源介绍
1.exec资源exec { "mkdir 666":#执行的命令 cwd => "/root/",#在那个路径执行命令,给了如果路径不存在,执行失败 creates => "/root/678",#判断,如果有这个文件夹了就不执行了 path => ["/usr/bin", "/usr/sbin"]#命令程序,到那个路径去找执行文件}2.package (安装软件)package{["httpd.x86_64","nginx.x86_64"]: #以[,]隔开可安装多个软件 ensure => purged, #latest安装最新的,installed 安装,purged 删除软件包 provider => "yum", #以yum方式安装在yum源里安装}package{"nginx": ensure => installed, provider => "rpm", #以rpm本地文件安装,下面必须指定安装文件的路径,否则报错 source => "/root/nginx-1.8.1-1.el7.ngx.x86_64.rpm"}3.service 和 flieclass xingjian{service{"nginx": ensure => running, #设置成什么状态 running正在运行, stopped停止状态 enable => true, #是否开启自启 true是,false否 hasrestart => true, hasstatus => true, require => file['/etc/nginx/nginx.conf'], #在执行资源时,先检查下面那个资源是否执行 }file {"/etc/nginx/nginx.conf": #复制的路径 ensure =>file, #文件类型,file直接复制原有类型,如果要填link的是创建链接文件,但是要创建链接文件的话,下面的source要换成target,如果填directory就是复制文件夹,需要在添加recurse='true'实现递归复制 source =>"/root/nginx.conf", #源文件路径 } }4.cron(计划任务)cron {"jihua": command => "/root/1.sh", ##执行脚本的路径名或者命令路径名 ensure => "present", #present 如果该cron不存在则添加,absent 如果该cron存在则删除 minute => "*/5", #5分钟运行一次,和crontab用法一样 target => "root", #以什么用户执行脚本}5 user 和 group group{"yangzai": #组名 ensure => present, gid => "2333", system => false, #是否为系统组 # members:成员用户, } user{"yangzai": #用户名 ensure =>present, system =>false, comment =>"233", #注释,一般描述运行啥软件 shell =>"/bin/bash", #默认shell home =>"/home/yangzai", #家目录路径 managehome => true, #是否创建家目录 groups => "yangzai", uid => "2333" }7. notify {"hello world":} #显示信息
资源
文件
路径
运行
命令
软件
测试
成功
作用
状态
用户
文件夹
目录
类型
结果
脚本
路径名
链接
订阅
输出
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技有限公司
重生之互联网科技帝国
网络科技有限互联网
浩特互联网科技
互联网科技股有哪些
中国互联网金融科技基金
卓越科技互联网 招聘
科技与互联网的利与弊
北京大学互联网科技怎么样
燊美集互联网科技有限公司
长沙茂晟互联网科技有限公司
山东子淼互联网科技有限公司
梅州GM互联网络科技有限公司
工业互联网科技成果转化
35岁以上互联网科技行业
广州智享互联网科技
版纳互联网科技选哪家
第三届互联网大会安防黑科技
互联网高科技绘画
知域互联网科技有限公司官网
云南咖啡
广州百单互联网科技有限公司
互联网未来科技
极限挑战互联网科技
碳银互联网科技有限公司
南平创想时代互联网科技有限公司
搜狐科技互联网
黑科技 体验场景 互联网大会
福州德业互联网科技
瑞安市蟠桃会互联网科技有限公司