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模型搭建的更多相关文章

  1. 自动化运维工具之Puppet master/agent模型、站点清单和puppet多环境设定

    前文我们了解了puppe中模块的使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14086315.html:今天我来了解下puppet的master/age ...

  2. 部署puppet master/agent模型

    自己画的一个简单的架构图 agent端每隔30分钟到master端请求与自己相关的catalog. 各节点时间要同步. 依赖DNS,各节点能通过主机名能解析. 1.同步时间 # yum install ...

  3. puppet master/agent

    puppet master/agent 配置 安装 master: yum install puppet-server agent: yum install puppet 自动签名 puppet的ma ...

  4. Puppet master/agent installation on RHEL7

    ==================================================================================================== ...

  5. puppet(5)-master/agent模式

    master/agent模式的工作流程 agent每隔固定时长会向master端发送nodename(自己的节点名,节点名至关重要)和 facts ,并且向服务器端请求自己的catalog. mast ...

  6. Puppet基于Master/Agent模式实现LNMP平台部署

    前言 随着IT行业的迅猛发展,传统的运维方式靠大量人力比较吃力,运维人员面对日益增长的服务器和运维工作,不得不把很多重复的.繁琐的工作利用自动化处理.前期我们介绍了运维自动化工具ansible的简单应 ...

  7. Advacned Puppet: Puppet Master性能调优

    本文是Advanced Puppet系列的第一篇:Puppet master性能调优,谈一谈如何优化和提高C/S架构下master端的性能. 故事情节往往惊人地类似:你是一名使用Puppet管理线上业 ...

  8. 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 ...

  9. WEBrick/Rack Puppet Master

    Puppet's Services: The WEBrick Puppet Master Puppet master is the application that compiles configur ...

随机推荐

  1. 矩阵连乘 /// 区间DP oj1900

    题目大意: 输入t :t为测试用例个数 接下来t个测试 每个测试用例 第一行输入n: n为矩阵个数 保证n个矩阵依序是可乘的 接下来n行 每行输入p,q:p为长度q为宽度 对给定的n个矩阵确定一个计算 ...

  2. java.nio.file.FileSystemException: D:\kafka_2.12-2.1.0\kafka_2.12-2.1.0\logs\__consumer_offsets-30\00000000000000000000.timeindex.cleaned: 另一个程序正在使用此文件,进程无法访问。

    在启动kafka时候报错: java.nio.file.FileSystemException: D:\kafka_2.12-2.1.0\kafka_2.12-2.1.0\logs\__consume ...

  3. ps photoshop

    PS-前端切图教程(切jpg图和切png图) 参考线显示和隐藏:ctrol+h alt+v+e或者打开标尺然后从点击标尺就能拖拽出来,删除也是拖到标尺附近就删除 显示.隐藏标尺:ctrol+R 显示网 ...

  4. 介绍了Apache日志文件每条数据的请意义以及一些实用日志分析命令

    这篇文章主要介绍了apache日志文件每条数据的请意义,以及一些实用日志分析命令,需要的朋友可以参考下(http://wap.0834jl.com) 一.日志分析 如果apache的安装时采用默认的配 ...

  5. ThinkPHP支持模型的分层

    ThinkPHP支持模型的分层 ,除了Model层之外,我们可以项目的需要设计和创建其他的模型层. 大理石平台支架 通常情况下,不同的分层模型仍然是继承系统的\Think\Model类或其子类,所以, ...

  6. Less适配移动端rem

    @ue-width: 750; /* 设计图的宽度 */ .px2rem(@px) { @remValue: @px/@ue-width*10; @pxToRem: ~"@{remValue ...

  7. Joomla - 权限系统(访问权限限制)

    Joomla - 权限系统,以下以全局配置的权限设置为例,每个扩展都有自己的权限设置

  8. Java—重写与重载的区别

    1.重写(Override) 子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除了子类中方法的返回值是父类中方法返回值的子类时)都相同的情况 ...

  9. Python基础---序列对象

    一.序列简介 数据结构是通过某种方式组织在一起的元素的集合. 容器(Container)是一种Python的数据结构,基本上是包含其他对象的任意对象.序列和映射(如字典)是两类主要的容器.集合(Set ...

  10. ElasticSearch入门之彼行我释(四)

    散仙在上篇文章中,介绍了关于ElasticSearch基本的增删改查的基本粒子,本篇呢,我们来学下稍微高级一点的知识: (1)如何在ElasticSearch中批量提交索引 ? (2)如何使用高级查询 ...