SaltStack作业缓存的仪表盘
项目描述
Salt Dash
使用pgjsonb
返回器从Salt的外部作业缓存读取的只读Web界面。
开发
先决条件
- 用于构建前端所需的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
- 在GitHub上创建令牌
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 487d8572934eb4f3fbc323ba6c4715a21d63e0fb7bd3d44bb027b457a8cfa881 |
|
MD5 | 71cdaf3ddcaec5b990db8ed5df47269a |
|
BLAKE2b-256 | ac8e00311e86d6fb20f307b20804b1a7295b4e41d5dc7eb9ab040a747909eab4 |
saltdash-0.9.9-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 241ddf220c366d58072d0f087772428209d22b72216e8fcc6fcadba24b464ed3 |
|
MD5 | 2f967da8e47da07b568e7d2e0fd830bd |
|
BLAKE2b-256 | 58224fa4af38d3cc0fcf7bc9c81bcbc66f647b5ce6d0e116e7d68c76392cb985 |