博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集中管理服务器 PUPPET(一) 部署 与 添加节点
阅读量:7014 次
发布时间:2019-06-28

本文共 4661 字,大约阅读时间需要 15 分钟。

  hot3.png

一.FAQ

Q: puppet是什么?

A: puppet英语原意是木偶,在这里,pupet指的是一个开源的管理软件.用于集中管理服务器.因为该软件管理服务器的方式类似于操纵木偶,所以软件的名字叫做puppet.

Q:puppet对我有用吗?

A:如果你是linux unix freebsd 或者 mac os 系统管理员,puppet对你很有用,如果你是windows用户,暂时对你没用. 如果你管理着上成百上千台的服务器,但是还在用 for 循环加 ssh或者 expect 的方式来管理服务器,那么你应该尝试下puppet了.除非你想整天在不同的服务器上登入登出. 而不考虑挤出点时间来玩或者学习新的东西.

Q:puppet已经能用到生产环境了吗?

A:是的,完全没有问题,google 也用puppet管理了超过6000台的苹果桌面系统,下面是官方的puppet用户列表. 

Q: puppet 证书认证错误

A: puppet客户端和服务器端是通过ssl连接来保证安全性,ssl连接用到的证书是x.509证书。 puppet会自己生成证书。不管是在客户端还是在服务器端。

ssl在连接的时候,会对比证书里面的CN名字是否和主机名匹配,如果不匹配就会报证书验证错误。这是最常见的问题。

解决这个问题的方法就是,首先固定机器的主机名,然后删除puppet已经自己生成的ssl目录,例如/etc/puppet/ssl. 重新运行puppet来生成新的证书。不同方法安装的puppet,ssl的路径不一样,在debian下面是/var/lib/puppet/ssl

同时在服务器端和客户端都这样操作。

所谓固定机器的主机名,就是保证主机名配置文件里面配置的主机名(debian 是/etc/hostname,centos 是在/etc/sysconfig/network里面的HOSTNAME) 和 执行 hostname命令打印出来的主机名一致。

 

二.创建部署 Creating a Deployment

1.安装部署

标准Puppet Enterprise 部署包括:

  • 由许多Puppet 管理组成的 虚拟/物理机 节点。

  • 至少一个配置好节点的Puppet管理服务端。

  • 至少有一个控制台。支持PuppetDB

  • 要求有自己的DNS主机,要求有正反向解析。

官方文档废话太多了。不列了,说干货。

准备两个虚拟机,一台是管理端,一台是客户端。

这里准备两台centos6虚拟机做实验。

Puppet对Rubu的支持

Ruby version    puppet2.6    puppet2.7    puppet3.0

1.85                支持            支持            不支持

1.8.7               支持            支持            支持

1.9.3               不支持         不支持          支持

1.9.0/1/2         不支持        不支持            不支持

1.8.1/6            不支持        不支持            不支持

Puppet的安装步骤

  1. 安装Ruby Ruby-libs Ruby-shadow,进行用户和组管理

  2. 安装Facter Puppet Pupper-server

  3. 设置主机名、域名解析或者指定hosts

  4. 通过命令/etc/init.d/puppetmaster start 启动server或者以非进程的方式启动server

    通过命令puppet master --no-daemonize --verbose查看相关日志与输出

  5. 在客户端配置文件Puppet.conf制定server端,在终端运行puppet agent -test或直接运行puppet agent --test --server.domain.com 与master交互完成签名认证

  6. 在server上配置节点信息,告诉客户端要做什么

  7. 检查语法是否错误,采用puppet parser validate test.pp

  8. 客户端再次运行配置 puppet agent --test

在Linux下安装(Puppet3.x,RHEL5.X+,CentOS5.x+)

使用包管理器安装 

puppet官方源

使用源时确定系统版本,以更改baseurl

[root@localhost ~]# cat /etc/redhat-releaseCentOS release 6.4 (Final)[root@localhost ~]# vim /etc/yum.repos.d/puppet.repo[puppet-labs]name=puppet-labs-repobaseurl=http://yum.puppetlabs.com/el/6Server/products/x86_64/gpgcheck=0enabled=1[root@localhost ~]# yum list...[root@localhost ~]# yum -y install ruby ruby-libs ruby-shadow...[root@localhost ~]# ruby -vruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]首先安装puppetlabs-release.noarch[root@localhost ~]# yum install puppetlabs-release.noarch...服务端安装[root@localhost ~]# yum install puppet-server...客户端安装[root@localhost ~]# yum install puppet然后在服务端和客户端改写hosts[root@localhost ~]# vim /etc/hosts192.168.181.42 puppet.domain.com192.168.181.43 agent.domain.com

配置防火墙

iptables -A INPUT -p tcp --dport 8140 -j ACCEPT

配置主机配置文件

服务端[root@localhost ~]# vim /etc/puppet/manifests/site.ppnode default { file { "/tmp/puppettest1.txt": content => "hello,First Puppet test"; }}[root@localhost ~]# service puppetmaster start
客户端[root@agent ~]# service puppet start客户端发起验证[root@agent ~]# puppet agent --server puppet.domain.com --testInfo: Caching certificate for caInfo: csr_attributes file loading from /etc/puppet/csr_attributes.yamlInfo: Creating a new SSL certificate request for agent.domain.comInfo: Certificate Request fingerprint (SHA256): 09:3C:54:13:5B:AF:00:3E:B3:6E:18:C6:79:84:EB:A8:70:2C:B2:B0:04:7E:42:23:5C:1B:1E:44:B0:5C:39:00Info: Caching certificate for caExiting; no certificate found and waitforcert is disabled
服务端[root@localhost ~]# puppet cert --list  "agent.domain.com" (SHA256) 09:3C:54:13:5B:AF:00:3E:B3:6E:18:C6:79:84:EB:A8:70:2C:B2:B0:04:7E:42:23:5C:1B:1E:44:B0:5C:39:00[root@localhost manifests]# puppet cert sign agent.domain.comNotice: Signed certificate request for agent.domain.comNotice: Removing file Puppet::SSL::CertificateRequest agent.domain.com at '/var/lib/puppet/ssl/ca/requests/agent.domain.com.pem'签署成功
客户端验证配置[root@agent ~]# puppet agent --test --server puppet.domain.comInfo: Caching certificate for agent.domain.comInfo: Caching certificate_revocation_list for caInfo: Caching certificate for agent.domain.comInfo: Retrieving pluginInfo: Caching catalog for agent.domain.comInfo: Applying configuration version '1386938219'Notice: /Stage[main]/Main/Node[default]/File[/tmp/puppettest1.txt]/ensure: defined content as '{md5}69edbc23ca13613a136d61fb4f662d5e'Info: Creating state file /var/lib/puppet/state/state.yamlNotice: Finished catalog run in 0.03 seconds[root@agent ~]# more /tmp/puppettest1.txthello,First Puppet test

签署其他注意

客户端重新签名时,需要是删除'hostname'.pem

Find /var/lib/puppet/ssl/ -iname 'hostname'.pem -exec /bin/rm -rf {}

服务端也需要删除签名相关文件

find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete

删除某台客户端的认证信息,使用命令

puppet cert --clean {node certname}

同时

Find /var/lib/puppet/ssl/ -iname 'hostname'.pem -exec /bin/rm -rf {}

由于本人极度厌烦大便和尤半图(桌面linux),自悟去吧。

使用源码器安装

后续添加。

在Windows下安装使用

后续添加。

转载于:https://my.oschina.net/HankCN/blog/180105

你可能感兴趣的文章
Cmd命令总结
查看>>
BAE试用
查看>>
Linphone学习之 Oss
查看>>
mysql 建立索引的时候 字段太长导致的异常
查看>>
解析nginx负载均衡
查看>>
Spring Boot 2.0配置druid
查看>>
【转】[VS2005]解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会......
查看>>
xcode打包app,替换icon后出现Command /usr/bin/codesign failed with exit code 1
查看>>
二叉搜索树
查看>>
从12306看高性能网站并发集群与负载均衡
查看>>
网络数据隐私保护 各国齐出招
查看>>
MySQL解压版安装步骤
查看>>
docker的安装及使用
查看>>
mongodb按时间分组
查看>>
c/c++变量之内存空间分配
查看>>
state状态设计模式
查看>>
产品经理技能树之 项目节点
查看>>
简析Android软键盘弹出时窗口上移的问题
查看>>
http长轮询&短轮询
查看>>
Android 应用换肤功能(白天黑夜主题切换)
查看>>