简介:

基于C/S架构的Puppet更新方式一般有两种,一种是Agent端设置同步时间主动去PuppetMaster端拉取配置,另一种是通过PuppetMaster端使用puppet kick命令或者借助mcollctive触发更新配置,两种方式适应不同的生产环境,各具特色。

安装说明:

系统:centos6.7

版本:puppet3.8

服务端 puppet-master 172.16.0.112

客户端 puppet-agent 172.16.0.114

1.两台机器都设置一下主机名,机器很多的话配dns服务器比较好

[root@puppet-master ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.0.112 puppet-master
172.16.0.114 puppet-agent

两台机器互ping验证一下dns

[root@puppet-master ~]# ping puppet-agent
PING puppet-agent (172.16.0.114) 56(84) bytes of data.
64 bytes from puppet-agent (172.16.0.114): icmp_seq=1 ttl=64 time=1.25 ms
64 bytes from puppet-agent (172.16.0.114): icmp_seq=2 ttl=64 time=0.285 ms
64 bytes from puppet-agent (172.16.0.114): icmp_seq=3 ttl=64 time=0.289 ms

2、安装官方yum仓库

[root@puppet-master ~]# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

3、安装服务端puppet(注意中间有“-”)

[root@puppet-master ~]# yum install puppet-server
[root@puppet-master ~]# puppet master --version
3.8.7
[root@puppet-master ~]# chkconfig puppetmaster on
[root@puppet-master ~]# chkconfig --list puppetmaster
puppetmaster 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@puppet-master ~]# service puppetmaster start
Starting puppetmaster: [ OK ]
[root@puppet-master ~]# netstat -tupln #运行在8140端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN 2581/ruby
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2204/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2046/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2329/master
tcp 0 0 :::22 :::* LISTEN 2204/sshd
tcp 0 0 ::1:631 :::* LISTEN 2046/cupsd
tcp 0 0 ::1:25 :::* LISTEN 2329/master
udp 0 0 0.0.0.0:631 0.0.0.0:* 2046/cupsd

4、安装客户端 puppet

[root@puppet-agent ~]# yum install  puppet
[root@puppet-agent ~]# chkconfig puppet on
[root@puppet-agent ~]# chkconfig --list puppet
puppet 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@puppet-agent ~]# vim /etc/puppet/puppet.conf
#[agent]末尾添加如下一句,agent启动时会自动向master请求证书认证
server=puppet-master
[root@puppet-agent ~]# service puppet start
Starting puppet agent: [ OK ]

5、证书认证

5a.服务端查看证书,如果是已经签发的证书,会在本行最前面带一个”+”

前面没有“+”表示正在请求认证

[root@puppet-master ~]# puppet cert list --all
"puppet-agent" (SHA256) 74:F3:C0:00:FF:8A:70:1D:64:69:CA:70:72:D9:A1:65:F8:34:18:89:F5:F2:94:9E:F3:ED:14:F0:1E:70:17:27
+ "puppet-master.puppet-master" (SHA256) 79:B9:47:A2:67:00:F2:DE:7C:48:A6:12:45:3C:CD:37:53:B6:69:87:89:CF:44:5E:07:26:88:4B:AD:1A:21:4B (alt names: "DNS:puppet", "DNS:puppet-master.puppet-master", "DNS:puppet.puppet-master")

这个时候,服务端已经自动把本机当成客户端,管理起来,证书已经自动签发。但是客户端的证书还没有签发。

5b.服务端签发证书认证

[root@puppet-master ~]# puppet cert --sign puppet-agent

5c.一次性签发所有证书

[root@puppet-master ~]# puppet cert --sign --all

5d.再次查看

[root@puppet-master ~]# puppet cert list --all
+ "puppet-agent" (SHA256) A6:2E:62:1F:1B:AF:E3:55:E1:EA:A9:69:37:01:83:4B:F2:8D:AF:00:6C:7F:38:71:65:20:95:26:7B:FD:74:B9
+ "puppet-master.puppet-master" (SHA256) 79:B9:47:A2:67:00:F2:DE:7C:48:A6:12:45:3C:CD:37:53:B6:69:87:89:CF:44:5E:07:26:88:4B:AD:1A:21:4B (alt names: "DNS:puppet", "DNS:puppet-master.puppet-master", "DNS:puppet.puppet-master")

5e.已签发证书的目录

[root@puppet-master ~]# ls /var/lib/puppet/ssl/ca/signed/
puppet-master.puppet-master.pem

6、调试:

验证配置是否有误,一般来说通过查看日志文件 /var/log/puppet,也可手动执行

[root@puppet-agent ssl]# puppet agent -t

加上debug 选项会显示 Puppet 本次运行时的差不多每一个步骤,这在调试非常复杂的问题时很有用。

[root@puppet-agent ssl]# puppet agent -t --debug

到此为止 puppet 客户端和服务端都可以正常工作了。但是,现在 puppet master 没有任何要客户端做的事。

7、写个pp文件验证一下

[root@puppet-master manifests]# vim /etc/puppet/manifests/test.pp
file{"/tmp/123.txt":
content => aaaaababbau,
ensure => present
}
[root@puppet-master manifests]# service puppetmaster restart
[root@puppet-agent ~]# puppet agent -t #强制客户端立即生效
[root@puppet-agent ~]# cat /tmp/123.txt
aaaaababbau

8、配置生效方式:

主机节点定时更新:24小时后更新(时间可以自己设置)

主动触发更新,有两种:

server端push更新: puppet kick hostname

client端pull更新: puppet agent -t

9、常见错误及解决办法

参考链接:

https://docs.puppet.com/puppet/3.8/install_el.html

http://www.cnblogs.com/taosim/articles/3336986.html

http://kisspuppet.com/2014/03/08/puppet_learning_base4/

https://linux.cn/article-3959-1.html

(1)puppet安装的更多相关文章

  1. Puppet安装及部署

    本篇博客主要介绍Puppet的安装部署,后续会更新其他相关内容 一.简介 二.环境介绍 三.安装Puppet 四.配置Puppet-dashboard 五.配置Puppet Kick 一.简介 Pup ...

  2. puppet安装配置及使用

     puppet安装前准备 一.服务器信息 master端:10.10.10.201 master.fansik.com slave端:10.10.10.156 slave.fansik.com 三台机 ...

  3. puppet安装

    server  xuesong1     10.152.14.85 client  xuesong      10.152.14.106   系统centos5.8   两台配置都配置 /etc/ho ...

  4. puppet 安装

    yum源配置 1. wget http://ftp.kaist.ac.kr/fedora//epel/6/i386/epel-release-6-8.noarch.rpm 2. yum list | ...

  5. Puppet安装与配置简介(附视频教程)

    Puppet是一种Linux平台的集中配置管理系统,他可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资源,puppet采用C/S星状的结构,所有的客户端和一个 ...

  6. puppet安装和使用

    puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有的puppet描写叙述语言,可管理配置 文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称 ...

  7. CentOS下puppet安装

    简介 Puppet是开源的基于Ruby的系统配置管理工具,puppet是一个C/S结构, 当然,这里的C可以有很多,因此,也可以说是一个星型结构. 所有的puppet客户端同一个服务器端的puppet ...

  8. centos6.5环境自动化运维之puppet实现nginx反向代理功能及puppet安装配置详解

    puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资 ...

  9. puppet安装和配置

    一.安装puppet准备 //安装准备 ,两台机器都要操作 . 两台机器 172.7.15.106 (server) 172.7.15.111 (client) . 关闭防火墙 setenforce ...

  10. Puppet 安装配置

    环境说明: OS:CentOS 5.4 i386 puppetmaster    192.168.0.12    hostname: puppetmaster.info.com client      ...

随机推荐

  1. 【LeetCode】115. Distinct Subsequences 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetc ...

  2. 【LeetCode】760. Find Anagram Mappings 解题报告

    [LeetCode]760. Find Anagram Mappings 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/find ...

  3. 1119 机器人走方格 V2

    1119 机器人走方格 V2 基准时间限制:1 秒 空间限制:131072 KB M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很大,只需要输出Mo ...

  4. 1306 - Solutions to an Equation

    1306 - Solutions to an Equation    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Lim ...

  5. API 网关功能

    反向代理和路由 - 大多数项目采用网关的解决方案的最主要的原因.给出了访问后端 API 的所有客户端的单一入口,并隐藏内部服务部署的细节. 负载均衡 - 网关可以将单个传入的请求路由到多个后端目的地. ...

  6. SpringCloud发现服务代码(EurekaClient,DiscoveryClient)

    1.说明 本文介绍SpringCloud发现服务代码的开发, 通过使用EurekaClient,DiscoveryClient来发现注册中心的服务等, 从而可以自定义客户端对注册中心的高级用法. 2. ...

  7. Storm集群安装Version1.0.1开启Kerberos

    Storm集群安装,基于版本1.0.1, 同时开启Kerberos安全认证, 使用apache-storm-1.0.1.tar.gz安装包. 1.安装规划 角色规划 IP/机器名 安装软件 运行进程 ...

  8. Api接口测试总是似懂非懂,只因这个原理没搞清楚

    ​ 前言 掌握了http协议,就掌握了接口测试 笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者为什么要这么操作.读者可能照猫画虎成功了,也可能操作失败了但不知为何出错. 因 ...

  9. python+pytest,通过自定义命令行参数,实现浏览器兼容性跑用例

    场景拓展: UI自动化可能需要指定浏览器进行测试,为了做成自定义配置浏览器,可以通过动态添加pytest的命令行参数,在执行的时候,获取命令行传入的参数,在对应的浏览器执行用例. 1.自动化用例需要支 ...

  10. 初识python: 生成器

    生成器定义理解,直接上代码: #!/user/bin env python # author:Simple-Sir # time:20181005 # 生成器 ''' # 列表生成式 a=[i for ...