Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5824
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-24 10:03
文章分类
文章存档

2017年(1)

2016年(6)

2015年(1)

我的朋友
最近访客

分类: 系统运维

2016-08-11 10:49:26

f i l e {
" / etc /passwd" :
name => " / etc /passd" ,
owner => root ,
group => root ,
mode => 644;
}
上面的代码让/etc/passwd的权限保持644,并且属于root用户和root用户组

f i l e {
"sshdconfig" :
name => $operatingsystem ? {
solaris => " /usr/ local/etc/ssh/sshd_config" ,
default => "/etc/ssh/sshd_config" ,
} ,
owner => root ,
group => root ,
mode => 644,
}
service { "sshd" :
subscribe => File [ sshdconfig ] ,
} #文件资源 sshdconfig 有变动,就会自己reload配置文件

file {
[ "/etc/passwd" , " /etc/hosts" ] :    #[]数组引用
owner => root ,
group => root ,
mode => 644;
}
可以在puppet的site.pp的开头定义资源的默认值。定义资源的默认值需要把资源的第一个资源大写。例如下面的代码让所有的file资源的mode是644,owner是root。
File { owner => root , mode => 644 ; }   #默认值可以被后面的设置覆盖

依赖。例如资源A依赖资源B,如果资源B不存在,资源A就不被执行。定义资源依赖的属性是 requre 。例如 :
file {
" /etc/apache2/port.conf" :
content => "80" ,
require => Package[ "apache2" ] ;
}
package{
"apache2" :
ensure => present;
}

定义类,类的作用是把一组资源收集在一个盒子里面,一起使用,例如把sshd和他的配置文件做成一个ssh类,其他的地方要用到就直包含ssh类就可以了,方便写出更简洁的代码,便于维护。类可以继承
class ssh {
file {
" /etc/ssh/sshd_config" :
source => "puppet://$fileserver/ssh/sshd_config.cfg" ;
}
package {
"ssh" :
ensure => installed ;
}
service {
"ssh" :
ensure => running ;
}
}
node ' host1 . example .com' {
include ssh
}    #包含ssh类
node ' host2 . example .com' {
include apache , mysql ,php
}    


define , puppet定义的函数
define svn_repo ( $path ) {
exec {
" /usr/bin/svnadmin?create  $path/$title " :
unless => " /bin/test  ?d $path" ,
}
}
svn_repo {
puppet_repo :
path => " /var/svn_puppet" }
svn_repo {
other_repo :
path => " /var/svn_other" }

puppet支持变量和数组,puppet用$符号定义变量,变量的内容用双引号括起来。例如 :
$test=" hello,world"
file {
" /tmp/test " :
content => $test ;
}
puppet可以使用由facter提交的变量,facter在客户端收集系统信息整理成不同的变量
提交给puppet服务器端,服务器端的代码可以使用这些变量实现高级的功能,例如不同
的硬件配置生成不同的应用软件配置文件.运行facter命令可以看到很多变量的输出,
这些变量可以在puppet代码里面直接使用.
在client端安装 facter包之后,在命令行执行 facter 命令会得到所有的host信息如:
[root@master hiera]# facter
architecture => x86_64
augeasversion => 1.0.0
bios_release_date => 07/02/2015
bios_vendor => Phoenix Technologies LTD
bios_version => 6.00
blockdevice_sda_model => VMware Virtual S
blockdevice_sda_size => 21474836480
blockdevice_sda_vendor => VMware,
blockdevice_sr0_model => VMware IDE CDR10
blockdevice_sr0_size => 4632608768
blockdevice_sr0_vendor => NECVMWar
blockdevices => sda,sr0
boardmanufacturer => Intel Corporation
boardproductname => 440BX Desktop Reference Platform
boardserialnumber => None
domain => puppet.wm
facterversion => 2.4.6
filesystems => ext4,iso9660
fqdn => master.puppet.wm
gid => root
hardwareisa => x86_64
hardwaremodel => x86_64
... ...













阅读(152) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册