FriendlyPI服务器
FriendlyPi的Python项目详细描述
友好pi
friendlypi是一个客户机/服务器解决方案,允许用户远程控制他们的linux操作系统。具体来说,这个项目的目标是允许控制机器子系统。对于每个子系统,服务器发布用户可以与之交互的状态和操作列表。然后可以使用客户机应用程序向服务器发送正确的命令。
典型的用例是在断开无键盘Linux盒上的USB电缆之前卸载外部硬盘驱动器。在这种情况下,子系统是硬盘驱动器,发布状态可以是“mounted”或“unmounted”,可能的操作可以是“mount”或“unmount”,具体取决于状态。用户可以使用自己的平板电脑/手机挂载驱动器,而无需通过ssh远程登录并使用控制台。
friendlypi服务器是基于插件的,每个插件提供处理不同子系统的代码。因此,用户可以编写自己的自定义模块。
客户端可以使用浏览器与服务器交互,或者使用提供的android应用程序(可从这里下载:https://github.com/happyemi/friendlypi)
安装服务器
可以使用简易安装来安装服务器:
easy_install3 FriendlyPi
注意:不要使用pip友好地安装pi,因为安装无法正常工作。
设置服务器
服务器需要配置文件才能正确启动。配置文件必须命名为friendlypi.json,并且必须位于/etc/中;它定义了服务器将处理的模块实例(即子系统)的列表。最简单的配置如下:
{ "instances": [["test1", "TestMod", {}]] }
这将指示friendlypi在启动时实例化测试模块。 默认情况下,服务器在端口8080上运行。可以设置不同的值(例如80):
{ “port”: 80, “instances”: [[“test1”, “TestMod”, {}]] }
测试服务器
安装服务器后,请手动启动它。启动首选浏览器并将其指向127.0.0.1:8080/status?html=1(当然,如果不同,用实际值替换环回地址和端口)。如果所有操作都已正确完成,浏览器应显示正在运行的测试模块的实例。存在一个递增按钮,按下该按钮将递增“状态”值。
配置MediaDevice模块
MediaDevice模块允许用户远程挂载/挂载挂载点。为了使其正常工作,/etc/fstab必须正确配置,并且运行服务器的unix用户必须具有正确的权限来装载/umount文件系统,假设装载点是“/media/usb”,friendlypi.json必须如下所示:
{ "instances": [["media1", "MediaDevice", {"path": "/media/usb"}]] }
“media1”是实例名,必须是唯一的。“mediadevice”是模块名,最后一个参数是包含配置的映射。可以配置多个装载点,如下所示:
{ "instances": [["media1", "MediaDevice", {"path": "/media/usb"}], ["media2", "MediaDevice", {"path": "/media/usb2"}]] }
配置ServiceManager模块
ServiceManager模块允许用户远程启动/停止服务。要使其正常工作,运行服务器的unix用户必须具有执行“service”命令的适当权限,如下所示:
service samba start
配置服务管理器需要两件事:服务名(例如“samba”)和pid文件(例如“/var/run/samba/smbd.pid”)。有效的配置如下:
{ "instances": [["service1", "ServiceManager", {"service": "samba", "pid_file": "/var/run/samba/smbd.pid"}]] }
可以配置多个服务管理器,方法与MediaDevice案例中描述的完全相同
免责声明
这个软件处于早期alpha阶段,目前还没有实现任何身份验证机制。不要在公用网络上运行服务器。使用风险自负。
更改
0.1d1
- 现在可以配置服务器端口
- 添加了ServiceManager模块