我有很多用于管理多服务器基础架构的脚本。其中一些脚本需要root访问权限,一些需要访问数据库,其中大多数都是基于perl的。我想将所有这些脚本转换为可以从不同应用程序执行的非常简单的Web服务。这些Web服务将采用常规请求输入,并在执行时输出json。我想我应该设置一个简单的perl调度程序,称之为action
,它将执行日志记录,检查凭据以及执行这些简单的脚本。类似的东西:
http://host/action/update-dns?server=www.google.com&ip=192.168.1.1
这将调用action
perl驱动程序,后者又会使用适当的参数调用update-dns
脚本(可能以某种方式清除)并返回适当的json响应。我希望此基础结构具有以下属性:
# action update-dns --server=www.google.com --up=192.168.1.1
我是否必须从头开始实现这一目标,还是已经有一些我可以依赖的东西?
答案 0 :(得分:2)
您可能想查看我的框架Sub::Spec。文档仍然很少,但我已经在几个项目中使用它,包括my other modules in CPAN。
这个想法是你在函数中编写代码,为这些函数装饰/添加足够的元数据(包括一些摘要,参数规范等),并且会有工具链来处理你需要的东西,例如:在命令行中运行您的功能(使用Sub::Spec::CmdLine和HTTP)(使用Sub::Spec::HTTP::Server和Sub::Spec::HTTP::Client)。
初期有一个sample project。另请查看http://gudangapi.com/。例如,函数GudangAPI::API::finance::currency::id::bca::get_bca_exchange_rate()可以通过HTTP API作为API函数访问。
Contact me如果你有兴趣部署这样的东西。