分享好友

×
取消 复制
自动化运维工具——puppet 资源简介
2020-03-04 17:28:06

  我们可以来运行一下:

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来列出,上文中也已经说过了~

分享好友

分享这个小栈给你的朋友们,一起进步吧。

服务器与存储
创建时间:2020-06-17 17:54:39
服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。存储市场将继续经历飞速的变革,这些变革由现正进行的存储资源网络化以及存储虚拟化进程所推动。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 栈栈
    专家
戳我,来吐槽~