运维自动化之puppet3分钟入门

运维自动化之puppet3分钟入门

  几个月前曾因为项目需求而学了点puppet的一些知识,最近因为要给别人讲一下,也就借此博文来做一下回忆,当然了,这个puppet用起来还是很不错的,尤其对我这种懒人来说,如果你需要给多台机器安装同一款软件或是同几款软件,那么学习这个能让你事半功倍,接下来开始学习puppet。那么问题来了:

什么是puppet

  本着外事问谷歌,内事问百度的原则,我在百度百科里找到了对其的定义:puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息。

puppet工作原理

  1. 客户端调用factor探测主机一些变量,将信息通过ssl连接发送到服务器端。
  2. 服务器端检测客户端主机名,找manifest里对应的node配置,并解析生成中间代码“伪代码”发送给客户端。
  3. 客户端接收到“伪代码”并执行,把执行的结果发给服务器端,服务器将结果写入日志。

puppet安装

  首先声明一下:我用的系统都是CentOS6.5。也就是说我的一切测试运作都是基于CentOS6.5来进行的。

  在安装前需要对hostname进行修改:

1 [[email protected] ~]# hostname 你要起的主机名   //中间有空格,即时生效
2 [[email protected] ~]# vim /etc/sysconfig/network  //更改主机名,重启生效
3 [[email protected] ~]# vim /etc/hosts    //把你要管理的机器加进去,格式 IP 主机名

  接下来,就是安装了,选一台当服务器,其余的当客户端。当然,所有的都有一个库需要安装:

rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

  然后,服务器端执行下面的安装指令: 

1 yum install puppet-server

  客户端执行下面的安装指令:

1 yum install puppet

  至此,安装结束,没错,就是这么简单~

  不过,你难道以为现在就可以使用了?NO,当然没那么容易,接下来的一步将会至关重要,它的成败将关系到你能否使用这个自动运维的工具。

puppet的认证

  首先,在客户端执行命令: 

1 puppet agent --test

  然后,认证请求会出现在服务器端,使用以下命令进行查看:

1 puppet cert --list

  最后,执行以下命令签署认证:

1 puppet cert --sign hoame

  PS:hostname为你自己设置的,请写上自己的hostname。

  如果走到这一步你还没出错,恭喜你,你已经成功了90%。不过如果每台都需要一步一步的认证的话,是不是很麻烦,对,简直太麻烦了!那么有没有简单的方法呢?回答是肯定的,全部发送请求后统一认证:

1 puppet cert --sign -all

  可是,还是感觉好麻烦的说,那么有没有不用签署认证的呢?答案依然是必然的。修改配置文件/etc/puppet/autosign.conf,在里面加入hostname即可,若无此文件,可自行创建,在这里,告诉大家一个小窍门:hostname可以起成*.puppet.com,这样的话在自动部署里面直接写成

*.puppet.com,很是方便,一般人我不告诉他。

puppet实战

  既然部署完成了,当然要玩一下,下面就举个小例子来实战一下:

1 [[email protected] ~]# vim /etc/puppet/manifests/site.pp

  里面内容如下:

1 node ‘agent.puppet.com‘ {
2   package {
3   "mysql":
4   ensure=>installed,
5   allow_virtual=>false,
6   source=>"http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm";}
7  

  然后在客户端执行:

1 puppet agent --test

  即可在客户端安装mysql。

  教程至此结束,若想学习更多,请移步https://puppetlabs.com/

  PS:本博客欢迎转发,但请注明博客地址及作者~

  博客地址:http://www.cnblogs.com/voidy/

  <。)#)))≦

时间: 2024-12-23 14:56:15

运维自动化之puppet3分钟入门的相关文章

运维自动化好帮手:ansible软件入门篇

一:关于自动化我们要知道的 1.自动化是什么? IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本.可以说自动化运维一定是IT运维高层面的重要属性之一. 2.为什么要使用自动化技术? 当公司规模扩大,从初期的几台服务器发展到庞大的数据中心时,自然而然的单靠人工就无法满足在技术.业务.管理等方面的要求,那么标准化.自动化.架构优化.过程优化等降低IT服务成本的因素越来越被人们所重视. 3.自动化的目的是什么? 自动化作为其重要属性之一

【有感而发】从中华武术谈运维工程师以及运维自动化

从中华武术谈运维工程师以及运维自动化 任何事物都没有完美一说,但是我们可以死磕自己,追求极致... 无论我们现在是搬砖呢,砌墙呢,还是在逗自己混日子,我们需要关注的是自己的方向在哪里,而不是过于在意自己当前的所站的位置,人生不能受限于自己的意识. 平时和小伙伴们聊人生谈理想的时候,我会经常和别人讲我所认为的专业化运维工程师和运维工作的方向,有认可的也有不认可的,认可的多在努力让自己的工作越来越轻松,自己的价值越来越能得到体现,不认可者多属于一天都很忙,而且认为运维就是帮开发人员打打杂,做大量重复

运维自动化工具Cobbler之——安装实践

运维自动化工具--Cobbler实践 第1章 About Cobbler 1.1 Cobbler Introduction Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用.Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web

puppet运维自动化之用户管理

系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户?那就是我们今天的主题,puppet运维自动化之用户管理. [导读] 系统管理员离不开账户管理,账户管理,密码管理,开发机器,测试机器,线上机器,都需要创建用户,并给与相关用户的权限.你如果要创建100个,1000个账户和密码,你会不会疯掉,如何在1分钟完成百上千个账户?那就是我们今天的主题,pup

linux运维自动化之puppet简单应用(二)

上篇博客介绍了在单机环境下的puppet应用,这次我们基于C/S模式来介绍下puppet! 一.实验环境 服务器角色 IP地址 安装软件 主机名 服务器端 172.16.8.1 puppet-server www.gulong.com 客户机端 172.16.8.2 puppet node1.gulong.com 客户机端 172.16.8.3 puppet node2.gulong.com 三台主机时间同步: #ntpdate 172.16.0.1 三台主机可以相互解析: # vim /etc

运维自动化之salt笔记

1:saltstack的基本介绍 2:salt的安装 1:服务端1:安装2:配置文件3:运行4:注意事项2:客户端1:安装2:配置文件3:运行4:注意事项 3:salt的使用: 1:基础知识1:targeting2:nodegroup3:grains4:pillar2:状态管理1:state1:state语法2:state的逻辑关系2:highstate3:salt schedule3:实时管理1:cmd.run2:module4:其他1:无master2:peer3:runner4:react

[转载]运维自动化201009

运维趋势 第 0 期 运维自动化 [人物]基于开源服务的运维自动化实现 [国际前沿]什么是 DevOps ? [运维漫画阁]正则表达式有什么用? [命令行 & 工具]面向 Linux 系统管理员的开源工具链 [命令行 & 工具]自动化开源工具一览 [实战] Kickstart 无人值守安装搭建 RHCE 实验室 [实战]戏说 Cobbler : Linux 网络安装的革命 1  [人物]运维专家李洋:漫谈基于开源服务的运维自动化实现 随着各种业务对 IT 的依赖性渐重以及云计算技术的普及,

运维自动化之ansible

项目场景: 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试. 技术说明: ansible聚集以上部署和命令执行于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量中型规模,再大的规模用puppet. ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,an

第19章,运维自动化之系统安装

更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 本章内容: 系统安装过程 配置anaconda 自动化安装系统 制作引导光盘和U盘 DHCP服务 PXE安装系统 cobbler企业级应用 运维自动化发展历程及技术应用: 全人工阶段----> 工具化阶段----> 平台化阶段----> 自驱动阶段 无流程规范----> 制定规范----> 完善规