服务器2台,安装rhel5.1
服务端10.10.8.87
客户端10.10.8.81
1)务必在服务端的hosts加入对客户端ip的识别
10.10.8.87操作:
vi /etc/hosts 加入 10.10.8.81 client.81
2)务必在客户端的hosts加入对服务端ip的识别
10.10.8.81操作:
vi /etc/hosts 加入 10.10.8.87 puppet
3)务必服务器的时间都正确
分别在各服务器执行
ntpdate 210.72.145.44
1.源码安装
服务端和客户端均安装
1)安装ruby
tar xf ruby-1.8.6-p114.tar.gz cd ruby-1.8.6-p114 ./configure make && make install
2)安装facter
tar xf facter-1.6.2.tar.gz cd facter-1.6.2 ruby install.rb
3)安装puppet
tar xf puppet-2.7.5.tar.gz cd puppet-2.7.5 ruby install.rb
2.服务端配置
1)拷贝基本配置文件,如果有了就不用拷贝了
mkdir /etc/puppet cp conf/auth.conf /etc/puppet/ cp conf/redhat/fileserver.conf /etc/puppet/ cp conf/redhat/puppet.conf /etc/puppet/
2)加入一个测试的同步内容
mkdir -p /etc/puppet/manifests vi /etc/puppet/manifests/site.pp 加入 file { "/tmp/test": content=>"test1234", owner=>"root", group=>"root", mode=>644; }
3)创建puppet账号
puppetmasterd --mkusers
4)启动
前台运行可查询错误信息:
puppetmasterd --no-daemonize -d -v
看到以下信息并且没有报错说明启动成功了:
notice: Starting Puppet master version 2.7.5 debug: No modules mount given; autocreating with default permissions debug: No plugins mount given; autocreating with default permissions debug: Finishing transaction -607803008
此时会占用8140端口
3.客户端配置
1)拷贝基本配置文件,如果有了就不用拷贝了
mkdir /etc/puppet cp conf/auth.conf /etc/puppet/ cp conf/namespaceauth.conf /etc/puppet/ cp conf/redhat/puppet.conf /etc/puppet/
修改/etc/puppet/namespaceauth.conf
[fileserver] allow * [puppetmaster] allow * [puppetrunner] allow * [puppetbucket] allow * [puppetreports] allow * [resource] allow *
2)创建puppet账号
puppetmasterd --mkusers
3)同步
第一次同步需要从服务端申请证书
puppetd --server puppet --test --certname client.81
puppet为hosts配置的服务端别名,--certname指定了证书名称为client.81,如果不指定,可能会使用localhost.localdomain,这样会和服务端的证书名称冲突造成错误。
成功的话,会出现类似的提示:
info: Creating a new SSL key for client.81 warning: peer certificate won't be verified in this SSL session info: Caching certificate for ca warning: peer certificate won't be verified in this SSL session info: Creating a new SSL certificate request for client.81 info: Certificate Request fingerprint (md5): 20:15:D9:AD:96:4B:FB:F2:C4:91:F2:35:D3:23:62:C7
此时需要切换到服务端进行授权:
puppetca --list client.81
对client.81进行授权:
puppetca -s client.81
成功之后在客户端进行再次同步:
puppetd --server puppet --test --certname client.81
成功的话,会出现类似的提示:
info: Caching catalog for client.81 info: Applying configuration version '1318447786' notice: /Stage[main]//File[/tmp/test]/ensure: defined content as '{md5}16d7a4fca7442dda3ad93c9a726597e4' notice: Finished catalog run in 0.03 seconds
它提示我们已经同步了/tmp/test文件,查看其内容:
cat /tmp/test test1234
同步的内容在服务端的/etc/puppet/manifests/site.pp指定了。