158.5. manifests
158.5.1. node
default 针对所有节点
node default {file {"/tmp/helloworld.txt": content => "hello, world";} }
# cat /etc/puppet/manifests/site.pp node default {file {"/tmp/puppettest1.txt":content => "hello,first puppet manifest";} }
指定节点
# cat /etc/puppet/manifests/test.pp node www {file { "/var/www/index.html":source => "/tmp/something",mode => 666;} }
多个节点
node 'www','images' {...... }
158.5.2. group, user 用户组管理
http://docs.puppetlabs.com/references/latest/type.html#user
http://docs.puppetlabs.com/references/latest/type.html#group
如果没有指定name的话就会建立和资源名一样的用户名/组名,如果指定了name就以name指定的用户名/组名为主
158.5.2.1. group
用户组的添加
node 'node1.example.com' { #为该节点添加一个名字为test的组,并设置组ID为1000,如果不指定name的值,所创建的用户就为web。group { "web":ensure => "present",gid => 1000,name => "test";} #为该节点添加一个httpd的组,并且设置ID和web一样group { "httpd":ensure => "present",gid => 1000,allowdupe => true;} #为该节点删除一个apache的组。group { "apache":ensure => "absent",} }
用户组的删除
node 'node1.example.com' { #为该节点删除一个web的组。group { "web":ensure => "absent",} }
158.5.2.2. user
用户的添加
#创建一个用户并且密码为空 user {"svn":ensure => "present",shell => "/sbin/nologin"; }#创建一个www用户,设置用户描述为webmaster,shell为bash, user {"www":ensure => "present",comment => "webmaster user",name => "www",shell => "/sbin/bash"; }#创建一个gid为80的用户组: group { "www":ensure => "present",gid => 80,}
用户的删除
user { "neo":ensure => "absent", }
创建用户并指定密码
生成密码
# grub-md5-crypt Password: Retype password: $1$ZlJ1u0$tdv/dr8pYuHh.eT47F6b70
user { "www":ensure => "present",uid => 80,gid => 80,home => "/var/www",shell => "/bin/bash",managehome => true,password => '$1$ZlJ1u0$tdv/dr8pYuHh.eT47F6b70'; }file {"/var/www":group => 80,owner => 80,mode => 700,ensure => directory; }
158.5.3. file
file { "/var/www/my/file":source => "/path/in/nfs/or/something",mode => 666; }
158.5.3.1. ensure
ensure => absent; #absent是检测文件是否存在,如果存在则删除 ensure => present; #present正好相反,如果不存在则创建 ensure => directory; #创建一个目录的方法 force = > true; #删除一个目录必须加上这个参数 source => "PATH"; #指定数据来源 backup => ".backup_$uptime_seconds"; 覆盖前备份文件
创建目录实例
file { "/tmp/cache":owner => "www",group => "www",mode => 700,ensure => directory; }
158.5.3.2. source
source 表示 agent节点上的目录
node www {file { "/var/www":owner => "nginx",group => "nginx",mode => 700,ensure => directory;}file { "/var/www/index.html":source => "/tmp/something",mode => 666;} }
从master上获取文件
fileserver.conf 配置如下
[files] path /var/lib/puppet/files allow *
site.pp配置如下
file { "/tmp/test.txt":source => "puppet://puppet.example.com/files/test.txt",}
此处的files为fileserver.conf中定义模块
158.5.3.3. owner, group, mode
file { "/opt/testfile":owner => "puppet",group => "puppet",mode => 777; }
158.5.4. package
present, installed 安装包 absent,pureged 卸载包
# start package {"dnsmasq":ensure => installed;}file {"/etc/resolv.conf":require => Service["dnsmasq"],content => "nameserver 127.0.0.1\n";} service {"dnsmasq":ensure => running,pattern => "dnsmasq" ,require => Package["dnsmasq"];} # end
package {"httpd":ensure => installed; 安装httpd,或用present也表示安装["vim","vsftpd"]:ensure=>absent; 删除vim 和vsftpd软件,使用pureged表示彻底删除软件 }
$package_list = [ "screen", "strace", "sudo" ] package { $package_list: ensure => "installed" }
package { "lamp":ensure => present,provider => rpm,source => "http://192.168.0.1/lamp.rpm"; }
158.5.5. service
service { 'sshd':ensure => running,enable => true,hasrestart => true,hasstatus => true,subscribe => File['/etc/ssh/sshd_config'], }
158.5.6. exec
exec { "creates file":cwd => "/tmp", #指定命令执行的目录。如果目录不存在,则命令执行失败。command => "/bin/echo helloworld > /tmp/hello.txt",user => "root",path => "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"; #命令执行的搜索路径。如果path没有被定义,命令需要使用绝对路径。 }
exec { “/srv/puppet/shell/test.sh”:cwd => “/srv/puppet”,timeout => 7200,logoutput => on_failure,user => root,path => ["/sbin", "/usr/sbin", "/usr/local/sbin", "/usr/local/bin", "/usr/bin", "/bin", "/usr/local/java/jre/bin"],require => File["/srv/puppet/shell/test.sh"] }
158.5.7. cron
cron{ ntpdate:command => "/usr/sbin/ntpdate 172.16.0.1",user => root,minute =>'*/5',require => Package["crontabs"]; }
file { "/etc/cron.hourly/backup":mode => 755,owner => root,group => root,require => Package[mysql],content => template("db/backup.erb"); }
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。
158.5. manifests相关推荐
- DeepMind提图像生成的递归神经网络DRAW,158行Python代码复现
作者 | Samuel Noriega 译者 | Freesia 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]最近,谷歌 DeepMInd 发表论文( DRAW: ...
- 厉害了!一本正经地为单身狗推荐这个158万张图像的鉴黄数据集
本文转自"机器之心"(almosthuman2014) 如果你想训练一个内容审核系统过滤不合适的信息,或用 GAN 实现一些大胆的想法,那么数据集是必不可少的.但限制级图像很难收集 ...
- 158行Python代码复现:DeepMind提图像生成的递归神经网络DRAW
授权自AI科技大本营(ID:rgznai100) 本文约5200字,建议阅读10+分钟. 本文作者基于代码实现系统的思路,详细阐述了 DRAW 的概念.架构和优势等. [ 导读 ]最近,谷歌 Deep ...
- appcompat_v7\res\values-v21\themes_base.xml:158: error: Error: No resource
C:\DevelopSoft\workspace\appcompat_v7\res\values-v21\themes_base.xml:158: error: Error: No resource ...
- 国家卫健委:我国男女性成人平均身高分别为169.7厘米和158厘米
[#我国男女性成人平均身高分别为169.7厘米和158厘米#]国家卫健委副主任李斌23日说,根据<中国居民营养与慢性病状况报告(2020年)>,我国18-44岁男性和女性的平均身高分别为1 ...
- 158行代码!程序员复现DeepMind图像生成神器
最近,谷歌 DeepMInd 发表论文提出了一个用于图像生成的递归神经网络,该系统大大提高了 MNIST 上生成模型的质量.为更加深入了解 DRAW,本文作者基于 Eric Jang 用 158 行 ...
- Android(java)学习笔记158:多线程断点下载的原理(JavaSE实现)
1. 为什么需要多线程下载? 服务器的资源有限,同时的平均地分配给每个客户端.开启的线程越多抢占的服务的资源就越多,下载的速度就越块. 2. 下载速度的限制条件? (1)你的电脑手机宽带的带宽 ...
- 【JAVA资料免费下载】158个JAVA免豆精品资料汇总——下载目录(转载)
[JAVA资料免费下载]158个JAVA免豆精品资料汇总--下载目录(转载) 应广大网友要求,最近小弟整理了一批免积分下载的Java优质资料,因资料众多,一一将资料上传上来需要时间,先将下载目录分享给 ...
- 【youcans 的 OpenCV 例程200篇】158. 阈值处理之固定阈值法
欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程20 ...
最新文章
- Easyui combobox下拉框默认选中第一项
- 吴琦:视觉-语言导航新进展:Pre-training 与 Sim2Real | 青源 Talk 第 12 期
- [转]php与memcached服务器交互的分布式实现源码分析[memcache版]
- java class类文件结构
- (原创)结构体自动化转为char数组的实现
- java 调优参数 newRatio, survivorRatio
- C# 动态创建控件时注册Name属性
- HDFS分布式文件系统设计原理
- 2020中国社交电商消费者购物行为研究报告
- Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-01
- 指定跳转_炸裂!PPT能一键统一色彩,还能一键跳转到指定颜色
- Android 常用语句
- C#基础6:枚举与结构体
- thinkphp5项目--企业单车网站(二)
- php dom对象,JavaScript_JavaScript DOM 对象深入了解,什么叫DOM,DOM是文档对象模型( - phpStudy...
- 11. 数值的整数次方
- windows 7系统的无损分区软件
- FatFs- 通用FAT文件系统模块
- 6 Transport
- 机器学习研究项目--以机器视觉工程师的视角(MLP篇)
热门文章
- CSS3属性animation-play-state控制动画运行或暂停的技巧
- hibernate中@Entity和@Table的区别
- java中遍历Map的方法
- django结合nginx部署
- 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集
- DreamWeaver做ASP 第5页
- matlab 对三维图像旋转,求助,二维图像如何绕轴旋转成为三维图像
- 安装软件要求输入服务器配置信息,信息技术考试软件配置安装与操作规范(管理服务端与客户端)(30页)-原创力文档...
- java 模型 视图,部分视图模型
- MySQL 高级 - 索引 - 索引分类