puppet 自动化管理工具学习之用户,组:
要实现这种功能,大概有3种方法,1.直接在site.pp里直接写,这样代码不够简洁。2.可以应用到class调用。3.可以写函数达到效果。自己处于学习阶段,定期更新中。作为笔记。简单介绍下3种实现的方法:
一:vi site.pp
user { "pu_test":
ensure => "present",
uid => 801,
home => "/home/pu_test",
managehome => true,
shell => "/bin/bash",
}
group { "pu_test":
gid => 801,
ensure => "present",
}
在客户端执行:puppetd --test --server puppet
[root@test_web1 ~]# puppetd --test --server puppet
info: Caching catalog for test_web1.fminutes.com
info: Applying configuration version '1320113587'
notice: //User[pu_test]/ensure: created
notice: Finished catalog run in 0.41 seconds
出现以上结果,就是正确的,看下是否有新用户产生。
二:应用到类的话,先在modules/下创建模块,然后在入口文件里导入该模块。
mkdir {files,manifests,templates}
vi manifests/users.pp
class users::pu_users {
@user { "test3":
ensure => "present",
comment => "",
home => "/home/test3",
managehome => true,
shell => "/bin/bash",
}
@user { "test4":
ensure => "present",
comment => "",
home => "/home/test4",
managehome => true,
shell => "/bin/bash",
}
}
然后再写模块文件:init.pp
vi init.pp
import "users.pp"
在puppet/manifests下有site.pp,nodes.pp,没有的话就创建。
vi site.pp
import "nodes.pp"
vi nodes.pp
node 'test_web1.fminutes.com' {
include users::pu_users
include users::groups
realize (User["test3"])
# User <| title == test3 |>
##此命令跟上一条的命令一样,将虚拟的转变为现实。如没有此命令,不会成功。
##二个任选一个即可。
}
三:调用函数
site.pp,nodes.pp,init.pp跟上面的一样,更改uses.pp里即可。
vi users.pp
#class users::pu_users {
define add_user ( $email,$uid ) {
$username = $title
user { $username:
ensure => "present",#
uid => $uid,
comment => $email,
home => "/home/$username",
managehome => true,
shell => "/bin/bash",
}
}
add_user { "test5":
email => "test5",
uid => "901",
}
}
8. 参考资料
puppet官方网站:http://www.puppetlabs.com/
puppet中文wiki:http://puppet.chinaec2.com/
puppet中文博客:http://www.comeonsa.com
http://www.mysqlops.com/category/puppet
本文出自 “SPringYu” 博客,转载请与作者联系!