Saltstack Web用户界面

halite的Python项目详细描述


===
石盐
==


(代号)石盐是一种盐图形用户界面。状态是pre alpha。我们非常欢迎您的贡献。加入我们在freenode上的salt或salt用户邮件列表中。


为了获得最佳效果,建议将盐与盐的开发分支一起使用。
但是,众所周知,盐的版本大于"氢"。
要安装盐的开发分支:

代码块::bash

$git clone-b开发https://github.com/saltstack/salt.git
$cd salt&;python setup.py install
$salt master--version
$salt master-l debug

此版本的halite设计为在
pypi安装了包版本的Halite。pypi(pip)版本的石盐
是专门为此而定制的小型版本。(https://pypi.python.org/pypi/halite)
halite使用"瓶子"(wsgi)web框架。已测试且已知与石盐一起工作的服务器有"粘贴"、"樱桃"和"gevent"。

用于PIP安装石盐。

。代码块::bash

$pip install-u halite

etc
,也用于开发盐包装版本的未来功能。


这类似于执行
``salt\*state.highstate test=true``并检查结果。
默认情况下,轮询处于"关闭"状态。

轮询计时器可以使用
``highstatecheck.intervalseconds``进行调整,并通过
默认设置设置为300秒(5分钟)。更新这些设置后,单击"更新"并重新加载页面。
下面的屏幕截图显示了这些选项。

。image::屏幕截图/highstatepollsettings.png

highstate一致性检查结果可以在minion视图上看到。状态不一致的爪牙旁边有一个标记,如屏幕截图所示。image::screenshots/minionwithflag.png


每个minion的"highstate"子选项卡显示不一致的状态项。所有不一致的项目都将显示在此处,以便于
可视化。下面的屏幕截图显示了在中断高状态一致性时可能出现的消息。image::屏幕截图/highstatesubab.png

按需检查仅适用于轮询关闭的
场景。在打开轮询的情况下(如上所述),COG图标将显示为旋转(对单击不响应)。图片::屏幕截图/highstatecheckcog.png


installation quickstart
===


本节解释了"devlopment"版本岩盐的安装。
如果您有兴趣作为最终用户安装岩盐,请遵循
教程
<;http://docs.saltstack.com/topics/tutorials/halite.html>;``相反。

*将使用halite的用户的设置权限
,例如在主配置中:

代码块::bash

external\u auth:
pam:
myusername:
-.*
-'@runner'
-'@wheel'


halite使用runner``manage.present``来获取小兵的状态,因此需要runner
权限。目前,石盐允许但不需要任何轮模块。

*代码块:bash

git克隆https://github.com/saltstack/halite



*运行halite/halite/server_bottle.py(使用-h选项获取参数)

在每种情况下,都必须安装适当的服务器包。代码块::bash

$./server_bottle.py-d-c-l debug-s cherrypy

$./server_bottle.py-d-c-l debug-s paste


$./server_bottle.py-d-c-l debug-s gevent



*将符合html5的浏览器导航到http://localhost:8080/app


*login
默认的eauth方法是'pam'。若要更改,请转到"首选项"页。


文档
==


preferences
--


navbar有一个登录表单。输入eauth用户名和密码以登录salt。

…图片::屏幕截图/loggedout.png

登录后,导航栏将显示以蓝色突出显示的用户名和注销按钮。
要注销,请单击注销按钮。

图片:截图/loggedin.png






单击saltstack徽标转到首选项页

。图片::屏幕截图/首选项.png

缓存的作业。

完成所有更改后,单击"更新"并刷新浏览器页。


命令
----


若要导航到控制台视图,请单击"控制台"选项卡。

图片::截图/homeconsole.png

此视图有两个部分。"command"部分和"monitor"部分。
"command"部分默认折叠。单击向下的V形将展开"命令"部分。


有带有扩音器图标的ping按钮,操作菜单有一些预选的常用命令。

image::screenshots/command form.png

要输入"runner"函数,请在函数名前加上
"runner."。例如,"runner.manage.status"。要输入wheel
函数,请在wheel函数名前面加上"wheel."。例如,"wheel.config.values"。
对于需要参数的命令,请在"参数"字段中输入它们。参数
字段数等于函数接受的参数数。

是一个带有扩音器图标的ping按钮,宏菜单有一些预选的命令
用于"快速拨号"。

与在"function"字段中输入的
命令相关。取消选中此选项可节省屏幕空间。

monitors
--


console视图的底部有monitor view按钮。每个按钮都将显示带有相关信息的面板。


*命令监视器


显示面板,每个命令由该用户在此控制台上执行。
单击下拉按钮将显示用此命令运行的相关作业ID,并且通过图标显示完成状态。
红色表示失败,绿色表示成功。
单击按钮面板将重新运行命令。

…图片::screenshots/commandmonitor.png

*job monitor


显示面板,每个作业有一个面板由与此
主控相关联的任何minion运行。单击相关的下拉按钮并展开以显示结果和事件数据。
选择结果按钮将显示任务所针对的每个仆从的返回者和返回数据。图片::屏幕截图/jobmonitor.png


选择事件按钮将显示与该作业相关的事件。

…图片::屏幕截图/jobmonitorevent.png

*minion monitor

小喽啰
面板有图标显示小喽啰的上/下状态和颗粒状态。
选择下拉按钮将显示颗粒数据以及小喽啰(非作业)生成的事件。

图片::屏幕截图/minionmonitor.png






图片::屏幕截图/miniongrains.png






*事件监视器


显示面板,每个事件一个与此主控形状相关。

……图片::截图/eventmonitor.png

更多详细信息即将到来。TBD



浏览器要求
---------


需要支持ES5和HTML5。这意味着任何现代浏览器或IE10+。

使用
----


客户端Web应用程序要求:

*AngularJS框架(http://angularJS.org/)
*引导布局CSS(http://twbs.github.io/bootstrap/)
*AngularUI框架(http://angular ui.github.io/)
*下划线JS模块(http://underlinejs.org/)
*下划线字符串js模块(http://epeli.github.io/underline.string/)
*FONT AWESOME引导图标字体(http://fortawesome.github.io/FONT AWESOME/)
*Coffeescript Python/Ruby-like JavaScript Transpiler(http://coffeescript.org/)
*Karma测试Runner(http://karma runner.github.io/0.8/index.html)
*Jasmine单元测试框架(http://pivotal.github.io/jasmine/)
*角度应用程序的量角器E2E测试框架(https://github.com/angular/dragor)

可选依赖项:

*Cherrypy Web服务器(http://www.cherrypy.org/)
*粘贴web服务器(http://pythonpaste.org/)
*gevent web服务器(http://www.gevent.org/)


对于nodejs测试:


*express javascript web服务器



部署
----


石盐。

1)从盐中使用。
如果安装了石盐包,则0.17释放的盐将自动运行石盐。例如,在安装saltstack之后,可以使用

安装halite
python包。代码块::bash

$pip install-u halite


代码块::bash

halite:
级别:'debug'
服务器:'cherrypy'
主机:'0.0.0'
端口:'8080'
cors:false
tls:true
证书路径:'/etc/pki/tls/certs/localhost.crt'
密钥路径:'/etc/pki/tls/certs/localhost.key'
pempath:'/etc/pki/tls/certs/localhost.pem'

"cherrypy"和"gevent"服务器需要certpath和keypath文件才能运行tls/ssl。
.crt文件保存公共证书,.key文件保存私钥。而"粘贴"服务器需要一个同时包含证书和密钥的.pem文件。
这可以通过连接.crt和.key文件来创建。

如果要使用自签名证书,可以使用salt.tls模块创建一个证书。代码块::bash

salt'*'tls.create_ca_signed_cert test localhost

使用自签名证书时,浏览器在接受证书之前需要获得批准。
如果Web应用程序页已用非https版本的应用程序缓存,则必须清除浏览器缓存,然后浏览器缓存才能识别并提示
接受自签名证书。

配置要由wui用户使用的eauth方法。
请参阅上面的快速启动以获取示例。

安装在上面的主配置中选择的相应http wsgi服务器。在
这个例子中是"樱桃味"。其他被测试的服务器是"paste"和"gevent"。服务器必须是多线程、异步的,或多处理,以支持wui使用的
服务器发送的事件流连接。


重新启动saltstack主服务器,并将符合html5的浏览器导航到
https://localhost:8080/app,或者您已经在上面配置了主服务器。

在Saltstack主日志输出中查找"halite:"。

可以从命令行运行默认的bottle.py framwork。代码块::bash

$./server_bottly.py-g
$./server_bottle.py-s cherrypy


代码块:python

import halite


halite.start()




提供了全套选项。代码块::bash

$./server_bottle.py-h
用法:server_bottle.py[-h][-l{info,debug,critical,warning,error}]
[-s服务器][-a主机][-p端口][-b基][-x[-t]
[-c证书][-k密钥][-e pem[-g][-f加载][-c[-d]

在给定的主机地址和端口上运行本地主机Web应用程序wsgi服务。
默认主机:端口为0.0.0.0:8080。(0.0.0.0是本地主机上的任何接口)

--服务器服务器
web应用程序wsgi服务器类型。
-主机,--主机web应用程序wsgi服务器ip主机地址。
-p端口,--端口web应用程序wsgi服务器ip端口。
-b基本,--客户端Web应用程序的基本基本URL路径前缀。
-x,--cors在服务器上启用cors跨源资源共享。
-t,--tls使用tls/ssl(https)。
-c证书,--cert证书文件到tls/ssl证书文件的路径。
-k密钥,--keyTLS/SSL私钥文件的密钥文件路径。
-e pem,--pem pem file同时具有证书和密钥的TLS/SSL pem文件路径。
-g,--gen生成Web应用加载文件。默认值为"app/main.html"
,或者如果提供了-f选项指定的文件。
-f load,--load load加载文件路径以在-g
选项上保存生成的Web应用加载文件。
-c,--生成coffee on-g选项以加载coffeescript。
-d,--开发模式。

http服务器提供两个功能。


1)为web应用程序的基本负载提供内容传递网络静态
内容,如html和javascript文件。

2)为salt/client/api.py提供动态restapi接口通过ajax和sse连接由web应用程序使用的模块。因为SSE和CORS
(即使在兼容HTML5的
浏览器中,跨源资源共享也不是唯一受支持的,单个服务器同时提供静态内容和rest api)。
另一种方法是使用Web套接字来流式处理事件。
这将不会不需要穿紧身衣。这可能是未来的石盐选择。

要与apache一起部署,修改server_bottle.startserver,使其创建应用程序,但
不调用bottle。在其上运行,但将其返回到mod_wsgi。
有关在apache和mod_wsgi中使用bottle.py
的其他详细信息,请参见(http://bottlepy.org/docs/dev/deployment.html)。
Django等框架将涉及从服务器端复制端点。


图片::diagrams/halitearchitecture.png

代码块:bash

$cd halite
$karma start karma_unit.conf.js

有关使用量角器的更多信息,请访问他们的网站。

代码块::bash
$vim halite/test/spec-e2e/credentials.coffee

代码块::coffeescript

login=
username:"您的岩盐用户名"
password:"您的岩盐密码"

`量角器<;https://github.com/angular/diagrator>;`
网页。

…代码块::bash

$dragotor-dragotor.conf.js

称为"halite/test/functional/config/override.conf"。代码块::python

[登录名]
用户名=您的用户名
密码=您的用户密码

[minions]
apache=minion连接到这个主机


可以通过"nose"运行功能测试。

代码块:bash

$cd halite
$nosetests


代码块::bash

$cd halite
$./prep_dist.py




可以通过运行"git subtree pull--prefix=halite/lattice lattice master--squash"来获取子树。……_`石盐`:https://github.com/saltstack/halite

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

推荐PyPI第三方库


热门话题
java流/下载文件,无需在Spring Boot中保留内存   kotlin/java是否有类似TryParse()的东西?   java Spring引导找不到用户类型的属性ID   java Spring 2到Spring 3的迁移:一个控制器用于多个视图   java包含多个程序包名为“安卓”的库。支持图样可提取'   java spring JPA是否支持自定义值框架?   java转义出基于文本字段的搜索栏   java AAPT:错误:未找到样式属性“安卓:attr/WindowsPlashCreenBackground”   java从文本文件中读取纬度和经度   java哪里可以找到如何使用排序的示例。顺序ignorecase(),其中nullhandling nulls last用于自定义Spring JPA如何提供查询   尝试使用Dialogflow上的Webhook动态给出响应时,java获取Webhook响应错误(206)   如何在java中替换匹配的字符串?   java模拟数学的最大价值。随机的   java Spring RestTemplate GET请求未给出正确响应   春爪哇。lang.IllegalArgumentException   java系统。load()永远不会发生   java剪辑循环不工作   java如何从maven构建中删除staxapi   java ThreadPoolExecutor的排队行为是否可以自定义,以更喜欢创建新线程而不是排队?