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 界面相关推荐

  1. Cty的Linux学习笔记(十二)

    Linux学习笔记--第十二篇 命令(command): RPM工具: rpm -ivh ......:安装RPM包 -i:表示安装 -v:表示可视化 -h:表示显示安装进度 在安装RPM包是常用的附 ...

  2. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  3. Windows保护模式学习笔记(十二)—— 控制寄存器

    Windows保护模式学习笔记(十二)-- 控制寄存器 控制寄存器 Cr0寄存器 Cr2寄存器 Cr4寄存器 控制寄存器 描述: 控制寄存器有五个,分别是:Cr0 Cr1 Cr2 Cr3 Cr4 Cr ...

  4. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  5. OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器

    OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此 ...

  6. QT学习笔记(十二):透明窗体设置

    QT学习笔记(十二):透明窗体设置 创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码 #include "widget.h" # ...

  7. MATLAB学习笔记(十二)

    MATLAB学习笔记(十二) 一.数据插值 1.1 数据插值的计算机制 1.2 数据插值的matlab函数 二.曲线拟合 2.1 曲线拟合原理 2.2 曲线拟合的实现方法 三.数据插值与曲线拟合比较 ...

  8. Windows Workflow HOL学习笔记(十二):创建状态基工作流

    W indows Workflow HOL学习笔记(十二):创建状态基工作流 本文内容来自Microsoft Hands-on Labs for Windows Workflow Foundation ...

  9. 模电学习笔记(十二)——跨阻放大器

    模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻. 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15 ...

  10. Spring Cloud学习笔记【十二】Hystrix的使用和了解

    Spring Cloud学习笔记[十二]Hystrix的使用和了解 Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Net ...

最新文章

  1. BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)
  2. FPGA逻辑设计回顾(13)RAM以及ROM的IP核定制以及关键参数
  3. 小甲鱼Python第十九讲课后习题
  4. CAN总线基础知识(二)
  5. 鸿蒙os到底是什么,聊聊鸿蒙OS到底是什么!
  6. 首次!让我们出一个基于延迟的同行 IP 库数据评估来打个样~
  7. 通过cv2.resize()来改变图片大小
  8. 自动禁用并启用所有网络连接源码
  9. Unity-黑暗之魂复刻-动画控制器
  10. 超全生活/娱乐UI模板素材网站整理
  11. 李子柒重回大众视野,拿回商标
  12. 计算机和计算机之间如何传送文件,两台电脑实现互传文件:多种方法可选择
  13. 服务器运行温度30,服务器工作环境温度为度~度之间,最好度。
  14. 本地yum源报 无法打开*.sqlite.bz2
  15. 【开源分享】一套标星 11.2k 的公有云文件系统
  16. reverse(一)——apk逆向
  17. 044_Carousel走马灯
  18. 编译原理之算符优先分析语法程序
  19. mondrian mysql 实例_MONDRIAN支持的常用mysql函数
  20. oracle10g升级教程,异机升级Oracle10R2 到11.2.0.4步骤

热门文章

  1. hexo 环境变量_优雅的博客框架,快速、简洁、高效且主题丰富——Hexo
  2. x86_64-linux-gnu/libgdk-x11-2.0.so: error adding symbols: DSO missing from command line
  3. jsweet-examples下载测试
  4. JAVA中RGB字串转换为颜色
  5. 编译Windows版本ffmpeg:cygwin方式通过
  6. make指定输出目录
  7. 关于引力波的一些疑问
  8. 输入法应提供不同工作下的字词频率模式
  9. WEB前端、后端的说明
  10. 分析目录读取目录内容