面向云管理工具puppet的部署和文件传输测试
面向云管理工具puppet的部署和测试
系统环境:[root@rhel6u3-102puppet]#uname-r
2.6.32-279.el6.x86_64
[root@rhel6u3-102puppet]#cat/etc/redhat-release
RedHatEnterpriseLinuxServerrelease6.3(Santiago)
一、前期准备工作1、主机名能够互相解析(DNS上或者hosts文件中能够相互解析)puppetmaster(rhel6u3-102.rsyslog.org192.168.100.102)puppetagent节点(rhel6u3-207.rsyslog.org192.168.100.207)2、系统时间必须一致注意:本地已经下载好了安装包,并且配置好了yum源二、安装puppet服务器端masteryuminstallrubyruby-libsruby-shadowcompat-readline5libselinux-rubyaugeas-libs
rpm-ivhfacter-1.6.6-1.el6.x86_64.rpmpuppet-2.6.18-3.el6.noarch.rpmpuppet-server-2.6.18-3.el6.noarch.rpmruby-augeas-0.4.1-1.el6.x86_64.rpmruby-mysql-2.8.2-1.el6.x86_64.rpmruby-shadow-1.4.1-13.el6.x86_64.rpm
客户端节点slave(无需puttet-master)yuminstallrubyruby-libsruby-shadowcompat-readline5libselinux-rubyaugeas-libs
rpm-ivhfacter-1.6.6-1.el6.x86_64.rpmpuppet-2.6.18-3.el6.noarch.rpmruby-augeas-0.4.1-1.el6.x86_64.rpmruby-mysql-2.8.2-1.el6.x86_64.rpmruby-shadow-1.4.1-13.el6.x86_64.rpm
三、初始化puppetmaster(rhel6u3-102.rsyslog.org)配置文件路径/etc/puppet/查看配置文件方法:sed-e'/#/d'-e'/^$/d'puppet.conf
可通过以下命令生成一个更为详细的配置文件#puppetmasterd--genconfig>puppet.conf.out
[root@rhel6u3-102puppet]#sed-e'/#/d'-e'/^$/d'puppet.conf.out
[master]
ssldir=/var/lib/puppet/ssl
factdest=/var/lib/puppet/facts/
privatekeydir=/var/lib/puppet/ssl/private_keys
rundir=/var/run/puppet
hostcsr=/var/lib/puppet/ssl/csr_rhel6u3-102.rsyslog.org.pem
hostpubkey=/var/lib/puppet/ssl/public_keys/rhel6u3-102.rsyslog.org.pem
plugindest=/var/lib/puppet/lib
inventory_terminus=yaml
publickeydir=/var/lib/puppet/ssl/public_keys
factsource=puppet://puppet/facts/
privatedir=/var/lib/puppet/ssl/private
logdir=/var/log/puppet
libdir=/var/lib/puppet/lib
statedir=/var/lib/puppet/state
hostcert=/var/lib/puppet/ssl/certs/rhel6u3-102.rsyslog.org.pem
localcacert=/var/lib/puppet/ssl/certs/ca.pem
pluginsource=puppet://puppet/plugins
certdir=/var/lib/puppet/ssl/certs
factpath=/var/lib/puppet/lib/facter:/var/lib/puppet/facts
httplog=/var/log/puppet/http.log
requestdir=/var/lib/puppet/ssl/certificate_requests
passfile=/var/lib/puppet/ssl/private/password
hostprivkey=/var/lib/puppet/ssl/private_keys/rhel6u3-102.rsyslog.org.pem
hostcrl=/var/lib/puppet/ssl/crl.pem
authconfig=/etc/puppet/namespaceauth.conf
localconfig=/var/lib/puppet/state/localconfig
client_datadir=/var/lib/puppet/client_data
reportserver=puppet
inventory_server=puppet
ca_server=puppet
lastrunreport=/var/lib/puppet/state/last_run_report.yaml
node_name_value=rhel6u3-102.rsyslog.org
statefile=/var/lib/puppet/state/state.yaml
clientbucketdir=/var/lib/puppet/clientbucket
classfile=/var/lib/puppet/state/classes.txt
report_server=puppet
inventory_port=8140
ca_port=8140
puppetdlockfile=/var/lib/puppet/state/puppetdlock
splaylimit=1800
clientyamldir=/var/lib/puppet/client_yaml
puppetdlog=/var/log/puppet/puppetd.log
report_port=8140
lastrunfile=/var/lib/puppet/state/last_run_summary.yaml
graphdir=/var/lib/puppet/state/graphs
capub=/var/lib/puppet/ssl/ca/ca_pub.pem
csrdir=/var/lib/puppet/ssl/ca/requests
autosign=/etc/puppet/autosign.conf
cert_inventory=/var/lib/puppet/ssl/ca/inventory.txt
cacert=/var/lib/puppet/ssl/ca/ca_crt.pem
cacrl=/var/lib/puppet/ssl/ca/ca_crl.pem
signeddir=/var/lib/puppet/ssl/ca/signed
serial=/var/lib/puppet/ssl/ca/serial
ca_name=PuppetCA:rhel6u3-102.rsyslog.org
cakey=/var/lib/puppet/ssl/ca/ca_key.pem
caprivatedir=/var/lib/puppet/ssl/ca/private
capass=/var/lib/puppet/ssl/ca/private/ca.pass
cadir=/var/lib/puppet/ssl/ca
railslog=/var/log/puppet/rails.log
dblocation=/var/lib/puppet/state/clientconfigs.sqlite3
rest_authconfig=/etc/puppet/auth.conf
modulepath=/etc/puppet/modules:/usr/share/puppet/modules
yamldir=/var/lib/puppet/yaml
reportdir=/var/lib/puppet/reports
masterlog=/var/log/puppet/puppetmaster.log
server_datadir=/var/lib/puppet/server_data
config=/etc/puppet/puppet.conf
pidfile=/var/run/puppet/master.pid
manifestdir=/etc/puppet/manifests
masterhttplog=/var/log/puppet/masterhttp.log
bucketdir=/var/lib/puppet/bucket
fileserverconfig=/etc/puppet/fileserver.conf
manifest=/etc/puppet/manifests/site.pp
templatedir=/var/lib/puppet/templates
tagmap=/etc/puppet/tagmail.conf
archive_file_server=puppet
rrddir=/var/lib/puppet/rrd
rrdinterval=1800
1、修改主配置文件puppet.conf插入master字段vim/etc/puppet/puppet.conf
[master]
certname=rhel6u3-102.rsyslog.org\\设置puppet认证服务器主机名
2、创建节点全局配置文件site.pp,文件存在,服务才能够启动#touch/etc/puppet/manifests/site.pp
3、启动puppetmaster服务#/etc/rc.d/init.d/puppetmasterstart
第一次测试或者调试的时候可以考虑以下方法#puppetmaster--verbose--no-daemonize--debug
四、配置agent节点(rhel6u3-207.rsyslog.org)1、配置第一个agent节点,在main标签中添加master的主机名vim/etc/puppet/puppet.conf
[main]
server=rhel6u3-102.rsyslog.org
2、启动agent服务#/etc/rc.d/init.d/puppetstart
第一次测试或者调试的时候可以考虑以下方法#puppetagent--verbose–no-daemonize
五、配置puppetmaster将搜索到的新节点进行注册#puppetcert--list\\查看等待注册的节点
#puppetcert--signrhel6u3-207.rsyslog.org\\注册指定节点
#puppetcert--signall\\注册所有等待注册的节点
六、在puppetmaster创建一个puppet配置1、创建第一个puppet配置1)定义全局配置site.pp文件,并创建import的目录#vim/etc/puppet/manifests/site.pp
$puppetserver='rhel6u3-102.rsyslog.org'
import'nodes/*'
#mkdir/etc/puppet/manifests/nodes-p
2)配置节点nodes.pp#vim/etc/puppet/manifests/nodes/nodes.pp
node'rhel6u3-207.rsyslog.org'{
includemyfile
package{'vim-enhanced':ensure=>present}
}
#node/^rhel6u3-\d+\.rsyslog.org'{
#includemyfile
#}
2、创建第一个puppet模块1)创建模块搜索路径vim/etc/puppet/puppet.conf
[main]
modulepath=/etc/puppet/modules:/var/lib/puppet/modules:/usr/local/lib/puppet/modules
2)创建模块目录结构#mkdir/etc/puppet/modules-p
#mkdir-vp/etc/puppet/modules/myfile/{files,templates,manifests}
manifests目录存放模块配置文件,files目录存放模块包含的文件,templates目录存
放模块中的模板
3)创建模块核心配置文件init.ppvim/etc/puppet/modules/myfile/manifests/init.pp
classmyfile{
package{setup:
ensure=>present,
}
file{"/etc/myfile":
owner=>"root",
group=>"root",
mode=>644,
source=>"puppet://$puppetserver/modules/myfile/files/etc/myfile",
require=>Package["setup"],
}
}
配置基本结束,实现的结果如下:1.检查setup软件包是否安装,如未安装将安装它2.下载“PuppetMaster”上的myfile文件放置到/etc目录下4)创建同步的测试文件#mkdir/etc/puppet/modules/myfile/files/etc-p
#echo"HelloPuppet">/etc/puppet/modules/myfile/files/etc/myfile
5)客户端测试[root@rhel6u3-207puppet]#cat/etc/myfile
HelloPuppet
**客户端通过以下方式启动,然后我们使用前台方式运行并监控它,我们在里使用一个puppet参数—noop,它代表我们只测试,并不真的运行并修改节点上的文件,--onetime参数是只执行一次然后退出的意思。#puppetagent--server=rhel6u3-102.rsyslog.org--no-daemonize--verbose
--noop--onetime
#puppetagent--server=rhel6u3-102.rsyslog.org--no-daemonize--verbose--noop--onetime
info:Cachingcatalogforrhel6u3-207.rsyslog.org
info:Applyingconfigurationversion'1366705990'
notice:Finishedcatalogrunin0.20seconds
6)默认客户端同步时间为30分钟,可以设置为5秒测试效果vim/etc/puppet/puppet.conf添加以下字段
[agent]
runinterval=5
测试方法:服务器端#date>>/etc/puppet/modules/myfile/files/etc/myfile
客户端cat/etc/myfile
HelloPuppet
2013年04月23日星期二16:52:58CST
puppet支持的全部资源类型及其属性http://docs.puppetlabs.com/references/stable/type.html获取包的方法:使用PuppetLabs公司的YUM安装源的准备方法:#rpm-ivhhttp://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-6.noarch.rpm使用RedHatEPEL的YUM源的准备方法:#rpm-ivhhttp://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。