跳转到主要内容

SaltStack作业缓存的仪表盘

项目描述

Salt Dash logo

tests PyPI Python Versions

Salt Dash

使用pgjsonb返回器从Salt的外部作业缓存读取的只读Web界面。

screenshot

开发

先决条件

  • 用于构建前端所需的Node.js。
  • 用于后端的Pipenv
  • Postgresql数据库

安装

git clone git@github.com:lincolnloop/saltdash.git
cd saltdash
make all              # download dependencies and build the world
$EDITOR saltdash.yml  # change settings as needed
pipenv shell          # activate the Python virtual environment
saltdash migrate      # setup the database
saltdash runserver    # run a development server

客户端

使用parcel。要启动具有实时重新加载的开发环境,请运行

cd client
yarn run watch

生产环境运行

pip install saltdash

saltdash runserver不适用于生产。包含了一个适用于生产级别的Web服务器,可以用saltdash serve启动。如果您更倾向于使用Docker,还有一个Dockerfile

⚠️ 内置的Web服务器不支持HTTPS。默认设置假定应用部署在代理之后,该代理终止HTTPS连接并正确处理头部信息。如果不是这种情况,请阅读此内容并采取相应的措施。

配置

配置可以通过环境变量、文件或两者的组合来完成,这是由于Goodconf。默认情况下,它将在/etc/saltdash/或当前目录中查找名为saltdash.yml的YAML文件。您也可以使用-C--config标志指定配置文件。saltdash-generate-config可用于生成包含以下变量的示例配置文件

  • DEBUG
    启用调试。
    类型: bool
  • SECRET_KEY 必需
    一个您保密的长随机字符串https://docs.django.ac.cn/en/2.2/ref/settings/#secret-key
    类型: str
  • DATABASE_URL
    类型: str
    默认值: postgres://localhost:5432/salt
  • ALLOWED_HOSTS
    允许提供网站的主机https://docs.django.ac.cn/en/2.2/ref/settings/#allowed-hosts
    类型: list
    默认值: ['*']
  • HIDE_OUTPUT
    在Web界面中隐藏输出的模块列表。
    类型: list
    默认值: ['pillar.*']
  • GITHUB_TEAM_ID
    类型: str
  • GITHUB_CLIENT_ID
    类型: str
  • GITHUB_CLIENT_SECRET
    类型: str
  • SENTRY_DSN
    类型: str
  • LISTEN
    Web服务器监听的套接字。
    类型: str
    默认值: 127.0.0.1:8077

通过设置相关的GITHUB_*变量,包括GitHub团队身份验证。

您需要在https://github.com/organizations/<org>/settings/applications设置OAuth应用,并将回调URL设置为以下形式:https://your-site.example.com/auth/complete/github-team/

检索您的团队ID

  1. 在GitHub上创建令牌
  2. curl -H "Authorization: token <token>" https://api.github.com/orgs/<org>/teams

设置Salt

一旦您使用saltdash migrate设置了一个Postgresql数据库,请通过将以下行添加到/etc/salt/master.d/job_cache.conf来将Salt的外部作业缓存连接到数据库。

# Replace items in brackets with actual values
master_job_cache: pgjsonb
returner.pgjsonb.host: [db-host]
returner.pgjsonb.pass: [db-password]
returner.pgjsonb.db: [db-database-name]
returner.pgjsonb.port: [db-port]
returner.pgjsonb.user: [db-user]

重新启动您的salt-master,所有未来的作业都应该存储在数据库中。

如果您有很多作业,您可能需要定期清除缓存。提供了一个辅助命令来完成这项任务,运行

saltdash purge_job_cache [days_older_than_to_purge]

如果您想自动化此操作,请使用--no-input标志来跳过确认提示。

保护机密信息

通过日志和/或控制台输出意外泄露Salt中的机密信息很容易。同样适用于Saltdash。由于机密信息通常存储在加密的pillar数据中,因此默认情况下,通过HIDE_OUTPUT设置隐藏了任何pillar.*调用的输出。如果您知道还有其他模块会泄露机密数据,应将它们添加到列表中。

机密信息泄露的途径还有很多。以下是一些一般性提示(无论您是否使用Saltdash都适用)。

  • 在涉及敏感数据的任何file.*操作上设置show_changes: false
  • 在可能输出敏感数据的任何cmd.*状态上设置hide_output: true
  • 在处理文件时,在适当的时候使用模板或pillar_contents
  • 避免将机密信息作为模块或状态的参数传递。通常Salt可以从pillar或配置中读取它们。

致谢

图标由BornSymbols提供,根据CCBY许可使用。

变更日志

0.9.9 (2020-05-06)

  • 修复Django升级后的健康检查问题

0.9.8 (2020-05-05)

  • 修复PyPI打包问题

0.9.7 (2020-05-05)

  • 升级依赖项
  • 用npm替换yarn
  • 修复与最新Salt版本的结果格式问题

0.9.6 (2019-04-17)

  • 依赖项更新

0.9.5 (2018-05-24)

  • 添加 HIDE_OUTPUT 配置以防止在Web界面中显示机密信息

0.9.4 (2018-05-15)

  • 修复了与systemd套接字激活的操作

0.9.3 (2018-05-15)

  • 添加了适当的SSL处理

0.9.2 (2018-05-15)

  • 修复了健康检查中间件以避免检查 ALLOWED_HOSTS
  • 更新依赖项
  • 更新文档

0.9.1 (2018-05-14)

  • 修复了打包问题

0.9 (2018-05-14)

  • 首次在PyPI上发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪一个,请了解更多关于安装包的信息。

源分布

saltdash-0.9.9.tar.gz (3.1 MB 查看哈希值)

上传时间

构建分布

saltdash-0.9.9-py2.py3-none-any.whl (3.8 MB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持