边用边学Puppet 系列 之 目录结构

183 阅读3分钟

一、puppet 目录结构详解

[root@puppetserver puppet]# tree

.

├── auth.conf  #实现了puppet的ACL功能

├── autosign.conf #实现了客户端自动认证的配置文件

├── environments

│   └── example_env

│   ├── manifests

│   ├── modules

│   └── README.environment

├── fileserver.conf #文件系统配置文件

├── manifests

│   └── site.pp  #节点(既agent)的清单,puppet的主入口文件

├── modules

│   ├── redis

│   │   ├── files

│   │   ├── manifests

│   │   │   └── init.pp ## init.app 是模块的主入口文件,用来定义类资源清单

│   │   └── templates

│   └── test

│   ├── files

│   ├── manifests

│   │   └── init.pp

│   └── templates

├── puppet.conf # 主配置文件

└── rack

├── config.ru

└── public

puppet.conf

Puppet安装完后,配置文件就产生了,名称为puppet.conf,一般在/etc/puppet路径下。

master也可以通过命令:puppet master --genconfig > puppet.conf产生。

agent可以通过命令:puppet agent --genconfig > puppet.conf产生。

puppet配置文件一般包括main、master、agent这几个小节。

一般只需要修改server即可,server一般是master的hostname,同时也要在agent的/etc/hosts中配置。通常在C/S结构下,puppet客户段只执行client,puppet 服务器只运行puppet master,这种模式下可以使用puppet.conf 的默认配置无需修改

autosign.conf

该配置文件需要手工创建,用于自动签名证书功能。通过master上的autosign.conf配置文件。可以实现对某一来源或所有来源的agent做自动授权证书签名。 cat /etc/puppet/autosign.conf  #*代表允许所有,也可以指定IP段等。 image.png

auth.conf

Puppet master 默认使用规则权限配置文件,即使文件不存在该文件下配置的默认规则仍然会生效. Master/server 会根据auth.conf配置文件来限制agent的来源。为了网络安全访问,agent访问Server过程中使用的是HTTPS协议进行通信交互。 image.png

auth.conf配置文件格式包含7个参数,分别是path、environment、method、auth、allow、allow_ip和deny,每个参数都有自己独立的值,通过这7个参数的自由组合,就形成了agent访问master目录权限控制的ACL。

path:指定ACL的路径。Path后接系统路径、正则表达式、路径前缀和资源等信息。

environment : 它可以包含一个环境或多个环境列表,如果不设置则默认为所有环境。

method : 包含find、search、save和destroy(销毁),多参数用逗号隔开

auth:包含yes或no,any和no或off。默认是yes或on,

  • auth设置成yes或on均表示:匹配那些已经通过认证的agent请求。
  • auth设置成any表示:只匹配认证进行中和没有被认证的请求。
  • Auth设置no或off,均表示匹配未认证过的agent请求。认证过的请求会跳过此ACL。

allow : 值可以是hostname或certname. 2.7.1以后的版本还支持正则表达式。

allow_ip:接一个IP或者IP网段,表示允许那些IP范围通过

deny:接一个IP或者多个IP,网段或域名等,表示禁止这些范围访问master的目录权限

image.png

fileserver.conf

Puppet文件服务器的配置文件,用path配置文件路径,allow/deny配置访问权限。它是master/server目录的挂载配置文件,包含了挂载目录的位置和挂载目录的授权信息,只有agent服务器从server获取文件时才会用到它,文件同步不要大于1MB的数据文件,puppet虽然有实现同步静态文件的功能,但其并未使用专业的文件同步数据协议,如果多个agent同时同步比较大的数据,就会引起master超时,最终导致同步失败。

image.png