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相关推荐

  1. DeepMind提图像生成的递归神经网络DRAW,158行Python代码复现

    作者 | Samuel Noriega 译者 | Freesia 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]最近,谷歌 DeepMInd 发表论文( DRAW: ...

  2. 厉害了!一本正经地为单身狗推荐这个158万张图像的鉴黄数据集

    本文转自"机器之心"(almosthuman2014) 如果你想训练一个内容审核系统过滤不合适的信息,或用 GAN 实现一些大胆的想法,那么数据集是必不可少的.但限制级图像很难收集 ...

  3. 158行Python代码复现:DeepMind提图像生成的递归神经网络DRAW

    授权自AI科技大本营(ID:rgznai100) 本文约5200字,建议阅读10+分钟. 本文作者基于代码实现系统的思路,详细阐述了 DRAW 的概念.架构和优势等. [ 导读 ]最近,谷歌 Deep ...

  4. 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 ...

  5. 国家卫健委:我国男女性成人平均身高分别为169.7厘米和158厘米

    [#我国男女性成人平均身高分别为169.7厘米和158厘米#]国家卫健委副主任李斌23日说,根据<中国居民营养与慢性病状况报告(2020年)>,我国18-44岁男性和女性的平均身高分别为1 ...

  6. 158行代码!程序员复现DeepMind图像生成神器

    最近,谷歌 DeepMInd 发表论文提出了一个用于图像生成的递归神经网络,该系统大大提高了 MNIST 上生成模型的质量.为更加深入了解 DRAW,本文作者基于 Eric Jang 用 158 行 ...

  7. Android(java)学习笔记158:多线程断点下载的原理(JavaSE实现)

    1. 为什么需要多线程下载?     服务器的资源有限,同时的平均地分配给每个客户端.开启的线程越多抢占的服务的资源就越多,下载的速度就越块. 2. 下载速度的限制条件? (1)你的电脑手机宽带的带宽 ...

  8. 【JAVA资料免费下载】158个JAVA免豆精品资料汇总——下载目录(转载)

    [JAVA资料免费下载]158个JAVA免豆精品资料汇总--下载目录(转载) 应广大网友要求,最近小弟整理了一批免积分下载的Java优质资料,因资料众多,一一将资料上传上来需要时间,先将下载目录分享给 ...

  9. 【youcans 的 OpenCV 例程200篇】158. 阈值处理之固定阈值法

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程20 ...

最新文章

  1. Easyui combobox下拉框默认选中第一项
  2. 吴琦:视觉-语言导航新进展:Pre-training 与 Sim2Real | 青源 Talk 第 12 期
  3. [转]php与memcached服务器交互的分布式实现源码分析[memcache版]
  4. java class类文件结构
  5. (原创)结构体自动化转为char数组的实现
  6. java 调优参数 newRatio, survivorRatio
  7. C# 动态创建控件时注册Name属性
  8. HDFS分布式文件系统设计原理
  9. 2020中国社交电商消费者购物行为研究报告
  10. Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-01
  11. 指定跳转_炸裂!PPT能一键统一色彩,还能一键跳转到指定颜色
  12. Android 常用语句
  13. C#基础6:枚举与结构体
  14. thinkphp5项目--企业单车网站(二)
  15. php dom对象,JavaScript_JavaScript DOM 对象深入了解,什么叫DOM,DOM是文档对象模型( - phpStudy...
  16. 11. 数值的整数次方
  17. windows 7系统的无损分区软件
  18. FatFs- 通用FAT文件系统模块
  19. 6 Transport
  20. 机器学习研究项目--以机器视觉工程师的视角(MLP篇)

热门文章

  1. CSS3属性animation-play-state控制动画运行或暂停的技巧
  2. hibernate中@Entity和@Table的区别
  3. java中遍历Map的方法
  4. django结合nginx部署
  5. 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集
  6. DreamWeaver做ASP 第5页
  7. matlab 对三维图像旋转,求助,二维图像如何绕轴旋转成为三维图像
  8. 安装软件要求输入服务器配置信息,信息技术考试软件配置安装与操作规范(管理服务端与客户端)(30页)-原创力文档...
  9. java 模型 视图,部分视图模型
  10. MySQL 高级 - 索引 - 索引分类