Puppet--自动化运维工具基本功能介绍

puppet与ansible都是运维自动化工具,二者最大的区别在于,puppet重量级适用于较大规模运维场景,而ansible较轻量级在较大规模站点的功能显得不那么强。

puppet使用ruby语言研发,所以在使用中还要掌握一些ruby的语法;

本处使用epel仓库安装puppet,版本是3.6.2

yum -y install  puppet

puppet获取帮助信息

puppet help

puppet有两种工作模型

standalone模型  
master/agent模型

puppet的资源类型

puppet describe -l   #显示所有的puppet资源类型
puppet describe -ms group   #显示指定资源的简要信息,-s显示简要信息,-m显示元信息

定义资源的语法

resource {'title':
    attribute  => value
    ……
}
#resource必须使用小写,title在同一资源中必须唯一

puppet的八种常用资源类型:

1、group资源

创建组

cat group.pp
group{'mygrp':                #资源名称是group,title是mydb,以冒号标识
        ensure => present,    #ensure表示创建或删除组,此处present表示创建组,absent表示删除组
        name => mygrp,        #组名称,如果未定义则使用title指定的字符串,即此字段可以省略
        system => yes,        #此组是系统组
        gid => 1991,          #定义组id
}
#上述我们创建一个创建组的资源清单,每字段尾都要以逗号隔开,最后一行的逗号则可以写也可以不写

puppet apply -v --noop group.pp
#-v显示详细信息,--noop表示干跑,即模拟测试此资源清单,实际操作可以去掉--noop参数
#如果此组已经存在,多执行几次命令结果都是不变的,因为此资源是幂等的

2、user资源

创建用户

cat user.pp 
user{'user1':
        ensure => present,
        uid => 3000,           #指定用户id
        groups => puppet,      #用户所属辅助组
        home => '/app',        #指定用户家目录
        shell => '/bin/csh',   #在使用路径标识时一定要记得加引号,否则报错
}
#创建用户资源清单
#如果用户属于多个辅助组,可以使用groups => ['puppet','mygrp'],数组的表示方式
puppet apply -v  user.pp 
#应用此清单,即可创建资源
资源依赖/资源引用
user{'user1':
        ensure => present,
        uid => 3000,
        home => '/app',
        shell => '/bin/csh',
        groups => ['testgrp','mygrp'],
        require => [Group['testgrp'],Group['mygrp']],   #require引用资源,资源的首字母必须大写
}
group{'testgrp':
        ensure => present,
}
group{'mygrp':
        ensure => present,
}
#资源依赖,即要创建user1用户,必须存在testgrp和mygrp组,而且这两个组必须被引用
#除了require外,资源依赖还有一种表示方式:before,即某个资源被别的资源依赖,如下在testgrp组资源下定义
before => User['user1'],   #此组被user1用户资源所依赖,即此组要先存在才能创建user1

#总结,依赖关系用两种方式定义,一是被前资源依赖,一是被后资源依赖

3、package资源

安装软件包

cat package.pp  
package{'nginx':
        ensure => latest,
}
#就这些字段就可以将nginx安装了

4、service资源

启动服务

cat service.pp  
service{'nginx':
        ensure => running,   #是否开启服务
        enable => true,      #开机自启动
        hasrestart => true,  #是否有重启命令
        restart => "service nginx restart",    #设置重启命令
        require => Package['nginx'],           #开启服务依赖于package资源,只有先安装软件包才能启动服务
}
package{'nginx':
        ensure => latest,
}
时间: 2024-07-31 09:25:04

Puppet--自动化运维工具基本功能介绍的相关文章

自动化运维工具Ansible-基础介绍(一)

自动化运维工具Ansible-基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1).连接插件connection plugins:负责和被监控端实现通信:(2).host

52.puppet自动化运维工具

puppet自动化运维工具 Puppet是一款运维自动化工具,在一些大型的互联网企业,它可以针对多台服务器进行统一操作,如统一部署软件,进行统一上线维护等,意思就是说在一台linux服务器上所部署的操作,会通过puppet同步到其他linux服务器的一款强大工具. Puppet使用的端口是8139 搭建puppetmaster: v 规划服务器主机名 # vim /etc/sysconfig/network 修改内容: NETWORKING=yes HOSTNAME=master.test.cn

自动化运维工具ansible详细介绍以模块的使用

1.anisble 简介anisble 是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible只是提供一种框架.主要包括:(1)连接插件:负责和被监控端实现通信:(2)host inventory :指定操作的主机,是一个配置文件里面定义监控的主机(3)各种模块核心模块,command 模块,自定义模块.(4)借助于插件完成记录日志邮件等功能:(5)playboo

自动化运维工具ansible详细介绍

在学习批量管理软件时,首先要明确的知道自己需要什么,网上大神很多,他们都研究到源码上了,写了很多介绍绚丽功能的文档,但其实那些功能基本上我们都用不到,经常被各种文档弄得头脑发晕,此文就是为了简单直白的告诉大家ansible的功能,满足大家的基本需求. 首先确认批量管理我们需要什么:无外乎主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 目录 1.      ansible与saltstack对比... 2.      ansible安装... 3.      ans

自动化运维工具ansible简单介绍

一.Ansible介绍Ansible 简单的说是一个配置管理系统(configuration management system).你只需要可以使用 ssh 访问你的服务器或设备就行.它也不同于其他工具,因为它使用推送的方式,而不是像 puppet 等 那样使用拉取安装agent的方式.ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作.? 模块化:调用特定的模块,完成特定任务? 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块? 支持自定义模块?

自动化运维工具Saltstack详细介绍

Saltstack是一个新的基础设施管理工具.目前处于快速发展阶段,可以看做是pssh+弱化的Puppet的组合.间接的反映出了saltstack的两大功能:远程执行和配置管理. Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具.由Master和Minion构成,通过ZeroMQ进行通信. Saltstack的master端监听4505与4506端口,4505为salt的消息发布系统,4506为salt客户端与服务端通信的端口:salt客户端程序不监听端口,客户端启动

自动化运维工具介绍

运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人工参与.接下来简单介绍运维自动化工具,要了解运维平时用到的自动化工具,就需要了解运维人员的日常工作有哪些. 一.运维的日常工作 运维的日常工作可以总结为以下四个部分,分别是: (1) 系统安装 (2) 应用程序配置(Configuration) (3) 命令执行与控制(Command a

Puppet Saltstatck Ansible 自动化运维工具对比

最近尝试安装了一下salt statck就对自动化工具感兴趣了点所以找了一些资料入门下面总结一下希望和看到这篇文章一起探索自动化运维的世界.                              --- 小 Q ------------------------------------------------------------------------------------------------------ 自动化运维就是为减少重复又枯燥的工作而建立起来的流程更能减少失误及时报警并恢复

轻量级自动化运维工具ansible之一:介绍及初步使用

一.常见的自动化运维工具: OS Provisioning:PXE, Cobbler OS Config:puppet, saltstack, chef, func Task Exec:fabric, saltstack, func Program Deployment:fabric 管理主机控制被管理节点的方式: agent:被管理节点上需要安装代理程序以接受管理主机的操作:如puppet, func agentless:被管理节点不需安装代理程序,管理主机借助ssh传递操作指令,如ansib