1 / 12
文档名称:

Puppet使用方法总结.docx

格式:docx   大小:52KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Puppet使用方法总结.docx

上传人:4ai2f1iu29 2017/3/2 文件大小:52 KB

下载得到文件列表

Puppet使用方法总结.docx

文档介绍

文档介绍:Puppet 使用方法总结 puppet 是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型 IT公司均在使用 puppe t 对集群中的软件进行管理和部署,如 google 利用 puppet 管理超过 600 0 台地 mac 桌面电脑。本文主要介绍 puppet 安装方法,设计架构及使用方法。 2. 设计架构 puppet 是基于 c/s 架构的。服务器端保存着所有对客户端服务器的配置代码,在 puppet 里面叫做 manifest. 客户端下载 manifest 之后,可以根据 manifest 对服务器进行配置,例如软件包管理,用户管理和文件管理等等。如上图所示,puppet 的工作流程如下:(1)客户端 puppetd 调用 facter , facter 探测出主机的一些变量,例如主机名,内存大小, ip地址等。 pupppetd 把这些信息通过 ssl 连接发送到服务器端; (2)服务器端的 puppetmaster 检测客户端的主机名,然后找到manifes t里面对应的nod e 配置,并对该部分内容进行解析,facter 送过来的信息可以作为变量处理, node 牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,语法检查,如果语法错误就报错。如果语法没错,就继续解析, 解析的结果生成一个中间的“伪代码”,然后把伪代码发给客户端;(3) 客户端接收到“伪代码”,并且执行,客户端把执行结果发送给服务器; (4)服务器端把客户端的执行结果写入日志。 puppet 工作过程中有两点值得注意,第一,为了保证安全, client 和 master 之间是基于 ssl 和证书的,只有经 master 证书认证的 client 可以与 master 通信;第二,puppet 会让系统保持在你所期望的某种状态并一直维持下去,如检测某个文件并保证其一直存在,保证 ssh 服务始终开启,如果文件被删除了或者 ssh 服务被关闭了, puppet 下次执行时(默认30分钟),会重新创建该文件或者启动 ssh 服务。 3. 软件安装不推荐使用 apt-get 命令进行安装,因为该命令下载的 puppet 存在 bug 。可直接从源代码进行安装,需要安装的软件有 ruby ,facter 和puppet 。 安装步骤编辑/etc/host 以修改主机名,因为 puppet 是基于证书的,证书中包含主机名; 在master 和slave 上依次安装 ruby 、facter 和puppet ,安装 facter 和 puppet 时,要使用 ruby 。 安装后的目录结构(1) 安装目录安装目录默认存为/etc/puppet ,该目录下的 manifests 存放 manifes t 文件。其他可执行文件在/user/sbin 下,主要有: puppet :用于执行用户所写独立的 mainfests 文件,如: puppet -l/tmp/ puppetd :运行在被管理主机上的客户端程序,如: puppet –server servername –waitforcert 60 puppetmasterd :运行在管理机上的服务器程序,如: puppetmasterd –debug puppetca puppet 认证程序,主要用于对 slave 的证书进行认证,如: 查看需认证的 slave :puppetca –list 对这些 slave 进行认证: puppetca -s–a puppetrun 用于连接客户端,强制运行本地配置文件,如: puppetrun -p10–host host1 –host host2 -tremotefile -twebserver (2) 配置文件 Puppet 的主配置文件,如果是 root 用户,配置文件为/etc/puppet/ ,普通用户,配置文件为: ~user/.puppet/ 具体配置参数,参见: http://docs./references/stable/ #configuration-files puppet 文件服务器的配置文件。用path 配置文件路径,allow/deny 配置访问权限,具体参见: http://docs./guides/ 验证安装是否成功选定一个 slave 与master 进行验证,假设 slave 的host 为slav