未定义的变量: control:
actionsequence = ( shellcommands )
myvar = ( “test string” )
shellcommands:
“/bin/echo $(myvar) $(myvar2)”
输出结果:cfengine:host: Executing script /bin/echo test string $(myvar2)
编写模块:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
control:
moduledirectory = ( /usr/local/cfengine/modules ) 存放模块的路径
actionsequence =(
files
module:myplugin.specialclass
“module:argplugin.specialclass arg1 arg2”
copy
)
模块可以使用各种语言编写,perl ,shell都可以
通用class : any:: any代表所有的class
actions
访问控制: control:
access = ( mark root )
目录或文件的编辑于遍历:files:
/usr/local/bin m=0755 exclude=*.ps action=fixall
/usr/local/bin m=0755 include=*.os ation=fixall
挂载文件目录: control:
site = ( mysite )
domain = ( mysite.country )
sysadm = ( mark )
netmask = ( 255.255.255.0 )
actionsequence =
(
mountall 挂载每个host上已经定义的文件系统
mountinfo 显示每个host上已经成功挂载的文件系统
addmounts 检查host文件系统是否都已经挂载
mountall
links
)
groups:
MyGroup =
(
host1
host2
binserver1
binserver2
)
homeservers:
MyGroup:: host1
binservers:
MyGroup.sun4:: server1
MyGroup.ultrix:: server2
mailserver:
host1:/usr/spool/mail
mountables: 告诉cfengine哪些目录是可以挂载的
host1:/mysite/host1/u1
host1:/mysite/host1/u2
server1:/mysite/server1/local
server2:/mysite/server2/local
links:
/usr/local -> /${site}/${binserver}/local
循环列表:control:
split = ( “ “ ) 使用空格做分隔符
mylist = ( “mark ricky bad-dude” ) 定义了列表,将列表赋值给mylist
tidy:
/mnt/home1/$(mylist) pattern=*.cfsaved age=1 将遍历mylist中的所有目录,匹配.cfsaved且一天没有访问的文件
运行用户脚本:control:
cfbin = ( /local/gnu/lib/cfengine/bin ) 定义了两个变量
backupdir = (/iu/dax/backup )
shellcommands: 运行shell命令
“$(cfbin)/cfbackup –p –f $(backupdir) –s /iu/nexus/u1”
管理acl: files:
$(HOME)/myfile acl=acl_alias1 action=fixall
acl:
{ acl_alias1
method:append
fstype:solaris
user:len:rwx
}
{ acl_alias2
method:append
fstype:dfs
user:/…/iu.hioslo.no/cell_admin:wx 给cell_admin用户wx的权限
group:/…/iu.hioslo.no/acct-=admin:rx 给用户组acct-admin rx的权限
user:/…/iu.hioslo.no/root:rx
user:*:-x
}
转载于:https://blog.51cto.com/linuxlab/315363