puppe介绍及基于httpd实例部署

本文主要介绍puppet工作原理、软件安装及一个部署httpd的实例。

 

puppet简单介绍及软件安装 

一、puppet介绍

Puppet 是一款为 IT 系统管理员和顾问们设计的自动化软件,可以用它自动化地完成诸如安装应用程序和服务、补丁管理和部署等工作。所有资源的相关配置都以“manifests”的方式保存,单台机器或者多台机器都可以使用。

二、Puppet工作原理

1、工作流程

puppet介绍及基于httpd实例部署_puppe介绍及基于httpd实例部署

1)定义:使用puppet特定的语言定义基础配置信息,通常这些信息定义在Modules

2)模拟:在配置执行前检测代码,并未真正执行

3)执行:按第一步定义的配置自动部署

4)报告:

2、数据流走向

puppet介绍及基于httpd实例部署_puppe介绍及基于httpd实例部署_02

1node节点将Facts和本机信息发送给Master

2Master通知node节点应该如何配置,将这些信息写入Catalog后传给node

3node节点在本机进行代码解析验证并执行,将结果反馈给Master

4Master通过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 –V
# facter –v


安装完成后在/etc/puppet目录下生产以下文件

puppet介绍及基于httpd实例部署_puppe介绍及基于httpd实例部署_03

auth.confACL权限控制文件

environments

fileserver.conf:文件服务配置文件

manifests:节点存储目录

modules:模块配置目录

puppet.conf:主配置文件

3.客户端安装

# yum install puppet

4.启动服务

服务器端:# service puppetmaster start

客户端:# service puppet start


Puppet部署httpd实例

一、实验环境

puppet介绍及基于httpd实例部署_puppe介绍及基于httpd实例部署_04

二、安装前准备工作

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 –noop

puppet介绍及基于httpd实例部署_puppe介绍及基于httpd实例部署_05

一切正常执行命令

# puppet agent test

puppet介绍及基于httpd实例部署_puppe介绍及基于httpd实例部署_06

命令执行结束后,httpd软件在客户端上已安装完成


参考文献:

《puppet实战》----刘宇