控制脚本运行的Web UI——script-server

说明

日常工作中,有时会需要运行脚本。每次都登录主机运行相对费时费力,且对权限的管控也比较复杂。script-server是一个开源项目,可以通过Web UI实现脚本的管控。

实验环境

  1. 操作系统:centos 7.9
  2. python版本:3.6.8(yum安装)
  3. script-server版本:1.18.0

安装

  1. 在适当目录下,创建python的虚拟环境,并激活:
python3 -m venv testenv
source testenv/bin/activate
  1. 从github(https://github.com/bugy/script-server)项目主页的release下载最新版本,并解压:
wget https://github.com/bugy/script-server/releases/latest/download/script-server.zip
unzip script-server.zip

目录中,requirements.txt包含了所依赖的python模块,本版本文件要求的是tornado>=4,安装python模块:

pip3 install tornado
  1. 进入目录并启动服务(前台运行):
cd script-server
python3 launcher.py

此时,由于不同python3版本包含的默认模块不同,可能会提示缺少一些python模块,例如dataclasses,安装即可pip3 search dataclasses
启动成功后,5000端口应处于监听状态,可随时ctrl+c停止服务。

  1. 确保防火墙放行tcp 5000端口后,测试web,访问http://xxx.xxx.xxx.xxx:5000/index.html

Bonus: If using virtualenv’s python, then systemd startup script python path would be:
Find out virtualenv’s python path (When virtualenv is activated) which python copy result
Edit /lib/systemd/system/script-server.service ExecStart=/usr/bin/python3 would be -> paste here Example something like this: /home/user/script-server/envname/bin/python
The similar change should be done for init.d

配置

虽然此时能够访问index.html页面,但是界面空无一物。如果想要进行脚本的配置,则需要通过http://xxx.xxx.xxx.xxx:5000/admin.html界面进行配置,为此需要进行配置文件的修改。

简单示例

创建配置文件touch conf/conf.json, 一个简单的示例如下:

{
  "port":5001,
  "title": "My Script Server",
  "access": {
    "admin_users": [ "*" ]
    }
}

本例中修改了端口和系统标题。
可以对用户进行鉴权,没有权限的用户则不能访问管理界面,本例中,* 意味着所有用户都可以访问管理界面。
详细配置文件可以参考github主页的wiki(https://github.com/bugy/script-server/wiki/Server-configuration)
此时再次启动:python3 launcher.py,已经可访问管理界面(注意端口号变成了5001):
script-server管理界面
PS:wiki中的用户(user)概念与常规理解不同,似乎指的hosts文件中的hostname。尝试配置为hostname,则也具有管理界面的访问权限,但是只能查看运行日志,而不能真正进行配置,本例中为了简单,使用了 * 通配符

htpasswd鉴权

如果要进行鉴权,script-server支持LDAP、Google OAuth、Gitlab OAuth、Keycloak OpenID、htpasswd file方式,相对最简单的是htpasswd file方式,首先要安装httpd-tools工具:
yum install -y httpd-tools,接着在合适路径(即示例中的/path/to/)下创建密码文件:htpasswd -bc user_passwd user1 user1
修改配置文件为:

{
  "port":5001,
  "title": "My Script Server",
  "access": {
    "admin_users": [ "*" ]
    },
  "auth": {
    "type": "htpasswd",
    "htpasswd_path": "/path/to/user_passwd"
  }
}

重新python3 launcher.py之后,再次访问就需要输入账号密码了。

使用

script-server的所有操作都可以通过web界面进行,简易教程如下:

创建脚本

在合适位置创建计划运行的脚本,例如/home/test/add.py,脚本代码如下:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import sys
print( sys.argv[1] + " + " + sys.argv[2] + " = " + str(int(sys.argv[1]) + int(sys.argv[2])) )

这是一个非常简单的相加脚本,将两个参数进行相加后输出结果。
赋予脚本文件执行权限,确保在目录下可以直接执行,例如:

# 运行脚本
./add.py 1 2
# 输出结果
1 + 2 = 3

添加脚本

在管理界面“SCRIPTS”栏目下,点击“+ ADD”按钮,填写脚本配置:
脚本配置
参数配置
其中点击Script path参数的三点,选择"Edit script code",还可以在界面上直接对脚本进行编辑:
编辑脚本

运行脚本

完成配置后,点击左上角的Home按钮,返回index界面,此时可以看到配置好的脚本:
运行脚本
填写好参数后,点击EXECUTE立刻执行,就可以看到执行结果了:
执行结果
也可以选择SCHEDULE,配置为周期执行:
调度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值