---恢复内容开始---
1. 简介
1.1. 官方网站:https://docs.puppet.com/
1.2. puppet是IT基础设施自动化管理工具,他的整个生命周期包括:provisioning,configuration,orchestration,reporting
1.3. puppet是master/agent模型的,但是agent可以独立执行操作,agent是真正执行相应管理操作的核心部件,他会周期地去master请求与自己相关的配置
1.4. puppet的工作模式:
声明性、基于模型:
定义:使用puppet配置语言定义基础配置信息
模拟:模拟测试运行
强制:强制当前与定义的目标状态保持一致
报告:通过puppet api将执行结果发送给接收者
1.5. puppet有三个层次:
配置语言
事务层
资源抽象层
资源类型:例如用户、组、文件、服务、cron任务等等
属性及状态 与其实现方式分离
期望状态
1.6. puppet核心组件:资源
资源清单:manifests
资源清单及清单中的资源定义的所依赖文件、模板等数据按特定结构组织起即为“模板”
2. 安装
2.1. agent: puppet, facter
2.2. master: puppet-server
3. 命令
3.1. puppet:
命令的用法格式:
Usage:puppet <subcommand> [options] <action> [options]
获取所支持的所有的资源类型:
# puppet describe -l
# puppet describe RESOURCE_TYPE
3.2. 定义资源:
type { ‘title’:
attribute1 => value1,
attribute2 => value2,
}
type必须小写:title在同一类型下必须唯一;
常用资源类型:
user, group, file, package, service, exec, cron, notify
group:
管理组资源
常用属性:
name:组名,NameVar
gid:GID
system:true,false
ensure:present,absent
members:组内成员
user:
管理用户
常用属性:
comment:注释信息
ensure:present,absent
expiry:过期期限
gid:基本组id
groups:附加组
home:家目录
shell:默认shell
name: NameVar
system:是否为系统用户,true|false
uid:UID
password:
file:
管理文件、目录、符号链接等;内容可通过content属性直接给出,也可以通过source属性根据远程服务器路径下载生成;
指明文件内容来源
content:直接给出文件内容,支持\n, \t;
source:从指定位置下载位置;
ensure:file,directory,link,present,absent
常用属性
force:强制运行,可用值yes,no,true,false
group:属组
owner:属主
mode:权限,支持八进制格式权限,以及u,g,o的赋权方式
path:目标路径
source:源文件路径,可以是本地文件路径(单机模型),也可以使用puppet:///modules/module_name/file_name