puppetdb的web前端

puppetboard的Python项目详细描述


木偶板

image/p>

image

安装

木偶板现已打包并在PYPI上提供。

生产

木偶模块

spencer krum有一个傀儡模块,负责为您安装傀儡板。

您可以使用以下命令安装它:

< Buff行情>

Puppet模块安装Puppet PuppetBoard

要了解如何使用EL7,请查看这些文档

手册

要安装它,只需发出以下命令:

$ pip install puppetboard

这将安装puppetboard并处理依赖项。如果您这样做,这个puppetboard将安装在python发行版的所谓site packages或dist packages中。

debian和ubuntu系统上的完整路径是/usr/local/lib/pythonx.y/lib/dist packages/puppetboard,fedora上的完整路径是/usr/lib/pythonx.y/site packages/puppetboard

其中x和y被您的主要和次要python版本替换。

您需要此路径才能配置支持httpd和wsgi的应用程序服务器。

不久的将来将为您的操作系统提供本机软件包。

<表>< COLGROUP >< COL/>< COL/>< COL/><广告>操作系统状态< /广告><正文>Debian 6/挤压计划中的需要后台端口Debian 7/喘息 计划中的ubuntu 13.04版 计划中的ubuntu 13.10版 计划中的centos/rhel 5不适用 python 2.4版 centos/rhel 6计划中的opensuse 12/13可用 opensuse构建服务的维护 suse le 11 sp3可用 opensuse构建服务的维护 archlinux可用 由tim meusel维护 openbsd可用 由sebastian reitenbach维护 < ><表>

Docker图像

在0.2.0版本的源代码中添加了一个dockerfiledockerfile。计划为0.2.x系列提供官方图像。

用法:

$ docker build -t puppetboard .
$ docker run -it -p 9080:80 -v /etc/puppetlabs/puppet/ssl:/etc/puppetlabs/puppet/ssl \
  -e PUPPETDB_HOST=<hostname> \
  -e PUPPETDB_PORT=8081 \
  -e PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppetdb/ssl/ca.pem \
  -e PUPPETDB_KEY=/etc/puppetlabs/puppetdb/ssl/private.pem \
  -e PUPPETDB_CERT=/etc/puppetlabs/puppetdb/ssl/public.pem \
  -e INVENTORY_FACTS='Hostname,fqdn, IP Address,ipaddress' \
  -e ENABLE_CATALOG=True \
  -e GRAPH_FACTS='architecture,puppetversion,osfamily' \
  puppetboard

要设置url前缀,可以使用可选的puppetboard url前缀。 环境变量。

开发

如果您想破解puppetboard,您应该分叉/克隆github存储库,然后通过:

$ pip install -r requirements-test.txt

建议您在专门为在puppetboard上工作而创建的virtualenv中执行此操作,以免污染您的全局python安装。

配置

以下说明将帮助您配置木偶板和httpd。

木偶

puppetboard是完全围绕puppetdb构建的,这意味着您的环境需要配置来实现这一点

为了让报表显示在puppetboard中,您需要配置环境以将这些报表存储在puppetdb中。请查看有关此的文档,特别是"启用报表存储"部分。

设置

puppetboard将查找由puppetboard_settings环境变量指向的文件。文件必须与default\u settings.py相同,但应仅覆盖需要更改的设置。

您可以从pip安装puppetboard的路径或通过查看源代码签出来获取default\u settings.py的副本。

如果您在同一台机器上运行puppetdb和puppetboard,则提供的默认设置将足以让您启动,并且您不需要自定义设置文件。

假设您的webserver和puppetdb机器不相同,您至少需要更改以下设置:

  • puppetdb_主机
  • puppetdb_端口

默认情况下,当非本地客户端想要连接时,puppetdb要求使用ssl。因此,您还必须提供以下设置:

  • puppetdb_ssl_verify=/path/to/ca/keyfile.pem
  • puppetdb_key=/path/to/private/keyfile.pem
  • puppetdb_cert=/path/to/public/keyfile.crt

有关如何生成正确密钥的信息,请参阅PypupletDB文档。或者可以显式地指定协议to用于设置puppetdb_proto变量。

其他可能不按特定顺序显示的设置:

  • 密钥:请参阅"烧瓶"文档中的"如何生成好的密钥"部分,以设置值。默认为os.random(24)生成的随机24字符字符串
  • puppetdb_timeout:默认为20秒,但可能需要增加此值。这取决于查询puppetdb时的结果有多大。在将来的版本中,当引入分页时,这种行为将发生变化。
  • 无响应的小时数:自上次签入后节点被视为无响应的小时数。
  • loglevel:表示loglevel的字符串。它默认为'info',但可以更改为'warning''critical'以减少详细日志记录,或'debug'以获取更多信息。
  • 启用查询:默认设置为true使查询选项卡显示在Web界面中,允许用户对puppetdb中的一组端点编写和执行任意查询。将此项更改为false以禁用此项。请参见启用的查询端点以微调允许的端点。
  • enabled_query_endpoints:如果enable_querytrue,则允许微调可查询的puppetdb api的端点。它必须是已启用查询的puppetdb终结点字符串列表。有关可用端点的列表,请参见puppetboard.app模块中的查询端点常量。
  • 图形类型:指定要显示的图形类型。默认是 派,另一个好的选择是甜甜圈。其他选择可以在这里找到: _ c3js_文档`
  • 图表事实:告诉puppetboard在事实页上生成饼图的事实名称列表。由于某些事实值对于每个节点都是唯一的,例如ipaddress、uuid和序列号,以及结构化事实,因此不再能够为所有内容生成图表。
  • inventory_facts:用作列标题和要搜索以创建inventory页的事实名称的元组列表。如果未找到节点的事实,则会打印undef
  • 启用目录:如果设置为true则允许用户查看节点的最新目录。这包括所有托管资源、它们的文件系统位置以及它们之间的关系(如果可用)。默认为false
  • 刷新率:默认为30等待索引页自动刷新的秒数。
  • 默认环境:默认为"生产",顾名思义,加载按此环境值筛选的所有信息。
  • 报告计数:默认值为10要在节点或任何报告页上加载的报告数的限制。
  • 脱机模式:如果设置为true则从本地web服务器而不是cdn加载静态资产(jquery、语义ui等)。默认为false
  • 启用每日报表图表:查看仪表板和节点视图时启用每日图表图表。
  • 每日报表图表天数:在每日报表图表上显示历史记录的天数。
  • 显示的度量:显示节点摘要时要显示的度量。示例:'resources.total''events.noop'
  • 表计数选择器:配置下拉列表以限制每页显示的主机数。
  • 小表计数:查看节点时要显示的默认报告数。
  • 普通表计数lt显示报表和目录节点时要显示的节点数。
  • 本地化时间戳:基于本地服务器时间规范化时间。
  • dev_listen_host:用于dev.py开发。默认值为localhost
  • dev_listen_port:与dev.py一起用于开发。默认值为5000

傀儡企业

puppet enterprise维护一个证书白名单,允许证书从puppetdb访问数据。此白名单在/etc/puppetlabs/puppetdb/certificate whitelist中维护,您必须将证书名称添加到该文件中。

之后,您需要重新启动pe puppetdb,现在您应该可以自由地查询puppetdb了。

开发

您可以在开发模式下运行它,只需执行:

$ python dev.py

使用puppetboard_settings直接更改不同的设置或修补程序default_settings.py。在为puppetboard提交修补程序时,请注意不要将本地更改包含在该文件中。如果未设置环境变量,请将settings.py文件放在将要使用的git存储库的基本目录中。

生产

要在生产中运行puppetboard,我们提供以下场景的说明:

  • apache+mod_wsgi
  • apache+mod_乘客
  • nginx+uwsgi
  • nginx+gunicorn

如果您通过不同的设置来部署puppetboard,我们欢迎向本节添加说明的pull请求。

在Linux发行版上安装

debian jessie安装

阿帕奇+mod_wsgi

首先,我们需要创建必要的目录:

$ mkdir -p /var/www/html/puppetboard

将puppetboard的default_settings.py复制到新创建的puppetboard目录并命名文件settings.py。此文件将在安装puppetboard的路径中可用,例如:/usr/local/lib/pythonx.y/lib/dist packages/puppetboard/default撸settings.py

更改需要更改的设置以匹配您的环境,并用删除或注释其余条目。

如果不需要更改任何设置,则可以完全跳过settings.py文件的创建。

现在用新创建的puppetboard目录中的以下内容创建一个wsgi.py

from __future__ import absolute_import
import os

# Needed if a settings.py file exists
os.environ['PUPPETBOARD_SETTINGS'] = '/var/www/html/puppetboard/settings.py'
from puppetboard.app import app as application

确保Web服务器运行时的用户可以读取此文件。

烧瓶需要静态密钥,请参见烧瓶会话,以保护自己免受CSRF攻击。default\u settings.py中的default secret\u键生成一个随机的24个字符串,但是在httpd>;=2.4的情况下,每个请求都会重新生成该字符串。

要生成自己的密钥,请创建包含以下内容的python脚本并运行一次:

import os
os.urandom(24)
'\xfd{H\xe5<\x95\xf9\xe3\x96.5\xd1\x01O<!\xd5\xa2\xa0\x9fR"\xa1\xa8'

复制输出并将以下内容添加到wsgi.py文件中:

application.secret_key = '<your secret key>'

我们需要做的最后一件事是配置apache。

下面是debian和ubuntu的配置示例:

<VirtualHost *:80>
    ServerName puppetboard.example.tld
    WSGIDaemonProcess puppetboard user=www-data group=www-data threads=5
    WSGIScriptAlias / /var/www/html/puppetboard/wsgi.py
    ErrorLog /var/log/apache2/puppetboard.error.log
    CustomLog /var/log/apache2/puppetboard.access.log combined

    Alias /static /usr/local/lib/pythonX.Y/dist-packages/puppetboard/static
    <Directory /usr/local/lib/pythonX.X/dist-packages/puppetboard/static>
        Satisfy Any
        Allow from all
    </Directory>

    <Directory /usr/local/lib/pythonX.Y/dist-packages/puppetboard>
        WSGIProcessGroup puppetboard
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

以下是Fedora的配置示例:

$ pip install puppetboard
0

注意目录路径,它是pip安装puppetboard的路径;x.y必须替换为python版本。我们还将路径命名为/static路径,这样apache将提供静态文件,如包含的css和javascript。

阿帕奇+摩托乘客

可以通过passenger运行python应用程序。乘客从第三版开始就支持这个,但它被认为是实验性的。自从4号乘客发布以来,这是该产品的"核心"功能。

在性能方面,它也留下了一些东西需要比mod_wsgi供电的解决方案。应用程序启动明显较慢阅读网页只需要一小部分时间。

首先,我们需要创建必要的目录:

$ pip install puppetboard
1

将puppetboard的default_settings.py复制到新创建的puppetboard目录并命名文件settings.py。此文件将在安装puppetboard的路径中可用,例如:/usr/local/lib/pythonx.y/lib/dist packages/puppetboard/default撸settings.py

更改需要更改的设置以匹配您的环境,并用删除或注释其余条目。

如果不需要更改任何设置,则可以完全跳过settings.py文件的创建。

现在用新创建的puppetboard目录中的以下内容创建一个passenger\u wsgi.py

$ pip install puppetboard
2

不幸的是,由于passenger的工作方式,我们还需要在passenger wsgi.py中配置日志记录,否则将不会记录应用程序启动问题。

这意味着,即使可以在设置中设置日志级别。py此设置将优先于它。

现在只剩下配置apache:

$ pip install puppetboard
3

注意/static别名路径,它是pip安装puppetboard的路径。这是必需的,以便apache能够提供静态文件,如包含的css和javascript。

nginx+uwsgi

一个常见的python部署场景是使用uwsgi应用程序服务器(它也可以为rails/rack、php、perl和其他应用程序提供服务)并通过nginx甚至haproxy代理到它。

uwsgi有一个特性,每个实例都可以作为自己的用户运行。在本例中,我们将使用www data用户,但您可以创建一个单独的用户来运行puppetboard并使用它。

首先,我们需要创建必要的目录:

$ pip install puppetboard
4

将puppetboard的default_settings.py复制到新创建的puppetboard目录并命名文件settings.py。此文件将在安装puppetboard的路径中可用,例如:/usr/local/lib/pythonx.y/lib/dist packages/puppetboard/default撸settings.py

更改需要更改的设置以匹配您的环境,并用删除或注释其余条目。

如果不需要更改任何设置,则可以完全跳过settings.py文件的创建。

现在用新创建的puppetboard目录中的以下内容创建一个wsgi.py

$ pip install puppetboard
5

确保此文件归用户所有,并将uwsgi实例作为组运行。

现在我们需要启动uwsgi:

$ pip install puppetboard
6

请随意将端口更改为9090

我们需要做的最后一件事是配置nginx来代理请求:

$ pip install puppetboard
7

如果一切顺利,你现在应该可以进入木偶板。注意/static位置块,使nginx服务于静态文件,如包含的css和javascript。

因为nginx本机支持uwsgi协议,所以我们使用uwsgi pass而不是传统的proxy pass

nginx+gunicorn^^^^^^^^^^^^^^^^^^^^^^^^如果您愿意,可以使用gunicorn而不是uwsgi,过程差别不大。由于我们不能将uwsgi_pass与gunicorn一起使用,nginx配置文件将有一点不同:

$ pip install puppetboard
8

现在,使用gunicorn运行它:

$ pip install puppetboard
9

由于我们可能希望在后台服务,并且我们需要puppetboard_settings作为一个环境变量,建议在supervisor下运行它。具有基本设置的管理器配置示例如下:

$ docker build -t puppetboard .
$ docker run -it -p 9080:80 -v /etc/puppetlabs/puppet/ssl:/etc/puppetlabs/puppet/ssl \
  -e PUPPETDB_HOST=<hostname> \
  -e PUPPETDB_PORT=8081 \
  -e PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppetdb/ssl/ca.pem \
  -e PUPPETDB_KEY=/etc/puppetlabs/puppetdb/ssl/private.pem \
  -e PUPPETDB_CERT=/etc/puppetlabs/puppetdb/ssl/public.pem \
  -e INVENTORY_FACTS='Hostname,fqdn, IP Address,ipaddress' \
  -e ENABLE_CATALOG=True \
  -e GRAPH_FACTS='architecture,puppetversion,osfamily' \
  puppetboard
0

对于具有systemd的较新系统(例如centos7),可以使用以下服务文件(/usr/lib/systemd/system/gunicorn@.service):

$ docker build -t puppetboard .
$ docker run -it -p 9080:80 -v /etc/puppetlabs/puppet/ssl:/etc/puppetlabs/puppet/ssl \
  -e PUPPETDB_HOST=<hostname> \
  -e PUPPETDB_PORT=8081 \
  -e PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppetdb/ssl/ca.pem \
  -e PUPPETDB_KEY=/etc/puppetlabs/puppetdb/ssl/private.pem \
  -e PUPPETDB_CERT=/etc/puppetlabs/puppetdb/ssl/public.pem \
  -e INVENTORY_FACTS='Hostname,fqdn, IP Address,ipaddress' \
  -e ENABLE_CATALOG=True \
  -e GRAPH_FACTS='architecture,puppetversion,osfamily' \
  puppetboard
1

以及相应的Gunicorn Config(/etc/sysconfig/gunicorn/puppetboard.app\:app.conf):

$ docker build -t puppetboard .
$ docker run -it -p 9080:80 -v /etc/puppetlabs/puppet/ssl:/etc/puppetlabs/puppet/ssl \
  -e PUPPETDB_HOST=<hostname> \
  -e PUPPETDB_PORT=8081 \
  -e PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppetdb/ssl/ca.pem \
  -e PUPPETDB_KEY=/etc/puppetlabs/puppetdb/ssl/private.pem \
  -e PUPPETDB_CERT=/etc/puppetlabs/puppetdb/ssl/public.pem \
  -e INVENTORY_FACTS='Hostname,fqdn, IP Address,ipaddress' \
  -e ENABLE_CATALOG=True \
  -e GRAPH_FACTS='architecture,puppetversion,osfamily' \
  puppetboard
2

安全性

如果您想让用户在访问Puppetboard之前进行身份验证,可以使用以下配置片段之一。

阿帕奇

在虚拟主机中:

$ docker build -t puppetboard .
$ docker run -it -p 9080:80 -v /etc/puppetlabs/puppet/ssl:/etc/puppetlabs/puppet/ssl \
  -e PUPPETDB_HOST=<hostname> \
  -e PUPPETDB_PORT=8081 \
  -e PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppetdb/ssl/ca.pem \
  -e PUPPETDB_KEY=/etc/puppetlabs/puppetdb/ssl/private.pem \
  -e PUPPETDB_CERT=/etc/puppetlabs/puppetdb/ssl/public.pem \
  -e INVENTORY_FACTS='Hostname,fqdn, IP Address,ipaddress' \
  -e ENABLE_CATALOG=True \
  -e GRAPH_FACTS='architecture,puppetversion,osfamily' \
  puppetboard
3

nginx

location/{}块中,该块具有uwsgi_pass指令:

$ docker build -t puppetboard .
$ docker run -it -p 9080:80 -v /etc/puppetlabs/puppet/ssl:/etc/puppetlabs/puppet/ssl \
  -e PUPPETDB_HOST=<hostname> \
  -e PUPPETDB_PORT=8081 \
  -e PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppetdb/ssl/ca.pem \
  -e PUPPETDB_KEY=/etc/puppetlabs/puppetdb/ssl/private.pem \
  -e PUPPETDB_CERT=/etc/puppetlabs/puppetdb/ssl/public.pem \
  -e INVENTORY_FACTS='Hostname,fqdn, IP Address,ipaddress' \
  -e ENABLE_CATALOG=True \
  -e GRAPH_FACTS='architecture,puppetversion,osfamily' \
  puppetboard
4

获取帮助

这个项目还是很新的,所以你遇到问题并非不可想象。

对于错误报告,您可以提交一个问题。如果您需要帮助,请随时通过电子邮件或IRC联系维护人员。它们通常可以在ircnet和freenode中找到,并在puppetboard中空闲。

现在还有一个puppetboard频道,我们可以在这里闲逛,回答与pypuppetdb和puppetboard相关的问题。

还有一个谷歌小组交流问题和讨论。请注意,这个小组包含了其他木偶社区项目的讨论。

第三方

有些人已经开始在木偶板周围建造东西了。

Hunter Haugen提供了一个流浪设置:

套餐

  • openbsd端口由sebastian reitenbach维护,可以在这里查看。
  • docker镜像由julien k维护,可以在这里查看。

贡献

我们欢迎对这个项目的贡献。但是,贡献者应该知道一些基本规则。

许可证

这个项目是在apache v2.0许可下授权的。因此,您的稿件一旦被接受,将自动包含在此许可证中。

提交消息

写一些像样的提交消息。不要使用脏话,不要使用非格式化的提交消息作为"固定打字"。

提交消息的首选格式:

$ docker build -t puppetboard .
$ docker run -it -p 9080:80 -v /etc/puppetlabs/puppet/ssl:/etc/puppetlabs/puppet/ssl \
  -e PUPPETDB_HOST=<hostname> \
  -e PUPPETDB_PORT=8081 \
  -e PUPPETDB_SSL_VERIFY=/etc/puppetlabs/puppetdb/ssl/ca.pem \
  -e PUPPETDB_KEY=/etc/puppetlabs/puppetdb/ssl/private.pem \
  -e PUPPETDB_CERT=/etc/puppetlabs/puppetdb/ssl/public.pem \
  -e INVENTORY_FACTS='Hostname,fqdn, IP Address,ipaddress' \
  -e ENABLE_CATALOG=True \
  -e GRAPH_FACTS='architecture,puppetversion,osfamily' \
  puppetboard
5

如果您想获得关于如何编写和格式化提交消息的更详细的指南,请通过tim pope查看本文。

示例

流浪木偶板

使用puppetdb的puppetserver上的puppetboard puppet模块展示puppetboard功能的一个流浪项目。

屏幕截图

概述/索引/主页

节点视图,所有活动节点

单节点页面/概述

报表视图

事实视图

单个事实,带图表

具有此值的所有节点

Metrics View

single metric

查询视图

error page

更改日志

这是木偶板的变更日志。

1.0.0

  • CI增强功能
  • 允许配置允许哪些puppetdb终结点
  • 更新c3至4.22
  • 添加基本健康检查终结点
  • 允许强制puppetdb连接协议
  • 将jquery tablesort更新为0.0.11
  • 修复错误中断日期/时间排序
  • 修复dict列表的formatValue
  • 修改日期排序以处理失败
  • 包括用于更改语义css和google字体的模板文件
  • 使列的最大宽度为320px
  • 如果查询为"无",则不要对其执行添加操作
  • 使用生产者时间戳索引与开始时间进行查询
  • 为构建源包添加缺少的组件
  • 添加对Docker图像URL前缀的支持

0.3.0

  • 核心用户界面返工
  • 更新至pypuppetdb 0.3.3
  • 修复索引数据的排序
  • 更新debian文档
  • 脱机模式修复
  • 修复路径上的事实属性错误
  • 增强测试
  • 散热器CSS使用相同的颜色
  • 配置版本中的标记
  • 更新烧瓶
  • 清除要求.txt
  • 更新openbsd的包维护器

0.2.1

  • 每日图表
  • 修复了散热器视图中缺少的javascript文件。
  • Travisci和工作服集成。
  • 修复了目录视图中的应用程序崩溃。
  • 升级pypuppetdb至0.3.2
  • 增强了对节点和报表的查询(271)
  • 优化库存代码。
  • 如果适用,请使用certname而不是hostname来标识节点。
  • 为事实添加环境筛选器。
  • 将cs.js更新为0.4.11
  • 固定散热器柱定位
  • 与Bandit进行安全检查
  • Dockerfile现在使用Gunicorn和环境变量进行配置。
  • 处理零误差除法。
  • 实现新的jquery数据表。
  • 散热器的json输出。*将javascript移到head tag。
  • 优化报表和节点页查询。
  • 修复puppetdb 3.2的所有环境
  • 现在可以配置事实图表。
  • 烧瓶0.12和Jinja2 2.9的支架
  • 修改错误的noops。

0.2.0

  • 完全支持puppetdb 4.x
  • 将语义用户界面更新为2.1.8
  • 将烧瓶WTF要求更新为0.12
  • 将wtforms更新为2.x
  • 在"查询"选项卡窗体上恢复CSRF保护
  • 将pypuppetdb需求更新为0.3.x
  • 新的配置选项overview_filter允许用户添加自定义puppetdb查询子句以包括/排除索引页上显示的节点
  • 添加类似于Puppet Dashboard中可用的散热器视图
  • 在销售代表中添加下拉列表ORTS选项卡以配置显示的报告数
  • 正在删除不需要的report_latest()终结点。由于在nodes puppetdb endpoint中添加了最新的"报告"哈希字段,因此不推荐使用此端点
  • 增强报告分页
  • 使用pypuppetdb 0.3.x中提供的oop查询生成器
  • 在"查询"选项卡中允许PQL查询
  • 修复metric endpodint调用上的双url引用错误
  • 向查询表单添加布尔字段以预打印来自puppetdb的响应
  • 修复因节点数除以资源计算数而导致空环境触发零分区错误的拐角情况
  • 添加其他登录utils.py

0.1.2

  • 添加配置选项,使用新的配置选项设置默认环境默认环境,默认为"生产环境"。
  • 每次加载页面时加载所有可用环境。
  • 将"所有环境"项添加到"环境"下拉列表中,以删除puppetdb数据上的所有环境筛选器。
  • 更新readme.rst以更新链接并描述新的配置选项。
  • 通过禁用csrf保护修复查询表单提交问题。需要重新实施。

*使用信息将pypuppetdb需求更新为>;=0.2.1
PuppetDB 3.2及更高版本提供

*来自节点终结点的"最新报告"哈希和"最新报告"状态字段,这实际上不赞成使用来自编目终结点的"报告最新"函数*代码ID(当前未使用)*在"概述"页上添加自动刷新以每x秒重新加载页,默认值为30。这可以通过配置选项refresh_rate*在catalog_compare()页面中通过从基本表切换到固定表来进行配置。*在"状态计数"部分使用类似于Puppet Dashboard和Foreman的颜色

0.1.1

  • 修复报表模板未使用正确环境生成报表链接的错误

0.1.0

  • 需要pypuppetdb>;=0.2.0
  • 放弃对puppetdb 2及更早版本的支持
  • 完全支持puppetdb 3.x
  • 第一个目录位置现在是一个puppet环境,它在所有支持的查询上进行筛选。用户可以使用顶部导航栏中的选择字段浏览不同的环境
  • 使用limit、order_by和offset参数在reports页面上添加分页(在navbar中提供)。接受页面属性的页面可以使用功能。
  • 报表页现在直接查询pypuppetdb以将报表id值与报表哈希或配置版本字段匹配。
  • 如果报表和报表最新函数查询不返回生成器对象,则使用404捕获并中止。
  • 添加带有表单的目录页(类似于节点页),以比较一个节点的目录信息与另一个节点的目录信息。
  • 更新查询页的查询终结点。
  • 添加到显示节点/报表状态信息的templates/\u macros.htmlstatus\u计数,如索引页和节点页上可用的内容,也可用于报表页和表。
  • 在报告页中显示报告日志和度量。
  • 删除limit_reports中的utils.py,因为此助手函数已被limit puppetdb分页函数替换。

已知问题

  • 从json值事实呈现的事实值页不返回任何结果。要使用json值的事实(例如,通过事实集、事实路径和/或事实内容端点),需要更复杂的api

0.0.5

  • 现在需要低于2.0的wtforms版本
  • dev.py
  • 中添加烧瓶开发服务器
  • 通过烧瓶添加CSRF保护保护物体。
  • 允许用户在使用"限制报告"配置选项列出报告的页面上配置报告限制。
  • 向用户添加资源清册页面,以便能够查看所有可用节点,并通过资源清册事实配置选项显示配置事实列表。
  • 添加页面以查看节点的目录信息(如果启用,则默认为禁用)。可以使用"启用目录配置"属性进行更改。
  • 新的配置选项"图表事实"允许用户选择哪些图表将在事实页上生成饼图。
  • 将chart.js替换为c3.js和d3.js。
  • 添加语义用户界面0.16.1并删除未使用的引导样式。
  • 添加脱机模式配置选项以加载本地资产或从CDN服务加载。这在没有互联网接入的环境中非常有用。

0.0.4

  • 修复包含事实的不同表的排序。
  • setup.py中修复许可证。许可证的长度不应超过200个字符。我们包括了像bdist_rpm这样的全授权绊倒工具。

0.0.3

这个版本引入了一些大的变化。最明显的一个是修改后的概述页,它收到了重大的爱。大部分工作是由朱利叶斯·赫特尔完成的。"节点"选项卡也进行了轻微的面部提升。

其他更改:

  • 这个版本依赖于新的pypuppetdb 0.1.0。因此,SSL配置选项已更改:
    • puppetdb_ssl已不存在,取而代之的是puppetdb_ssl_verify它现在默认为true。这只影响通过ssl连接puppetdb。
    • 如果同时提供puppetdb_cert和puppetdb_key,则会自动启用ssl。
  • 已修复深度嵌套度量和查询结果的显示。
  • 每个节点的平均资源度量现在显示为自然数。
  • 已将指向该节点的链接添加到报表中。
  • 报告中的一些问题已经解决。
  • 添加了一个名为unresponsive_hours的新设置,该设置指示puppetboard在未签入时将节点显示为未报告的小时数。我们默认为2小时。
  • 现在可以通过单击事件来查看事件消息。

木偶板现在包装整齐,可在PYPI上使用。这将大大有助于减少人们必须遵循的复杂安装说明。

已添加了有关如何从PYPI安装以及如何配置httpd的更新安装说明。

0.0.2

在这个版本中,我们引入了一些新的东西。首先,我们现在需要pypuppetdb 0.0.4或更高版本,其中包括对puppetdb 1.5引入的v3 api的支持。

由于puppetdb 1.5中的更改,因此v2 api的pypuppetdb用户(无论puppetdb版本如何)将无法再查看报告或事件。

因此,以下设置已被删除:

  • puppetdb_实验版

添加了两个新设置:

  • puppetdb_api:一个整数,默认为3,表示我们要使用的api版本。
  • 启用查询:一个布尔值,默认为true,无论是否能够使用"查询"选项卡。

我们还添加了一些新功能:

  • 由于在puppetconf期间与来自puppet labs的nick lewis一起完成了一些工作,我们现在在metrics选项卡中公开了puppetdb的所有度量。格式不是很漂亮,但这是一个开始。
  • Spencer Krum在"事实"选项卡中添加了绘图功能。
  • daniel lawrence添加了一个特性,这样节点视图上的事实就可以点击,并带您完成为您的基础设施查看该事实,并使"完整事实"列表中的节点可单击,以便您可以跳转到某个节点。
  • 克拉夫斯·克拉夫森提供了一些关于如何与乘客一起操作木偶板的文档。

0.0.1

初始版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java在二维数组中获取所有值的组合   java如何在Heroku上运行Flyway迁移?   当Tomcat作为windows服务启动时,其他计算机无法使用java Tomcat应用程序   java SPNEGO获取用户详细信息   java多线程SaxParser解析多个xml文件   如何将十六进制字符串转换为字节。JAVA   java Android:如何在MapBox中添加自定义标记?   java如何从Android广播UDP数据包?   java驱动程序。executeScript()返回简单javascript的NullPointerException   java我们如何在网站上从系统上传文件?   java在JTextArea中剪切和粘贴   java PrimeFacesRequestContext。getCurrentInstance()。为SelectOne菜单重置   java在安卓中动态存储运行时变量   java如何检测“文本内容中发现无效字符”   Java数据结构:错误“无法访问LinkedList”   java合并排序(根据频率排序单词)   java为什么/如何将整数设置为1使while循环工作?   java Maven编译器插件抱怨“未找到SLF4J提供程序”   jakarta ee java锁定文件   java Hibernate会话。update()与update查询?