puppet 资源及依赖关系及本地测试
admin
2023-02-27 16:22:09
0

一.本地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,但是我用 -> 符号定义运行顺序最后输出结果为

puppet 资源及依赖关系及本地测试

三.几个常用的资源介绍

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 和 flie
class 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":} #显示信息

相关内容

热门资讯

水龙头出水小怎么解决 水龙头出水小可能是由多种原因引起的,以下是一些常见的解决方法:1. 清洁水龙头:水龙头使用时间长了,...
小神童洗衣机启动后不出水直接洗 有可能是洗衣机的进水阀被烧坏了,需要换一个新的进水阀安装上即可。另外不建议自己擅自拆卸洗衣机内部进行...
祝贺景德镇! 海报制作:苗夏阳正在韩国釜山举行的联合国教科文组织第48届世界遗产大会25日通过决议将“景德镇手工瓷...
中央空调不制冷怎么办-中央空调... 中央空调,是电器股份有限公司主要产品之一,但是由于中央空调使用环境和使用方式的不同,在使用过程中就会...
空调不出水不制冷怎么回事 内罩长期不清洗,当然房间密封性差的话也会导致这种现象;其次就是外机问题,如果外机积满灰尘,会成空调制...
空调不出水,不制冷 原因有多种,可能是电源插头没有接牢、制冷剂不足、空调短时间休息间隙、空调滤网积灰等等。很多情况可以自...
中方反击了,欧盟回应 据凤凰卫视报道,中国商务部7月24日宣布对包括德国军工巨头莱茵金属公司在内的14家欧洲企业实施出口管...
这个“中国首次”,很有看点 刚刚,韩国釜山,第48届世界遗产大会传来好消息:“景德镇手工瓷业遗存”成功列入《世界遗产名录》!这是...
85岁剑桥教授,为何成了中国年... ·2026年6月,艾伦·麦克法兰在英国剑桥大学国王学院。(Muye.G/摄)(本文图片均由剑桥康河出...
西安造12英寸硅片月产销突破1... 12英寸电子级硅片是当前全球半导体产业链的紧缺关键材料。近日,记者从位于西安高新区的西安奕斯伟材料科...