ITPub博客

首页 > 自动化运维 > > 自动化运维工具——puppet 资源简介

自动化运维工具——puppet 资源简介

作者:zhmw 时间:2020-03-04 17:28:06 0 删除 编辑

  我们可以来运行一下:

enter description here
 
运行写好的group资源

  
3)user:管理系统上的用户。
  查看使用帮助信息:

enter description here
 
user使用帮助
属性:
	name:用户名,可以省略,如果省略,将继承title的值;
	uid: UID;
	gid:基本组ID;
	groups:附加组,不能包含基本组;
	comment:注释; 
	expiry:过期时间 ;
	home:用户的家目录; 
	shell:默认shell类型;
	system:是否为系统用户 ;
	ensure:present/absent;
	password:加密后的密码串; 

  简单举例如下:

vim user1.pp
	user{'keerr':
        ensure => present,
        system => false,
        comment => 'Test User',
        shell => '/bin/tcsh',
        home => '/data/keerr',
        managehome => true,
        groups => 'mygrp',
        uid => 3000,
	}

4)package:puppet的管理软件包。
  查看使用帮助信息:

enter description here
 
package使用帮助
属性:
	ensure:installed, present, latest, absent, any version string (implies present)
	name:包名,可以省略,如果省略,将继承title的值;
	source:程序包来源,仅对不会自动下载相关程序包的provider有用,例如rpm或dpkg;
	provider:指明安装方式;

  简单举例如下:

vim package1.pp
package{'nginx':
ensure => installed,
procider => yum
}
5)service:定义服务的状态
  查看使用帮助信息:

puppet describe service -s -m
enter description here
service使用帮助
属性:
ensure:服务的目标状态,值有true(running)和false(stopped)
enable:是否开机自动启动,值有true和false
name:服务名称,可以省略,如果省略,将继承title的值
path:服务脚本路径,默认为/etc/init.d/下
start:定制启动命令
stop:定制关闭命令
restart:定制重启命令
status:定制状态
  简单举例如下:

vim service1.pp
service{'nginx':
ensure => true,
enable => false
}
6)file:管理文件、目录、软链接
  查看使用帮助信息:

enter description here
file使用帮助
属性:
ensure:目标状态,值有absent,present,file,directory和link
file:类型为普通文件,其内容由content属性生成或复制由source属性指向的文件路径来创建;
link:类型为符号链接文件,必须由target属性指明其链接的目标文件;
directory:类型为目录,可通过source指向的路径复制生成,recurse属性指明是否递归复制;
path:文件路径;
source:源文件;
content:文件内容;
target:符号链接的目标文件;
owner:定义文件的属主;
group:定义文件的属组;
mode:定义文件的权限;
atime/ctime/mtime:时间戳;
  简单举例如下:

vim file1.pp
file{'aaa':
path => '/data/aaa',
source => '/etc/aaa',
owner => 'keerr',
mode => '611',
}
7)exec:执行命令,慎用。通常用来执行外部命令
  查看使用帮助信息:

puppet describe exec -s -m
enter description here
exec使用帮助
属性:
command(namevar):要运行的命令;
cwd:指定运行该命令的目录;
creates:文件路径,仅此路径表示的文件不存在时,command方才执行;
user/group:运行命令的用户身份;
path:指定命令执行的搜索路径;
onlyif:此属性指定一个命令,此命令正常(退出码为0)运行时,当前command才会运行;
unless:此属性指定一个命令,此命令非正常(退出码为非0)运行时,当前command才会运行;
refresh:重新执行当前command的替代命令;
refreshonly:仅接收到订阅的资源的通知时方才运行;
  简单举例如下:

vim exec1.pp
exec{'cmd':
command => 'mkdir /data/testdir',
path => ['/bin','/sbin','/usr/bin','/usr/sbin'],
# path => '/bin:/sbin:/usr/bin:/usr/sbin',
}
8)cron:定义周期性任务
  查看使用帮助信息:

enter description here
cron使用帮助
属性:
command:要执行的任务(命令或脚本);
ensure:目标状态,present/absent;
hour:时;
minute:分;
monthday:日;
month:月;
weekday:周;
user:以哪个用户的身份运行命令(默认为root);
target:添加为哪个用户的任务;
name:cron job的名称;
  简单举例如下:

vim cron1.pp
cron{'timesync':
command => '/usr/sbin/ntpdata 172.16.0.1',
ensure => present,
minute => '*/3',
user => 'root',
}
  我们可以运行一下,查看我们的crontab,来看看该任务是否已经被添加:

[root@master manifests]# puppet apply -v --noop cron1.pp #试运行
[root@master manifests]# puppet apply -v cron1.pp #运行
[root@master manifests]# crontab -l #查看计划任务
# HEADER: This file was autogenerated at 2017-12-14 15:05:05 +0800 by puppet.
# HEADER: While it can still be managed manually, it is definitely not recommended.
# HEADER: Note particularly that the comments starting with 'Puppet Name' should
# HEADER: not be deleted, as doing so could cause duplicate cron jobs.
# Puppet Name: timesync
*/3 * * * * /usr/sbin/ntpdata 172.16.0.1
9)notify:调试输出
  查看使用帮助信息:
enter description here


属性:
message:记录的信息
name:信息名称
 该选项一般用于master/agent模式中,来记录一些操作的时间,比如重新安装了一个程序呀,或者重启了应用等等。会直接输出到代理机的运行日志中。

  以上,就是我们常见的8个资源。其余的资源我们可以使用puppet describe -l来列出,上文中也已经说过了~

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69901620/viewspace-3135669/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-12-04

  • 博文量
    295
  • 访问量
    9529