Puppet master-agent模型搭建
Puppet master-agent模型工作过程:

基于ssl xmlrpc进行通信,端口8140/tcp
agent:默认每隔30分钟向master发送node name和facts,并请求catalog
master:验证客户端身份,查找与其相关的site mainfests,编译生成catalog,并发送给客户端
环境搭建:
OS:CentOS 7
Puppet:3.6.2
master:安装puppet,puppet-server,facter
agent:安装puppet,facter
配置过程:
配置前提:
A.master和agent的时间必须要同步
B.master和agent之间进行SSL通信,需要依赖于HOSTNAME(由DNS解析而来),故测试时需要编辑本地的hosts文件:

1.master端配置
首先以不启动守护进程方式运行一遍,看看有没有问题
# puppet master -v --no-daemonize

如图所示,没有问题就可以启动puppetmaster服务了

2.agent端配置
发送证书签署请求给master
# puppet agent --server=node1.bzy.com -v
3.master端给agent端签署证书
# puppet cert list

# puppet cert sign node2.bzy.com

4.agent端获取证书
可以等待agent端获取证书,也可以手动再次执行以下命令获取证书
# puppet agent --server=node1.bzy.com -v

5.master端定义站点清单
位置:/etc/puppet/mainfests/site.pp
#node /^node\d+\.bzy\.com/ {
# include nginx::proxy
#}
node "node2.bzy.com" {
include nginx::proxy
}
如果有多个节点,依次写入即可。
到此步,配置基本成功了,由于puppet版本较多,有些细节可能不太一致,具体请查阅官方文档
测试用的模块:nginx

init.pp配置示例:
class nginx {
package{'nginx':
ensure => installed
}
}
class nginx::webserver inherits nginx {
file{'/etc/nginx/nginx.conf':
source => 'puppet:///modules/nginx/nginx_web.conf',
ensure => file,
require => Package['nginx'],
#notify => Service['nginx']
}->
service{'nginx':
ensure => running,
hasrestart => true,
hasstatus => true,
}
}
class nginx::proxy inherits nginx {
file{'/etc/nginx/nginx.conf':
ensure => file,
content => template('nginx/nginx_proxy.conf.erb'),
require => Package['nginx'],
#notify => Service['nginx']
}->
service{'nginx':
ensure => running
}
}
附:关于报错信息
1.
Could not prepare for execution: Could not create PID file
先察看是否与权限有关。如果有权限的话,察看是否有进程已启动:
# ps -ef | grep puppet
如果有,先kill掉,或者/etc/init.d/puppet stop后,然后重新输入指令。
2.
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class yum::repos for one-663.localdomain on node one-663.localdomain
在site.pp(或其他会import到site.pp的file.pp)中import 该class所在的"module_name"。即import "xxx"
3.
# puppet filebucket restore /etc/yum.repos.d/rh.repo 1bfcad49b3ffab391d5303ba58d26b64
Error: Could not run: Error 403 on SERVER: Forbidden request: 10.10.6.197(10.10.6.197) access to /file_bucket_file/md5/1bfcad49b3ffab391d5303ba58d26b64 [find] at :103
master端puppetmaster关掉了。重启即可。
Puppet master-agent模型搭建的更多相关文章
- 自动化运维工具之Puppet master/agent模型、站点清单和puppet多环境设定
前文我们了解了puppe中模块的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14086315.html:今天我来了解下puppet的master/age ...
- 部署puppet master/agent模型
自己画的一个简单的架构图 agent端每隔30分钟到master端请求与自己相关的catalog. 各节点时间要同步. 依赖DNS,各节点能通过主机名能解析. 1.同步时间 # yum install ...
- puppet master/agent
puppet master/agent 配置 安装 master: yum install puppet-server agent: yum install puppet 自动签名 puppet的ma ...
- Puppet master/agent installation on RHEL7
==================================================================================================== ...
- puppet(5)-master/agent模式
master/agent模式的工作流程 agent每隔固定时长会向master端发送nodename(自己的节点名,节点名至关重要)和 facts ,并且向服务器端请求自己的catalog. mast ...
- Puppet基于Master/Agent模式实现LNMP平台部署
前言 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,运维人员面对日益增长的服务器和运维工作,不得不把很多重复的.繁琐的工作利用自动化处理.前期我们介绍了运维自动化工具ansible的简单应 ...
- Advacned Puppet: Puppet Master性能调优
本文是Advanced Puppet系列的第一篇:Puppet master性能调优,谈一谈如何优化和提高C/S架构下master端的性能. 故事情节往往惊人地类似:你是一名使用Puppet管理线上业 ...
- Configure Puppet Master with Passenger and Apache on Centos
What is Passenger? Passenger (AKA mod_rails or mod_rack) is an Apache 2.x module which lets you run ...
- WEBrick/Rack Puppet Master
Puppet's Services: The WEBrick Puppet Master Puppet master is the application that compiles configur ...
随机推荐
- POJ 1696 /// 凸包
题目大意: 不能向左拐 不能重复走 就是求一个螺旋凸包 把已经是凸包内的点标记一下就行 因为凸包的性质 所有点都能走到 注意起点的选择 还有 反复求凸包的过程中边界的改变 #include <c ...
- [笔记]xshell Session
因之前正常使用的xshell5 绿色版,在重装系统之后 启动时提示缺少 MSCVP110.dll xshell5 绿色版,启动时提示缺少 MSCVP110.dll,在各网站下载了对应的Dll文件,依然 ...
- 布局页中的特殊情况(比如说只有某页有的banner)
仅作代码记录之用 /WEB-INF/tags/section.tag <%@ tag language="java" import="java.util.*,jav ...
- jQuery实现contains方法不区分大小写的方法教程
jQuery.expr[':'].Contains = function(a, i, m){ return jQuery(a).text().toUpperCase() .indexOf(m[3].t ...
- Ubuntu GitHub操作——使用仓库
若你想更新github代码 在正式更新github仓库时,可以先 git status 查看一下分支master的状态 1.因为是更新代码,所以不用前面那么多步骤,直接添加所更新的文件到 分支mast ...
- CSS工程化
CSS工程化 引言: 你在编写CSS代码时,是否遇到过这样的问题: 代码没有层次结构,难以看出嵌套关系 .site-footer .footer-container .footer-menu { di ...
- Webstorm在MAC下的安装方法
一 .注册时,在打开的License Activation窗口中选择“License server”,在输入框输入下面的网址: http://idea.codebeta.cn (新,感谢Rachels ...
- Windows中的Tree命令
Windows中的Tree命令你会用吗? - 步行者的专栏 - CSDN博客 https://blog.csdn.net/hantiannan/article/details/7663893 (ven ...
- 10张图带你深入理解Docker容器和镜像-转
转载:http://dockone.io/article/783 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行 ...
- eclipse下项目复制改名注意事项
当在Eclipse下复制Web工程时 1.需要修改复制后新工程源码文件下 .settings 文件夹下的org.eclipse.wst.common.component中的内容为本工程名,明细如图: