SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面
SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章 http://rfyiamcool.blog.51cto.com/1030776/1275443/
我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍
首先介绍php 跟python通信的工具
ppython (下载) 这里有总有三个文件: php_python.py , process.py , php_python.php
php_python.py : 是 ppython的主程序,启动会开启一个进程等待端口通信
process.py : 是ppython的处理程序,将php传递过来的命令处理执行后返回结果
php_python.php : 提供给php的调用接口,通过该文件传递命令给python进行处理,并接受处理后的返回结果
简单的测试ppython
1 一个简单的测试python
#!/usr/bin/python #coding=utf-8import commands ;def ls_home() :s,r=commands.getstatusoutput("ls ~/");return("%s" %(r));
备注: 把上面的代码写入test.py跟php_python.py 放置在同个目录
2 一个简单的PHP调用python函数文件,test.php
<?php
import php_python.php;
echo ppython("test::ls_home");
?>
3 启动ppython并进行测试
# 启动ppython
python php_python.py
#测试刚刚的小程序
php test.php
备注:正常情况下,可以显示用户目录文件,如果五信息,或是报错,考虑是不是端口问题,php跟python通过5100端口进行通信,需要开启本地的5100端口防火墙便可以。
更复杂的测试,引入SaltStack
1 修改上面的test.py
#!/usr/bin/python #coding=utf-8#coding = utf-8import os import salt.key import salt.clientconf='/etc/salt/master' opts = salt.config.master_config(conf)## # 使用反注入方式执行 ## def key(par):global opts;return eval(par);def client(par):return eval(par);
2 修改上面的test.php文件
<?php
import php_python.php;
## 显示等待认证的key
echo ppython("test::key","salt.key.Key(opts).list_keys()");
?>
3 重启php_python.py: ctrl+c 停止后重新执行python php_python.py启动.
4 测试的命令跟上面一样,执行 : php test.php
备注:这里已经实现了salt跟php的串联,php中使用的命令格式跟python的api格式一模一样,命令实现文件test.py使用反注入的方式来调用命令,并将结果返回给php文件进行显示.
再多说一句
既然能进行php的编程调用,并且命令的格式跟salt的api格式一模一样,便可以简单进行php的web编程显示,下面给几张我用PHP+Extjs+ppyton+saltstack开发的管理后台
转载于:https://blog.51cto.com/arlen/1434135
SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面相关推荐
- Cty的Linux学习笔记(十二)
Linux学习笔记--第十二篇 命令(command): RPM工具: rpm -ivh ......:安装RPM包 -i:表示安装 -v:表示可视化 -h:表示显示安装进度 在安装RPM包是常用的附 ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- Windows保护模式学习笔记(十二)—— 控制寄存器
Windows保护模式学习笔记(十二)-- 控制寄存器 控制寄存器 Cr0寄存器 Cr2寄存器 Cr4寄存器 控制寄存器 描述: 控制寄存器有五个,分别是:Cr0 Cr1 Cr2 Cr3 Cr4 Cr ...
- 汇编入门学习笔记 (十二)—— int指令、port
疯狂的暑假学习之 汇编入门学习笔记 (十二)-- int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...
- OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器
OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此 ...
- QT学习笔记(十二):透明窗体设置
QT学习笔记(十二):透明窗体设置 创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码 #include "widget.h" # ...
- MATLAB学习笔记(十二)
MATLAB学习笔记(十二) 一.数据插值 1.1 数据插值的计算机制 1.2 数据插值的matlab函数 二.曲线拟合 2.1 曲线拟合原理 2.2 曲线拟合的实现方法 三.数据插值与曲线拟合比较 ...
- Windows Workflow HOL学习笔记(十二):创建状态基工作流
W indows Workflow HOL学习笔记(十二):创建状态基工作流 本文内容来自Microsoft Hands-on Labs for Windows Workflow Foundation ...
- 模电学习笔记(十二)——跨阻放大器
模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻. 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15 ...
- Spring Cloud学习笔记【十二】Hystrix的使用和了解
Spring Cloud学习笔记[十二]Hystrix的使用和了解 Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Net ...
最新文章
- BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)
- FPGA逻辑设计回顾(13)RAM以及ROM的IP核定制以及关键参数
- 小甲鱼Python第十九讲课后习题
- CAN总线基础知识(二)
- 鸿蒙os到底是什么,聊聊鸿蒙OS到底是什么!
- 首次!让我们出一个基于延迟的同行 IP 库数据评估来打个样~
- 通过cv2.resize()来改变图片大小
- 自动禁用并启用所有网络连接源码
- Unity-黑暗之魂复刻-动画控制器
- 超全生活/娱乐UI模板素材网站整理
- 李子柒重回大众视野,拿回商标
- 计算机和计算机之间如何传送文件,两台电脑实现互传文件:多种方法可选择
- 服务器运行温度30,服务器工作环境温度为度~度之间,最好度。
- 本地yum源报 无法打开*.sqlite.bz2
- 【开源分享】一套标星 11.2k 的公有云文件系统
- reverse(一)——apk逆向
- 044_Carousel走马灯
- 编译原理之算符优先分析语法程序
- mondrian mysql 实例_MONDRIAN支持的常用mysql函数
- oracle10g升级教程,异机升级Oracle10R2 到11.2.0.4步骤