puppet 资源及依赖关系及本地测试
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,一.本地pp 文件测试 package {"nginx": #作用:安装nginx ensure=> latest,} service {"nginx"
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
数据库文件操作
网络安全情景剧3人
服务器一个区多少人
软件开发行业即征即退政策
多媒体视频系统服务器
窗体连接数据库主代码
服务器电池断电
软件开发提成比例
数据库加密是什么安全
江苏办公系统软件开发定制费用
数据库一个表哪个是主键
桌面无法连接到服务器
平凉bim软件开发工程
中科院语音数据库
软件开发合同分部分项验收
祁东天气预报软件开发
北京项目软件开发定制
巨丰科技互联网有限公司
网络安全隔离交换系统
政企的网络安全合作有哪些
网络安全孵化器推荐
剑侠情缘3服务器查询
网络安全法第29条罚款
无线网络技术第二章习题
ios软件开发招聘要求
河南计算机软件开发需要多少钱
多媒体视频系统服务器
数据库设计PPT孙忠林
装备承制单位 软件开发
税务网络安全经验材料