本文主要介绍puppet工作原理、软件安装及一个部署httpd的实例。
puppet简单介绍及软件安装 一、puppet介绍 Puppet 是一款为 IT 系统管理员和顾问们设计的自动化软件,可以用它自动化地完成诸如安装应用程序和服务、补丁管理和部署等工作。所有资源的相关配置都以“manifests”的方式保存,单台机器或者多台机器都可以使用。 二、Puppet工作原理 1、工作流程 1)定义:使用puppet特定的语言定义基础配置信息,通常这些信息定义在Modules中 2)模拟:在配置执行前检测代码,并未真正执行 3)执行:按第一步定义的配置自动部署 4)报告: 2、数据流走向 1)node节点将Facts和本机信息发送给Master 2)Master通知node节点应该如何配置,将这些信息写入Catalog后传给node 3)node节点在本机进行代码解析验证并执行,将结果反馈给Master 4)Master通过API将数据发给分析工具 三、安装软件 Puppet需要ruby环境,先安装ruby 1.安装epel源 当前最新版本为3.8.1 2.服务器端安装 # yuminstall puppet-server # puppet –V # facter –v 安装完成后在/etc/puppet目录下生产以下文件 auth.conf:ACL权限控制文件 environments: fileserver.conf:文件服务配置文件 manifests:节点存储目录 modules:模块配置目录 puppet.conf:主配置文件 3.客户端安装 # yuminstall puppet 4.启动服务 服务器端:# service puppetmaster start 客户端:# service puppet start
Puppet部署httpd实例 一、实验环境
二、安装前准备工作 Puppet软件的安装这里不在介绍 1.修改客户端和服务端的hosts文件,添加如下两行 192.168.115.21puppetmaster.hnr.com 192.168.115.22agent.hnr.com 2.服务端上修改相应的配置文件 1)修改主配置文件 /etc/puppet/puppet.conf [agent] server = puppetmaster.hnr.com 2)修改系统配置文件 /etc/sysconfig/puppet PUPPET_SERVER=puppetmaster.hnr.com 3.客户端上修改相应的配置文件 1)修改主配置文件 /etc/puppet/puppet.conf [agent] server = puppetmaster.hnr.com 2)修改系统配置文件 /etc/sysconfig/puppet PUPPET_SERVER=puppetmaster.hnr.com 4.服务端和客户端分别启动服务 三、证书签发 1.客户端发起验证 先删除/var/lib/puppet/ssl/目录下所有文件 # puppetagent --test “Exiting; no certificate found andwaitforcert is disabled” 说明此时服务端还未签发证书 2.服务端签发证书 1)服务器端重新签名需要删除相关签名文件,执行以下命令 # puppetcert --clean agent.hnr.com 2)第一次签发证书,执行以下命令 find$(puppet master --configprint ssldir) -name "$(puppet master --configprintcertname).pem" -delete 3)查看未签发的证书 # puppetcert --list agent.hnr.com 此时证书还未签发,证书前无+号 4)签发证书 # puppetcert sign agent.hnr.com # puppetcert -s agent.hnr.com 此时在查看发现客户端的证书前已出现+号 四、安装httpd实例 服务端配置 1.创建httpd模块相应的目录 /etc/puppet/modules目录下 # mkdir-pv httpd/{manifests,templates,files}
2.编辑httpd模块文件,指定安装源配置信息,这里使用163镜像 编辑文件 /etc/puppet/modules/httpd/manifests/init.pp classhttpd { yumrepo {"repo163": descr => "163 repo", baseurl => "http://mirrors.163.com/centos/6.6/os/x86_64/", gpgcheck => "0", enabled => "1", }
package { "httpd": ensure => installed, require =>Yumrepo["repo163"], } }
3.修改/etc/puppet/manifests/nodes目录下的节点配置文件,增加httpd模块 /etc/puppet/manifests/nodes/agent.hnr.com.pp node'agent.hnr.com' { include httpd } 4.修改站点配置文件/etc/puppet/manifests/ site.pp import “nodes/agent.hnr.com.pp” 5.检查配置文件语法 puppetparser validate 在客户端上试运行 # puppetagent --test –noop
一切正常执行命令 # puppet agent –test
命令执行结束后,httpd软件在客户端上已安装完成
参考文献: 《puppet实战》----刘宇
|