`
joerong666
  • 浏览: 410031 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

为什么要使用puppet 及初步接触

 
阅读更多

1、简介

云计算环境下,密度高,机器数量多,还要求弹性和伸缩性,这对于运维提出更高的要求。系统管理员需要经常安装操作系统,对系统参数进行配置和优化,对人员进行授权和定期更新公钥,对软件包进行升级,添加和配置某个服务。这些日常繁琐的任务不但单调、重复,也容易出错。为了提高效率,积累知识,不断改进,管理员一般会想到将这些任务使用脚本进行自动化,然后不断优化和改进这些脚本,可以大大提高效率。但是自己写的脚本,具有下面一些缺点:

  • 可伸缩性是一个问题,要管理成千上万台机器上一个挑战
  • 需要从头开始造轮子,脚本从头构建是一个挑战和繁琐工作
  • 不能保证能顺利运行在不同的平台上
  • 每次操作系统更新都需要重新测试定制脚本,耗费大量时间和精力,灵活性和功能也很难保证
  • 脚本语言虽然简单,自己写的脚本不一定别的管理员就能马上看懂, 不利知识共享

于是出现了出现了 一些自动化配置管理工具,Puppet, Chef 就是其中的佼佼者。我们选择了 Puppet 作为配置工具,具体原因主要是:

  • 装机量大,用户多,一些知名用户比如 Google, Redhat, Openstack,西门子都在使用 Puppet
  • Openstack 的集成环境 (Openstack-ci)就是使用 Puppet进行配置和管理的:

https://github.com/openstack/openstack-ci-puppet

  • Puppet使用更加友好的配置语言,便于描述业务。而Chef 需要使用 ruby 来做配置语言。
  • Puppet 提供更多平台的支持
使用puppet这样的自动化配置管理工具,主要的优点是:
  • 提供了一个强大的框架,简化了常见的系统管理任务,大量细节交给Puppet去完成,管理员只要集中精力在业务配置上
  • 系统管理员使用Puppet的描述语言来配置,这些配置便于共享,网上已经有数百个其他人开发的模块可以直接使用
  • Puppet伸缩性强,可以管理成千上万台机器

Puppet 一般是做成master/client 的结构,进行管理的。设置一个中央服务器 (puppet master),然后在需要管理的机器上安装 puppet,做成 puppet client. 客户机定时(半个小时)和master通讯,从master读取配置,如果有变化,则自动在客户机进行配置。同时,Puppet也可以脱离 master 进行运行,Puppet 的配置文件,可以直接在客户端进行运行。我们的初步接触,就一台机器的 puppet 客户端开始。以后,我们还将看如何将这些配置部署,并且做到可扩展,我们将使用 git +puppet 的方式,代替 master/client 的结构。

2、安装 puppet

2.1 CentOS 6.2上安装

rpm -i http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm

yum install puppet

2.2 Deiban/Ubuntu 的支持

apt-get install puppet

3、puppet 的例子

cd /root/
mkdir -p puppet/manifests puppet/modules
cd puppet
 
#创建 sudo 模块
mkdir -p ./modules/sudo/manifests ./modules/sudo/files
 
#创建 sudo  的 manifests 文件:
 
vi ./modules/sudo/manifests/init.pp
 
class sudo {
    package { ‘sudo’: ensure => latest }
 
    group { ‘sudo’:
        ensure => ‘present’
    }
 
    file { ‘/etc/sudoers’:
        ensure  => ‘present’,
        owner   => ‘root’,
        group   => ‘root’,
        mode    => ’0440′,
        source  => ‘puppet:///modules/sudo/sudoers’,
        replace => ‘true’,
        require => Package['sudo'],
    }
}
 
 
# 拷贝,修改 sudoers 文件
cp /etc/sudoers modules/sudo/files/
 
#运行puppet,进行测试(由于使用 noop 选项,不进行实际的操作,不拷贝文件)
# 如果你修改了  modules/sudo/files/sudoers 文件,就会提示你
puppet apply  –noop –modulepath=/root/puppet/modules modules/sudo/manifests/init.pp
 
#运行 puppet,使配置生效
#这时如果你修改了  modules/sudo/files/sudoers 文件,就会发现文件已经部署到 /etc/sudoers
puppet apply  –modulepath=/root/puppet/modules modules/sudo/manifests/init.pp
 
#创建 site.pp  文件
vim manifests/site.pp
 
node default {
  include sudo
}
 
#使用 site.pp 运行 puppet
puppet apply –modulepath=/root/puppet/modules manifests/site.pp

notice: /Stage[main]/Sudo/File[/etc/sudoers]/content: content changed ‘{md5}1b00ee0a97a1bcf9961e476140e2c5c1′ to ‘{md5}cbcab74f0fc9882ba9a91866b1fd6c82′
notice: Finished catalog run in 0.13 seconds

 

至此,我们在单机中运行了一个简单的例子。在这个基础上,可以继续:

1、逐步增加模块,增加配置功能

2、对各种主机,采用 site 进行配置

3、采用 master/client 方式,或者 git/puppet 将配置部署到所有需要管理的服务器上。

分享到:
评论

相关推荐

    一招教你使用puppet

    一招教你使用puppet,此次实例使用的架构是lamp,使用puppet能够自动完成。

    使用puppet 部署elk

    puppet 部署ELK

    puppet 入门,puppet 中文,puppet安装

    puppet 入门 ,puppet 中文,puppet安装

    puppet最经典中文手册资料

    随着数据中心服务器的...另外很多世界知名的it企业也在使用puppet,开源社区的fedora也使用puppet。国内的大公司也在准备从cfengine转移到puppet上面。 本文档的目的是让初学者对puppet有一个简单的认识能快速的入门!

    puppet-rvm, 用于安装和使用 RVM ( ruby 版本管理器)的Puppet 模块.zip

    puppet-rvm, 用于安装和使用 RVM ( ruby 版本管理器)的Puppet 模块 用于 ruby 版本管理器( RVM )的 Puppet 模块这个模块处理安装系统 RVM ( 也称为 root的多用户安装) 并使用它来安装红宝石和 Gems 。 还包括安装和...

    Puppet运维自动化全部文档

    Puppet 运维自动化章节目录 一、 Puppet 介绍 1. 2014年新增Puppet 微信公众平台,欢迎各位大神交流学习 2. 如何将Puppet模块生成带有箭头关系依赖图 3. 如何从互联网获取 Puppet的各项特殊资源 4. Puppet...

    puppet使用指南

    自动化管理工具,本文的目的是让初学者对puppet有一个简单的认识能快速的入门

    puppet-lint, 检查你的Puppet 清单是否符合样式指南.zip

    puppet-lint, 检查你的Puppet 清单是否符合样式指南 Puppet Lint Puppet 测试 Puppet 代码against推荐的Puppet 语言样式指南 。 Puppet Lint仅验证代码样式;... 要测试语法,请使用 Puppet 命令的puppet par

    使用Puppet框架管理基础设施

    中文名: 使用Puppet框架管理基础设施 原名: Managing Infrastructure with Puppet 作者: James Loope 资源格式: PDF 版本: 英文文字版/更新EPUB版本/更新MOBI版本 出版社: O'Reilly书号: 978-1-4493-0763-9发行时间:...

    RHEL6下Puppet安装配置文档

    puppet是一个为实现数据中心自动化管理而设计的配置管理软件。基于c/s架构。puppet 的服务器端保存着所有的对客户端服务器的配置代码,在puppet里面叫做manifest. 客户端 下载manifest之后,可以根据manifest对...

    vagrant-librarian-puppet, 一个使用图书管理员 Puppet 安装 Puppet 模块的Vagrant插件.zip

    vagrant-librarian-puppet, 一个使用图书管理员 Puppet 安装 Puppet 模块的Vagrant插件 vagrant-librarian-puppet使用工具安装 Puppet 插件模块的 Vagrant插件插件。要求Vagrant版本 1.2.0或者更高版本。安装vagrant...

    puppet安装包及一些依赖性

    puppet安装包和一些依赖性 没了

    精通Puppet配置管理工具

    Puppet

    运维自动化-Puppet应用与架构

    3.puppet 使用时注意事项 4.puppet 应用案例 -puppet 管理用户 -puppet nginx 管理 -puppet kick 介绍 -puppet MCollective 介绍 - puppet func 介绍 5.puppet 架构与集群 -puppet 架构 -puppet 集群方案 - ...

    运维 puppet工具讲解

    运维 puppet工具讲解,很详细 运维 puppet工具讲解,很详细

    Puppet 手势识别软件

    Puppet 的主要功能使用手势控制计算机。基本原理是用WebCamera/Kinect摄像头拍下人的手势动做,模拟鼠标对计算机的控制。

    Puppet Essentials(PACKT,2014)

    With this book, you'll be up and running with using Puppet to manage your IT systems. Dive right in with basic commands so that you can use Puppet right away, and then blitz through a series of ...

    Puppet2D v3.7.zip

    Puppet2D is an advanced 2D Skeletal Animation Tool. - AUTORIG - 在一分钟内钻完! 使绑定Biped变的非常容易。 - 在您的AUTORIG上添加现成的动画 - 它们可以在任何形状的两足动物上使用! (包括空闲和步行...

    puppet安装与配置

    puppet安装与配置 puppet是一款开源自动化部署工具,下面介绍puppet安装和配置

Global site tag (gtag.js) - Google Analytics