Chinaunix首页 | 论坛 | 博客
  • 博客访问: 361553
  • 博文数量: 45
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 885
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-06 21:07
个人简介

做好自己,不卑不亢,持之以恒!!

文章分类

全部博文(45)

分类: 系统运维

2015-06-30 19:35:37

puppet master      192.168.122.2    server2.example.com
puppet client         192.168.122.3   server3.example.com
puppet client         192.168.122.4    server4.exmaple.com
4:用户组定义:
group { "linux": gid => 600 }
5. 用户定义
user { "linux":
uid => 600,
gid => 600,
home => "/home/linux",
shell => "/bin/bash" ,
password => linux
}

file { "/home/linux":
owner => linux,
group => linux,
mode => 700,
ensure => directory
}

file { "/home/linux/.bash_logout":
source => "/etc/skel/.bash_logout",
owner => linux,group => linux
}

file { "/home/linux/.bash_profile":
source => "/etc/skel/.bash_profile",
owner => linux,
group => linux
}
file { "/home/linux/.bashrc":
source => "/etc/skel/.bashrc",
owner => linux,
group => linux
}
user { "test": uid => 900,
home => "/home/test",
shell => "/bin/bash",
provider => useradd,
managehome => true,
ensure => present
}
exec { "echo linux | passwd --stdin test":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "id test"
}
6. 文件系统挂载
首先确保有共享文件可供使用,这里使用nfs文件系统作为共享文件。在client端可以看见192.168.122.2这台主机上的共享文件
client 端:
showmount -e 192.168.122.2
Export list for 192.168.122.2:
/share *

编辑配置文件

file {"/public":
        ensure => directory
}

mount { "/public":
device => "192.168.122.2:/share",
fstype => "nfs",
options => "defaults",
ensure => mounted
}

clients 端可以看见服务端的共享文件已被成功挂载
# df
Filesystem                   1K-blocks   Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root   6926264 953980   5620440  15% /
tmpfs                           510200      0    510200   0% /dev/shm
/dev/sda1                       495844  33469    436775   8% /boot
192.168.122.2:/share           6926336 948864   5625600  15% /public

7. crontab 任务
ron { echo:
command => "/bin/echo `/bin/date` >> /tmp/echo",
user => root,
hour => ['2-4'],    #注意这个时执行任务的时间区间
minute => '*/10'
}
# 任务会在 client 上/var/spool/cron 目录中生成。
# cat /var/spool/cron/root
*/10 16-20 * * * /bin/echo `/bin/date` >> /tmp/echo

8:不同节点的定义:
    a. 在 puppetmaster 上编辑 site.pp
      # vim  /etc/puppet/manifests/site.pp
         import "nodes/*.pp"
    # mkdir  /etc/puppet/manifests/nodes/
    b. 建立节点文件
     # vim /etc/puppet/manifests/nodes/server3.example.com.pp
        node 'server3.example.com'{
              file{"/var/www/html/index.html":
                content => "server3.example.com"
           }
      }
 
# vim /etc/puppet/manifests/nodes/server4.example.com.pp
    node 'server4.example.com' {
        file { "/var/www/html/index.html":
                content => "server4.example.com"
        }
  }

9:编写模块:
# mkdir -p /etc/puppet/modules/httpd/{files,manifests,templates}

# cd /etc/puppet/modules/httpd/manifests
vim  install.pp
class httpd::install {
package { "httpd":
ensure => present
}
}

# vim  config.pp
class httpd::config {
file { "/etc/httpd/conf/httpd.conf":
ensure => present,
source => "puppet:///modules/httpd/httpd.conf",  #实际路径在/etc/puppet/modules/httpd/files/httpd.conf
require => Class["httpd::install"],
notify => Class["httpd::service"]
}
}

# vim  service.pp
class httpd::service {
service { "httpd":ensure => running,
require => Class["httpd::install","httpd::config"]
}
}
# vim  init.pp
class httpd {
include httpd::install,httpd::config,httpd::service
}

#  vim  /etc/puppet/manifests/nodes/server3.example.com
node 'server3.example.com'{
        file{"/var/www/html/index.html":
                content => "server3.example.com"
        }

include httpd
}

# vim /etc/puppet/modules/httpd/files/httpd.conf
#Listen 12.34.56.78:80
Listen 8080

# service puppetmaster reload

client 端再次登录时:
# netstat -antulp | grep httpd
tcp        0      0 :::8080                     :::*                        LISTEN      5206/httpd          

















阅读(2238) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~