AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-310318

Barry's questions

Martin Hope
Barry
Asked: 2016-06-08 16:39:51 +0800 CST

从工头那里检索审计和报告

  • 0

我有一个 Foreman 1.9.0 系统,在 RHEL 7.2 上使用 postgres 作为后端。

提出了能够近乎实时(5-10 分钟标记)将审计日志和报告发送给外部实体的要求。

我一直在网上寻找,但无法确定这是否可能。我可以创建一个脚本,直接从数据库中读取日志并将它们输出到 xml。但从问责制的角度来看,这并不理想。

理想的输出解决方案是 XML,但 syslog 消息格式就足够了。

谢谢

foreman puppet-foreman
  • 2 个回答
  • 711 Views
Martin Hope
Barry
Asked: 2015-09-09 22:19:54 +0800 CST

环境配置的 Puppet HTTP 400 错误

  • 1

我已将我的 puppet (v3.6.2) 服务器 (RHEL 7.1) 重新配置为支持环境,如下所示。

/etc/puppet
           puppet.conf
           auth.conf
           environments
                       Project_A
                                modules
                                manifests/site.pp
                                environment.conf
                       Project_B
                                modules
                                manifests/site.pp
                                environment.conf

environment.conf 文件包括

modulepath=/etc/puppet/environments/$environment/modules
manifest=/etc/puppet/environments/$environment/manifests/site.pp

每个环境的 site.pp 文件包括

include 'nodes.pp'
include 'selinux.pp'
include 'check_mode.pp'
$puppetserver=<SERVER>
Package {
        allow_virtual=>true,
}

当我运行命令时在代理上

puppet agent --no-daemonize --trace --debug --noop --verbose

我得到错误

错误:无法从远程服务器检索目录:服务器上的错误 400:在 <'SERVER'> 上找不到 <'SERVER'> 的类节点

在 /var/log/puppet/masterhttp.log 我得到错误

[2015-09-09 15:43:12] <'IP'> - - [2015/09/09:15:43:12 AEST] "POST /Project_A/catalog/<'SERVER'> HTTP/1.1 400 21

每个代理都具有与 puppet 具有单个环境时相同的配置,并添加了 'environment = 'PROJECT_A'

如果我将 site.pp 中的 node.pp 从 include 更改为 import import 'nodes.pp',则错误更改为

错误:无法从远程服务器检索目录:服务器上的错误 400:在 <'SERVER'> 上找不到 <'SERVER'> 的类 selinux.pp

当为单个环境配置 puppet 时,相同的结构可以正常工作。在单一环境下,一切都是这样配置的:

/etc/puppet
           puppet.conf
           auth.conf
           environments
           modules
           manifests/site.pp

我怀疑我可能需要修改我的 auth.conf 文件,但不知道需要进行哪些更改。目前该文件是默认配置。

我试过添加

path /environments
allow *

没有喜悦

并已添加到 fileserver.conf

path /etc/puppet/environments 
allow *

再次没有喜悦。

作为记录,主 puppet.conf 文件是

[main]
      logdir = /var/log/puppet
      rundir = /var/run/puppet
      ssldir = $vardir/ssl
      always_cache_features = true
      server = <'PUPPET SERVER'>
      environmentpath = $confdir/environments

[master]
      ca = true
      dns_alt_names = <'SAN DNS ENTRIES'>
      certname = <'PUPPET MASTER'>
      ssl_client_header = SSL_CLIENT_S_DN
      ssl_client_verify_header = SSL_CLIENT_VERIFY
      environment = master
[agent]
      classfile = $vardir/classes.txt
      localconfig = $vardir/localconfig
      environment = Project_A

代理使用相同的配置文件,没有 [master]

任何人都可以看到我在配置中哪里出错了。

更新:我已经在调试模式下启动了 puppetmaster,并且尝试从代理连接到服务器。在调试输出中,这让我怀疑它是 auth.conf

Notice: Starting Pppet master version 3.6.2
Debug: Routes Registered
Debug: Route /^\/v2\.0/
Debug: Route /.*/
Debug: Evaluating match for Route /^\/v2\.0/
Debug: Did not match path ("/Project_A/node/<SERVER A>")
Debug: Evaluating match for Route /.*/
Info: access[^/catalog/([^/]+)$]: allowing 'method' find
Info: access[^/catalog/([^/]+)$]: allowing $1 access
Info: access[^/node/([^/]+)$]: allowing 'method' find
Info: access[^/node/([^/]+)$]: allowing $1 access
Info: access[/certificate_revocation_list/ca]: allowing 'method' find
Info: access[/certificate_revocation_list/ca]: allowing * access
Info: access[/^/report/([^/]+)$]: allowing 'method' save
Info: access[/^/report/([^/]+)$]: allowing $1 access
Info: access[/file]: allowing * access
Info: access[/certificate/ca]: adding authentication any
Info: access[/certificate/ca]: adding 'method' find
Info: access[/certificate/ca]: adding * access
Info: access[/certificate/]: adding authentication any
Info: access[/certificate/]: adding 'method' find
Info: access[/certificate/]: adding * access
Info: access[/certificate_request]: adding authentication any
Info: access[/certificate_request]: adding 'method' find
Info: access[/certificate_request]: adding 'method' save
Info: access[/certificate_request]: adding * access
Info: access[/v2.0/environments]: adding 'method' find
Info: access[/v2.0/environments]: adding * access
Info: access[/]: adding authentication any
Info: Inserting dfault '/status' (auth true) ACL
Info: Caching node for <SERVER A>
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: Puppet::Network::Format [msgpack]: feature msgpack is missing
Debug: node supports formats: pson b64_zlib_yaml yaml raw
Debug: Routes Register:
Debug: Routes /^\/v2\.0/
Debug: Route /.*/
Debug: Evaluating match for Route /^\/v2\.0/
Debug: Did not match path ("/Project_A/file_metadatas/plugins")
Debug: Evaluating match for Route /.*/

更新:
我有点得到这个工作。
在重新阅读有关环境的 puppetlabs 文档后,它指出必须有一个称为生产的环境。我就这样创造了

/etc/puppet/environments/production
                              | modules
                              | manifests
                              | environment.conf

这与其他环境的配置相同,尽管目录中当前没有文件。

代理保持不变。

现在,当我运行代理时,它运行时没有错误。唯一的事情是它正在从 puppet 根 /etc/puppet/modules 和 /etc/puppet/manifests 收集信息,如果 /etc/puppet/manifests 中未定义主机,则代理运行时不会执行任何操作/site.pp.

在 puppetmaster 调试输出中,对主机的所有引用都定义为 Project_A 并且有日志条目

注意:环境 Project_A 中 <'SERVER_A'> 的编译目录在 0.00 秒内完成

来自代理

Notice: /Stage/[main]/ntp::Config/File[/etc/ntp.conf]/content: content changed '{md5}<md5sum>' to '{md5}<md5sum>'
Info: /Stage/[main]/ntp::Config/File[/etc/ntp.conf]: Scheduling refresh of Service{ntpd}

所以总结一下。

客户端被识别为属于主服务器上的环境“Project_A”。尽管配置为使用“Project_A”environment.conf 文件中的路径 /etc/puppet/environments/$environment/{modules|manifests/site.pp}。
实际上是在使用 /etc/puppet/{modules|manifests/site.pp}

puppet
  • 2 个回答
  • 1255 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve