puppet
puppet是一个IT基础设施自动化管理工具,帮助系统管理员管理基础设施的整个生命周期:provisioning(供应)、configuration(配置)、orchestration(联动)及reporting(报告);
puppet基于套接字实现,有两种工作模型:单机模型(standalone)和master/agent模型;当然master/agent模型应用最广泛;master/agent模型中需要agent,可以使用虚拟账号(安全性高),agent可以限制登录用户的管理权限,master-agent模型是基于https交换数据(只是一个协议,不用通过网络页面链接);支持多环境配置(默认环境是生产环境);使用ruby语言研发;适用于大型企业;
Ansible靠模块实现,而puppet靠的是资源实现;puppet的模块类似于Ansible的角色roles;定义的模块是为了复用,不是为了管控;定义模块的文件叫资源清单(manifest);为每个站点主机定义具体使用哪个模块的叫站点清单(sitemanifest);
今天边先结合单机模式讲一下puppet的资源;
puppet基本语法格式:puppet <subcommand> [options] <action> [options]
subcommand:
help Display Puppet help.
apply Apply Puppet manifests locally
describe Display help about resource types
agent The puppet agent daemon
master The puppet master daemon
module Creates, installs and searches formodules on the Puppet Forge
在单机模式下,应用资源的是apply,既编译又运行;
puppet apply:Applies a standalone Puppet manifest to the local system.
用法:puppetapply [-d|--debug] [-v|--verbose][-e|--execute] [--noop] <file>
puppet describe 资源类型:Prints help about Puppet resource types, providers, andmetaparameters.
用法:puppetdescribe [-h|--help] [-s|--short] [-p|--providers] [-l|--list] [-m|--meta][type]
-l:列出所有资源类型;
-s:显示指定类型的简要帮助信息;
-m:显示指定类型的元参数,一般与-s一同使用;
资源定义:向资源类型的属性赋值来实现,可称为资源类型实例化; 定义了资源实例的文件即清单,manifest;
定义资源语法:(定义在.pp结尾的资源清单列表文件中)
type { ‘title’:
attribute1 =>value1,
attribute2 =>value2,
……
}
注意:type必须小写,title是一个字符串,在同一类型中必须唯一;
资源属性中的三个特殊属性:
Namwvar:可建成name(name可省略,此时将由title表示);
ensure:资源的目标状态;
Provider:指明资源的管理接口;
八种核心资源:user、group、file、package、service、cron、exec、notify;
1、user资源:Manage users.
属性:
name:用户名(不写时表示与title同名);
uid: UID;
gid:基本组ID;
groups:附加组&