Saltstack工作缓存的Dahsboard

saltdash的Python项目详细描述


Salt Dash logo

testsPyPIPython Versions

盐划

使用^{}返回程序从salt的external job cache读取的只读Web界面。

screenshot

开发

先决条件

  • Yarn用于构建前端。
  • 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不适合生产。生产水平 包含webserver,可以使用saltdash serve启动。如果Docker是 你的速度越快,还有一个Dockerfile

内置web服务器不处理https。默认设置假定 应用程序部署在终止https连接和 正确处理邮件头。如果不是这样,you should read this并采取适当的措施。

配置

配置可以通过环境变量、文件或组合来完成 两者都要感谢^{}。默认情况下 它将在/etc/saltdash/或当前 目录。您还可以使用-C--config指定配置文件。 旗帜。saltdash-generate-config可用于生成示例配置文件 包含以下变量:

  • debug
    启用调试。
    类型:bool
  • 密钥必需
    一个你保密的长随机字符串https://docs.djangoproject.com/en/2.2/ref/settings/#secret-key
    类型:str
  • 数据库URL
    类型:str
    默认值:postgres://localhost:5432/salt
  • 允许的主机
    允许为站点服务的主机https://docs.djangoproject.com/en/2.2/ref/settings/#allowed-hosts
    类型:list
    默认值:['*']
  • 隐藏输出
    要在Web界面中隐藏输出的模块列表。
    类型:list
    默认值:['pillar.*']
  • github_团队id
    类型:str
  • github_客户端id
    类型:str
  • github_client_secret
    类型:str
  • sentry\u 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. 创建a token at GitHub
  2. curl -H "Authorization: token <token>" https://api.github.com/orgs/<org>/teams

设置盐

使用saltdash migrate设置postgresql数据库后,通过向/etc/salt/master.d/job_cache.conf添加以下行,将salt的外部作业缓存连接到数据库:

# Replace items in brackets with actual valuesmaster_job_cache: pgjsonbreturner.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,所有未来的作业都应该存储在数据库中。

如果有lot个作业,则可能需要定期清除缓存。提供了一个helper命令来执行此操作,运行:

saltdash purge_job_cache [days_older_than_to_purge]

如果要自动执行此操作,请使用--no-input标志绕过确认提示。

保护秘密

很容易通过日志和/或 控制台输出。同样的情况也适用于saltdash。因为秘密经常被储存 在加密的支柱数据中,默认情况下,任何pillar.*调用的输出都是 通过HIDE_OUTPUT设置隐藏。如果你知道其他的模块 暴露机密数据,应将其添加到列表中。

然而,还有很多其他方法可以泄露秘密。一些一般的提示 无论你是否使用saltdash都是很好的练习。

  • 对处理敏感数据的任何file.*操作设置show_changes: false
  • 在任何可能输出敏感数据的cmd.*状态上设置hide_output: true
  • 使用文件时,请使用模板或pillar_contents(如果适用)。
  • 避免将机密作为参数传递给模块或状态。通常盐罐 改为从支柱或配置中读取它们。

属性

CCBY许可下使用的BornSymbols图标。

更改日志

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)

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

0.9.1(2018-05-14)

  • 打包修复程序

0.9(2018-05-14)

  • 初始PYPI版本

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

推荐PyPI第三方库


热门话题
NetBeans中的Java Swing滚动窗格   java如何与具有复合键的表建立关系?   Android中读取文件时java数据丢失   java黄瓜场景。embed在ubuntu机器上不工作?   java从spring mvc控制器操作中,我如何获得请求/响应的访问权限?   java减去两个长值   java选择下一个值firebase 安卓   用于起始和结尾连字符的java正则表达式   Java正则表达式解释   java Lifefay freemarker ADT:方法不可用?   java我怎样才能让我的开关盒作用于JFrame?   java在我的场景中使用连接池的理想方式是什么   java我如何接受jsoup的cookies?   java如何将整数数组更改为字符串数组?   java Android操作\u指针\u向上直到剩余触摸移动时才调用   java为什么gradle会出错?   io如何在java中复制/拆分输入流?   java使JButton不可见,但尊重其原始空间   java Spring提交表单获取复选框值不起作用