puppet Server: 172.18.60.200
puppet Client: 172.18.60.59 172.18.60.88
一、下载地址
puppet下载地址:
http://downloads.puppetlabs.com/puppet/puppet-2.7.22.tar.gz
facter下载地址:
http://downloads.puppetlabs.com/facter/facter-1.6.18.tar.gz
ruby下载地址:
http://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz
二、环境准备
1.时间必须一致:
crontab -e
*/2 * * * * /usr/sbin/ntpdate clock.nc.fukuoka-u.ac.jp >/dev/null 2>&1
2.必須安装:gcc-c++、install openssl*
3.修改主機名: 服务器及客户端一样
[root@zserpap ~]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
#127.0.0.1 ZSAP localhost.localdomain localhost
#172.18.60.200 ZSAP localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
172.18.60.200 zserpap.zs_py.com.cn zserpap
172.18.60.59 pyytestdb.zs_py.com.cn pyytestdb
172.18.60.88 zsperdb.zs_py.com.cn zsperdb
[root@zserpap ~]# more /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=zserpap.zs_py.com.cn
GATEWAY=172.18.60.254
[root@zserpap ~]# hostname zserpap.zs_py.com.cn
4.检查防火墙确保8140端口开放.
禁用防火墙和SELinux
service iptables stop
chkconfig iptables off
setenforce 0
cat /etc/sysconfig/selinux <<EOF
SELINUX=disabled
SELINUXTYPE=targeted
EOF
三、安装应用软件
1、首先安装ruby
tar -zxvf ruby-1.8.7.tar.gz
cd ruby-1.8.7
./configure --prefix=/usr/local/ruby
make
make install
操作系统PATH路径:
vi /etc/profile
export PATH=/usr/local/ruby/bin:$PATH
查看ruby --version版本
顯示ruby的lib搜索路徑:
$ ruby -e 'puts $:'
安裝 rubygems
ruby setup.rb
puppet要求gem在1.3.4以下.
2、安装facter
tar -zxvf facter-1.6.18.tar.gz
cd facter-1.6.18
ruby install.rb
3、安装puppet
tar -zxvf puppet-2.7.22.tar.gz
cd puppet-2.7.22/
ruby install.rb
[root@zserpap puppet-2.7.22]# cp conf/auth.conf /etc/puppet/
[root@zserpap puppet-2.7.22]# cp conf/namespaceauth.conf /etc/puppet/
[root@zserpap puppet-2.7.22]# cp conf/redhat/puppet.conf /etc/puppet/
[root@zserpap puppet-2.7.22]# cp conf/redhat/server.init /etc/init.d/puppetmaster
[root@zserpap puppet-2.7.22]# chmod +x /etc/init.d/puppetmaster
[root@zserpap puppet-2.7.22]# /etc/init.d/puppetmaster start
Starting puppetmaster: /bin/bash: /usr/sbin/puppetmasterd: No such file or directory
[FAILED]
[root@zserpap puppet-2.7.22]# cp sbin/puppetmasterd /usr/sbin/
[root@zserpap puppet-2.7.22]# chmod -R 777 /usr/sbin/puppetmasterd
[root@zserpap puppet-2.7.22]# cp sbin/puppetmasterd /bin/puppetmasterd
[root@zserpap puppet-2.7.22]# chmod -R 777 /bin/puppetmasterd
[root@zserpap puppet-2.7.22]# /etc/init.d/puppetmaster start
Starting puppetmaster: /usr/bin/env: ruby: No such file or directory
[FAILED]
[root@zserpap puppet-2.7.22]# ls /usr/local/ruby/bin/
erb filebucket pi puppetdoc rdoc ruby
facter irb puppet ralsh ri testrb
[root@zserpap puppet-2.7.22]# ln -s /usr/local/ruby/bin/ruby /usr/bin/
[root@zserpap puppet-2.7.22]# /etc/init.d/puppetmaster start
Starting puppetmaster: Could not prepare for execution: Got 6 failure(s) while initializing: change from absent to directory failed: Could not set 'directory on ensure: Could not find group puppet; change from absent to directory failed: Could not set 'directory on ensure: Could not find group puppet; change from absent to directory failed: Could not set 'directory on ensure: Could not find group puppet; change from absent to directory failed: Could not set 'directory on ensure: Could not find group puppet; change from absent to directory failed: Could not set 'directory on ensure: Could not find group puppet; change from absent to directory failed: Could not set 'directory on ensure: Could not find group puppet
[FAILED]
[root@zserpap puppet-2.7.22]# useradd puppet
[root@zserpap puppet-2.7.22]# /etc/init.d/puppetmaster start
Starting puppetmaster: [ OK ]
[root@zserpap sbin]# pwd
/usr/local/src/puppet-2.7.22/sbin
cp -r * /usr/sbin/
[root@zserpap manifests]# chkconfig --add puppetmaster
[root@zserpap manifests]# chkconfig puppetmaster on
客户端其它安装和服务器安装相同,除了用 cp conf/redhat/client.init /etc/init.d/puppet
tar -zxvf puppet-2.7.22.tar.gz
cd puppet-2.7.22/
ruby install.rb
[root@pyytestdb puppet-2.7.22]# cp conf/auth.conf /etc/puppet/
[root@pyytestdb puppet-2.7.22]# cp conf/namespaceauth.conf /etc/puppet/
[root@pyytestdb puppet-2.7.22]# cp conf/redhat/puppet.conf /etc/puppet/
[root@pyytestdb puppet-2.7.22]# cp conf/redhat/client.init /etc/init.d/puppet
[root@pyytestdb puppet-2.7.22]# chmod +x /etc/init.d/puppet
[root@pyytestdb puppet-2.7.22]# service puppet start
Starting puppet: /bin/bash: /usr/sbin/puppetd: No such file or directory
[FAILED]
[root@pyytestdb puppet-2.7.22]# cp sbin/puppetd /usr/sbin/puppetd
[root@pyytestdb puppet-2.7.22]# service puppet start
Starting puppet: /usr/bin/env: ruby: No such file or directory
[FAILED]
[root@pyytestdb puppet-2.7.22]# chmod +x /usr/sbin/puppetd
[root@pyytestdb puppet-2.7.22]# service puppet start
Starting puppet: /usr/bin/env: ruby: No such file or directory
[FAILED]
[root@pyytestdb puppet-2.7.22]# ln -s /usr/local/ruby/bin/ruby /usr/bin/
[root@pyytestdb puppet-2.7.22]# /etc/init.d/puppet start
Starting puppet: [ OK ]
启动服务
chkconfig puppet on
service puppet start
安装完毕后进行测试:
在服务器端执行:
# puppetca --list
应该是无
在服务端查看验证签名,注意前面的+号,说明已经签名
# puppetca -a --list
在客户端执行
[root@pyytestdb ~]# puppetd --server zserpap.zs_py.com.cn --test
info: Caching certificate for ca
info: Creating a new SSL certificate request for pyytestdb.zs_py.com.cn
info: Certificate Request fingerprint (md5): F0:83:B6:70:D4:C0:D2:40:C2:CD:5B:B3 :00:31:D4:39
Exiting; no certificate found and waitforcert is disabled
再到服务器端执行:
[root@zserpap ~]# puppetca –s pyytestdb.zs_py.com.cn
Invalid method –s to apply
如果看到了客户端的证书请求,
针对客户端请求为
puppetca –s pyytestdb.zs_py.com.cn
用下面的命令对所有证书请求签名:
puppetca -s –a
[root@zserpap ~]# puppetca -s -a
notice: Signed certificate request for pyytestdb.zs_py.com.cn
notice: Removing file Puppet::SSL::CertificateRequest pyytestdb.zs_py.com.cn at '/var/lib/puppet/ssl/ca/requests/pyytestdb.zs_py.com.cn.pem'
在主服务器上/etc/puppet/manifests
vi /etc/puppet/manifests/site.pp
node default{
file { "/tmp/puppet_test.txt":
content=> "hello, This is test of PUPPET";
}
}
再重启一下服务器 service puppetmaster restart 和客户端 service puppet restart
再执行 puppetd --server zserpap.zs_py.com.cn --test
[root@pyytestdb ~]# puppetd --server zserpap.zs_py.com.cn --test
info: Caching certificate for pyytestdb.zs_py.com.cn
info: Caching certificate_revocation_list for ca
info: Caching catalog for pyytestdb.zs_py.com.cn
info: Applying configuration version '1372658911'
notice: /Stage[main]//Node[default]/File[/tmp/test.txt]/ensure: defined content as '{md5}100b144907af2a4786003758a0a6a563'
info: Creating state file /var/lib/puppet/state/state.yaml
notice: Finished catalog run in 0.03 seconds
看/tmp下面是不是有 puppet_test.txt 文件了
==============================================================================================================================
增加多个site.pp
可以先在site.pp中增加
import "test.pp"
然后再在里面执行需要操作的内容。
可用 puppetd --server zserpap.zs_py.com.cn --test 进行测试。
如果有报错
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Node 'default' is already defined at /etc/puppet/manifests/test.pp:1; cannot redefine at /etc/puppet/manifests/site.pp:2 on node zsperdb.zs_py.com.cn
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
那么需要在客户端执行 puppet agent --enable 即可。
puppet agent --disable 为关闭。
记得重启 puppetmaster 和 puppet
参考内容:
默认时间 vi /etc/puppet/puppet.con
runinterval =1800 ###默认是30分钟,可以修改此处的值,单位为秒
有的时间修改了这个没有用,是什么原因呢:
我也曾修改过多次,没效果,后在客户端的配置文件再加了一句 server = zserpap.zs_py.com.cn
然后重启
在客户端修改即可!最好重启一下 service puppet restart
puppet 如何全客户端自动签名
a. vi /etc/puppet/puppet.conf
[puppetmaster]
autosign=true #增加这两行
autosing=/etc/puppet/autosign.conf
#增加这两行添加
* 表示所有,或者添加域名,IP或者网段。举例:
b.再编辑 /etc/puppet/autosign.conf
*
*.test.com
192.168.0.1/24
错误总结:
第一次认证的时候报下边的错误:
[root@client ~]# puppetd --server zserpap.zs_py.com.cn --test
err: Could not retrieve catalog from remote server: certificate verify failed
原因有三种:
第一:是hostname没有设置好,在安装前一定要把hostname设置好,设置好之后尽量重启机器。实在不行就删了重新安装。
第二:时间不同步,时间不同步也会报认证失败的错误,可以用date设置时间,只要不是差得太多就没事。
第三:是ssl的问题,在你用的这个客户端puppet已经做过其他的机器的客户端的情况下,因为已经生成的有证书,可能会和现在的冲突,把/var/lib/puppet/ssl这个文件夹删掉之后就行了。
配置c/s模式的puppet的实验环境
Puppet的的客户端和服务端是靠ssl链接的,在服务端有一个自签名的根证书,在安装软件的时候自动生成。每个客户端的证书要经过根证书签名才能和服务器连接。所以首先要在客户端执行下面的命令来请求服务器签名证书。
puppetd --server zserpap.zs_py.com.cn --test
參考:
http://qinghua.blog.51cto.com/202629/837268
http://www.chenshake.com/puppet-study-notes/
相关推荐
一个从源代码完全安装ZoneMinder的人偶模块。 运行此模块后,您将从ZoneMinder GitHub存储库的master分支中的最新代码中安装可用的ZoneMinder。 该模块旨在在新安装的新Ubuntu服务器上运行。 现在听到这个-警告 这个...
自动化运维工具puppet--------------------------------------------------------------------
我不赞成从源代码安装GO,因为它会使Puppet运行太久。 如果要继续使用此功能,请使用此模块的版本1 。 从2开始,此功能将不再可用。 用法 基本用法: include golang 要自定义安装,请参见以下示例。 现在可以从...
傀儡图书馆一个私人偶人锻造厂。 与兼容。...安装将服务器安装为 Gem: $ gem install puppet-library或者,要获取最新信息,您可以从源代码安装 $ git clone https://github.com/drrb/puppet-librar
看不到源码规模IO 概述 一个 Puppet 模块,用于安装和配置 ScaleIO 2.0 块存储服务组件。 该模块目前支持 Ubuntu 14.04/16.04 和 CentOS 6 和 7。 模块说明 ScaleIO 是一种软件,它从操作系统获取本地存储并在虚拟 ...
Puppet 5 Beginner's Guide(3rd)_Code 源码 第3版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
看不到源码Oracle Java Puppet 模块 该模块使用 Unlimited JCE 管理 Oracle Java 8 和 Java 7 此模块已在 Ubuntu 14.04 上针对 Puppet 3.8 进行了测试 欢迎拉取请求 注意:只有在您同意 Oracle 许可的情况下才能使用...
使用 Vagrant 和 Puppet 安装基本的 CakePHP ... 将应用程序源代码放入 cakephp-vagrant/webroot 文件夹 在主机上,在您的hosts文件中添加一个新行,指向 vagrant box' 33.33.33.10 dev.mirkoborivojevic.localhost 运
移到此处的源代码可以在Wechaty存储库中找到: 已知限制 2017年后注册的微信账号无法登录Web微信,因此无法将PuppetWeChat与微信一起使用。 请确保您的微信帐户可以访问进行登录 自2018年以来,Web API无法创建...
已淘汰##改用模块为什么当您必须从源代码进行编译时,该模块是在综合之前写回的。 puppet模块的修订版2.0使用了综合总线,但是它以脆弱的方式从aws下载了软件包。 随着云软件包的问世,是时候再次重写以使用存储库了...
snmp源码Puppet 的 Collectd 模块 描述 用于配置 collectd 和插件的 Puppet 模块。 用法 最简单的用例是使用collectd.conf附带的默认collectd.conf文件中的所有配置。 这可以通过简单地包含类来完成: include ::...
此模块从源代码安装“让我们加密”客户端,并允许您请求证书。 支持 目前,该模块仅在基于Debian和RedHat的操作系统上可以运行,尽管它可能在其他操作系统上也可以运行。 受支持的Puppet版本在中定义 依存关系 在EL...
release设置 Ubuntu 发行版的 ppa/apt 源码,默认为trusty 已知的问题 扩展单元测试以涵盖所有可能性 Ubuntu安装需要测试 JDK 6 和 8 需要测试 执照 这是发布到公共领域的免费且不受阻碍的软件。 有关更多信息
它会在 /opt/puppet-omnibus 中安装一个源代码构建的 Ruby,然后将 Puppet 所需的所有 gem 安装到这个 Ruby 中。 这意味着它使系统提供的 Ruby 以及您可能碰巧安装的任何其他 Ruby 完全保持不变。为什么要创建一个...
java实战开发1200例源码Puppet 的 Collectd 模块 描述 用于配置 collectd 和插件的 Puppet 模块。 用法 最简单的用例是使用 collectd 附带的默认 collectd.conf 文件中的所有配置。 这可以通过简单地包含类来完成: ...
java实战开发1200例源码Puppet 的 Collectd 模块 描述 用于配置 collectd 和插件的 Puppet 模块。 用法 最简单的用例是使用collectd.conf附带的默认collectd.conf文件中的所有配置。 这可以通过简单地包含类来完成:...
跑胡子java源码puppet-graylog_collector 目录 概述 Puppet 模块来管理 你应该参考 at 来帮助你使用这个模块。 大多数参数映射到配置选项。 模块说明 管理 Graylog 收集器的安装和配置,包括配置输入和输出。 设置 ...
java源码野蝇 目录 概述 创建者 Edwin Biemond email biemond at gmail dot com 安装、配置和管理 Wildfly。 应该适用于每个 Redhat 或 Debian 家族成员,已通过 Wildfly 10.1、10.0、9.0、8.2、8.1 和 8.0 以及 ...
它支持数据源、安全域、JMS 队列和任何其他自定义 CLI 可访问属性和路径等资源。 它还可以部署您的应用程序。 模块说明 波兰的信息技术中心管理 JBoss 应用服务器群。 本着 DevOps 方法论的精神,我们一直在寻找一种...
设置 使用适当的值填充...使用以下脚本下拉引导 Puppet 安装所需的子模块: $ ./init-submodules.sh 如果使用 AWS 或 DigitalOcean 提供商填充~/.cloud_profile #!/bin/bash export AWS_KEY= export AWS_SECRE