158.5. manifests
生活随笔
收集整理的這篇文章主要介紹了
158.5. manifests
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
158.5.1.?node
default 針對(duì)所有節(jié)點(diǎn)
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";} }指定節(jié)點(diǎn)
# cat /etc/puppet/manifests/test.pp node www {file { "/var/www/index.html":source => "/tmp/something",mode => 666;} }多個(gè)節(jié)點(diǎn)
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的話就會(huì)建立和資源名一樣的用戶名/組名,如果指定了name就以name指定的用戶名/組名為主
158.5.2.1.?group
用戶組的添加
node 'node1.example.com' { #為該節(jié)點(diǎn)添加一個(gè)名字為test的組,并設(shè)置組ID為1000,如果不指定name的值,所創(chuàng)建的用戶就為web。group { "web":ensure => "present",gid => 1000,name => "test";} #為該節(jié)點(diǎn)添加一個(gè)httpd的組,并且設(shè)置ID和web一樣group { "httpd":ensure => "present",gid => 1000,allowdupe => true;} #為該節(jié)點(diǎn)刪除一個(gè)apache的組。group { "apache":ensure => "absent",} }用戶組的刪除
node 'node1.example.com' { #為該節(jié)點(diǎn)刪除一個(gè)web的組。group { "web":ensure => "absent",} }158.5.2.2.?user
用戶的添加
#創(chuàng)建一個(gè)用戶并且密碼為空 user {"svn":ensure => "present",shell => "/sbin/nologin"; }#創(chuàng)建一個(gè)www用戶,設(shè)置用戶描述為webmaster,shell為bash, user {"www":ensure => "present",comment => "webmaster user",name => "www",shell => "/sbin/bash"; }#創(chuàng)建一個(gè)gid為80的用戶組: group { "www":ensure => "present",gid => 80,}用戶的刪除
user { "neo":ensure => "absent", }創(chuàng)建用戶并指定密碼
生成密碼
# 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是檢測(cè)文件是否存在,如果存在則刪除 ensure => present; #present正好相反,如果不存在則創(chuàng)建 ensure => directory; #創(chuàng)建一個(gè)目錄的方法 force = > true; #刪除一個(gè)目錄必須加上這個(gè)參數(shù) source => "PATH"; #指定數(shù)據(jù)來源 backup => ".backup_$uptime_seconds"; 覆蓋前備份文件創(chuàng)建目錄實(shí)例
file { "/tmp/cache":owner => "www",group => "www",mode => 700,ensure => directory; }158.5.3.2.?source
source 表示 agent節(jié)點(diǎn)上的目錄
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", #指定命令執(zhí)行的目錄。如果目錄不存在,則命令執(zhí)行失敗。command => "/bin/echo helloworld > /tmp/hello.txt",user => "root",path => "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"; #命令執(zhí)行的搜索路徑。如果path沒有被定義,命令需要使用絕對(duì)路徑。 } 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 系列 手札
本文作者:陳景峯
轉(zhuǎn)載請(qǐng)與作者聯(lián)系,同時(shí)請(qǐng)務(wù)必標(biāo)明文章原始出處和作者信息及本聲明。
總結(jié)
以上是生活随笔為你收集整理的158.5. manifests的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle数据库中对varchar类型
- 下一篇: Android基础控件ProgressB