puppe介绍及基于httpd实例部署
本文主要介绍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源
# rpm -ivh https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs-release-6-11.noarch.rpm
当前最新版本为3.8.1
2.服务器端安装
# yum install puppet-server # puppet �CV # facter �Cv
安装完成后在/etc/puppet目录下生产以下文件
auth.conf:ACL权限控制文件
environments:
fileserver.conf:文件服务配置文件
manifests:节点存储目录
modules:模块配置目录
puppet.conf:主配置文件
3.客户端安装
# yum install puppet
4.启动服务
服务器端:# service puppetmaster start
客户端:# service puppet start
Puppet部署httpd实例
一、实验环境
二、安装前准备工作
Puppet软件的安装这里不在介绍
1.修改客户端和服务端的hosts文件,添加如下两行
192.168.115.21 puppetmaster.hnr.com
192.168.115.22 agent.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/目录下所有文件
# puppet agent --test
“Exiting; no certificate found and waitforcert is disabled”
说明此时服务端还未签发证书
2.服务端签发证书
1)服务器端重新签名需要删除相关签名文件,执行以下命令
# puppet cert --clean agent.hnr.com
2)第一次签发证书,执行以下命令
find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete
3)查看未签发的证书
# puppet cert --list agent.hnr.com
此时证书还未签发,证书前无+号
4)签发证书
# puppet cert sign agent.hnr.com
# puppet cert -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
class httpd { 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.检查配置文件语法
puppet parser validate
在客户端上试运行
# puppet agent --test �Cnoop
一切正常执行命令
# puppet agent �Ctest
命令执行结束后,httpd软件在客户端上已安装完成
参考文献:
《puppet实战》----刘宇