DIY带外管理 · 强悍Pi-KVM

2021-09-27 作者:

Let’s talk about the open source IP-KVM (or KVM over IP) solution based on Raspberry Pi 4B, named Pi-KVM, which has sophisticated feature sets that can provide almost same experience like HP ILO or DELL iDRAC, only except the hardware monitoring and err logging.

  • Hardware screen capture with low latency.
  • OTG Keyboard & mouse; Mass Storage Drive emulation.
  • ATX power control (thru Pi GPIO) with some MOSFET relays.
  • RJ-45 and USB serial console port.
  • IPMI BMC, redfish… all those professional server stuff support.
  • Nice and easy-to-use web UI with virtual keyboard, video quality control, key-combination shortcuts and virtual USB drive control.
  • A fully featured, user-customizable Linux OS.

只要玩过专业带外管理,基本就很难接受只有本地键鼠,以及OS之上的RDP和VNC了吧。

随便放两张Dell iDRAC系统截图吧。

今天要聊到的Pi-KVM,在简单廉价的硬件结构上,实现了除硬件子系统监控和告警之外,专业BMC几乎所有功能。

  • 低延迟的显示器信号捕捉和传输(100ms以内)。
  • OTG 键鼠,U盘模拟;给家用机远程load OS不叫事儿。
  • 通过Pi GPIO外加几个继电器实现的ATX电源控制;不说也懂,控制不了电源还叫BMC么。
  • RJ45和USB串口;既能控制路由/交换,也能控制自己。
  • IPMI BMC,redfish… 专业能玩的,它都能玩。
  • 简洁实用的web控制台,软键盘、组合键、粘贴板、视频质量控制、虚拟USB驱动器控制,全乎+易用。
  • 除了所有以上之外,还是个全功能的Arch Linux ARM版本,灵活性刚刚的,这可把专用BMC打趴了吧。

多吹无益,上图。

【注】请忽略裸线,5V和GND用胶带缠了一下,反正不是高压,胶带不绝缘也没关系,别物理刺穿就行;银色金属箔是屏蔽,说明小米的线做工还是靠谱的哈,该有的都没少。

文档制作基于Ventoy的Win10安装盘,全程不用物理U盘,安装Windows。

如果我没说清楚,就重申一遍。类似Dell和HP的专业BMC,可以直接远程挂载ISO装系统。Pi-KVM更狠,借着自己内置存储,直接把U盘/光盘镜像上传,经过物理USB线,模拟一个驱动器插到被控电脑就搞定了,有点爽。

如上所言,被控电脑经USB线连接仿真U盘,BIOS从Linux file-CD启动,无论装什么OS都能够顺利引导。

完整阅读本篇»

“小森林” 码工版

2020-06-28 作者:

明.陈全之《蓬窗日录》卷八:“春耕夏耨(nòu),敢辞涂足之勤;秋获冬藏,实切资身之望。”

日剧《小森林》,前后两部四集,全面的描绘出一个不甘挣扎于城市枯燥生活的妹子,返乡后独居,靠自己一双手打造返璞归真“小确幸”的图景,唯美、静心。本是2014/2015的片子,不知为何,去年突然火爆国内,还盖上“日版李子柒”的标签,颇觉给脑袋里整日萦绕“逃离北上广”的年轻人们一丝抚慰。

“农协开的小超市,冬雪中需步行一个半小时,而去临镇的大型城外超市购物,来回要一整天”,一句话下来,心凉半截;前可着村,但后不着店,换言之,一切靠自己了。

剧集展现给我们的,也确实如此:一日三餐,每餐结束之后,手头活计如果不是在准备下一餐,应该就是在准备下N餐(腌制发酵食品,或晾晒干制食品),日复一日,周而复始。另有国产美食剧集《一人食》好像也是在2014年上线的,并没有很火,我也没有看过,家里那口子倒是个不折不扣的美食爱好者。

洋洋洒洒说了这么多,跟码工又有几毛钱关系呢?码工嘛,又称“互联网从业者”,算是近年实体经济普遍乏力后,苦出身底层娃们为数不多的上升通道了。

所谓互联网大厂,自然有大厂的好处。流水线作业毕竟分工细,需求有人出,测试有人做,UI有人画,运维有人管,自己聚焦自己的一亩三分地;即使起新项目,研发主管还给脚手架工程做参考,说到底,搬砖就搬自己的砖,搬多少块结多少账,公平合理。要在大厂晋升,当然也是有讲究的。真材实料不可或缺,搬砖一路搬到CTO多半不可行;即使做技术主管,也得有点架构意识,当个“流水线线长”,知道不同目标需求下的技术组合和性能指标,关注外界趋势,跟合作项目组打太极,了解手底下那几个货适合搬什么砖,以及他们万一不干了,排队来搬砖的还有谁,等等。

言而总之,大厂工作如果不来点自黑,比拼个端午、中秋礼包设计,那真像极了城市生活两点一线,日子不停复制粘贴的感觉。作为移动互联网时代流水线工人,面对“弹性工作”、“996”等潜台词,再看看蒸蒸日上的业务,合同上不菲的现金和RSU,照旧叹一口气,进会议室继续抢项目撕B。

那你的意思是,码工也能回村自给自足,搞“一人码”?

也是,也不是。

全栈工程师不新鲜,算得上自给自足。至于要不要回村,您请自便,如果是农业创业,老板、市场、销售、PM、DevOps、运营、物流啥的您都一人扛了,咱也佩服;如若仅仅实现一人码,那大可不必,怎么也得考虑对接需求方要顺畅吧。

呃……废话太多,来点干货。

好吧,这篇围绕“一人码”的博文,其实来自于处理我“一人码”的一次线上故障。

完整阅读本篇»

基于Flask的简易webtelnet和webssh

2020-02-25 作者:

Chinese version README of the Github repo – flask-remote-terminal.

简而言之,一台具备多用户支持的,仅限使用telnet/ssh,访问远程固定地址的,web终端。

演示截图:


有啥稀罕的

  • 只可访问远程地址,非本机终端
  • 目前仅限telnet(支持十几年前老设备用)和ssh访问,代码中也可增加其他协议,但始终受控
  • 仅限访问固定远端地址(IP/域名),代码config可配,一旦服务运行后不可更改
  • 服务端session存储pid和fd等,用于多用户支持


参考项目


需求如此“扭曲”,何解

通过web终端去管理一台特定的中转机,其多数端口是(在特定时间段内)代理到真正需要管理的目标机。具体需求如下:

  • 同多数web terminal一样,浏览器即开即用,免安装
  • 只允许访问特定地址(中转机),避免被抓肉鸡
  • 只允许使用telnet和ssh进行连接,不可自选其他客户端命令,在此基础上允许用户自行输入用户名和端口号
  • 只用于远程连接,在用户exit退出终端后,也无法回到shell操作提供该服务的server
完整阅读本篇»

OpenWRT配置FRPC实现公网访问

2020-02-23 作者:

This post talks about running frpc (Github), the client of my favorite reverse proxy toolset, on an OpenWrt powered router, to expose one or more specific port of an local/intranet ip address onto public access.

在目前主流网络运营商大多不提供公网IP的大环境下,FRP套装搭配一台低配云主机,是最普遍也相对稳定的ddns替代方案。

长期以来,笔者使用的都是x64(amd64 on Centos/Ubuntu)和arm(树莓派)版本的frp release,启动配置上都是走的linux systemd。今天算另辟蹊径,要介绍一下在一台EX6200v2刷机的OpenWRT上跑frpc,接通阿里云的frps,来实现公网访问内网。

【注】其中frps也即服务端的配置,有两种情况:

  1. 如果同样是在openWRT上运行frps,那安装方法跟接下来的frpc是一回事。
  2. 如果跟我一样,云端走frps做转发用,张大妈上几乎每个博主都截图讲一遍,我是用CentOS命令行操作的,不在此赘述了,有需要联系。

 

在openwrt上运行frpc,要用到的资源来自于这两个Github工程,openwrt-frpluci-app-frpc

第一步,先搞清路由器的CPU架构。

本文用到的是NETGEAR EX6200v2,经查板载高通IPQ4018,4核Cortex A7 Neon。如果是用Intel处理器的软路由,那就更好办,直接省去查cpu的这一步。

当然,从ssh登进路由器确认,也是一种办法。

第二步,查看路由器的存储空间是否够安装FRPC,然后去github release下载相应的ipk安装包。

从返回结果看,可用空间还有7.3M,frpc安装包尺寸3.6M,还是可以安装。前提是ipk要放在临时分区也就是/tmp(猜测这货是内存虚拟硬盘吧)中。

完整阅读本篇»

记FSX第一次放单飞

2019-10-20 作者:

Since MS has announced its Flight Simulator 2020, I finally start my self learning on FS-X. With a newly purchased Thrustmaster T16000M FCS + TWCS throttle joystick set, the experience of flight simulation (on Cessna 172) turns to be complete fun, with some challenge, still. After all the torture by “mouse yoke” will never be a nightmare then.

And the famous flight instructor, Rod Machado, really helps me quite a lot with his professional and full-of-humor instructions in the Learning Center of FSX. I wrote down pretty much notes and charts on my evernote, which was exciting, pretty much.

经过大概一周“地面学校”自学,和不超过8个小时的空中单项训练,哥们算是把模拟器“首次单飞”(First Solo)给过了,还领了签了名的T恤残片,不得不说,仪式感满满(哪怕是在模拟器中)。

单飞的过程,简单来说,就是做完整一个本场五边。

  • 华盛顿州,布雷默顿机场,跑道编号19,指向190°(南偏西)。
  • 离场边。全油门起飞,爬升速度稳定在80 knots,对塞斯纳172而言,pitch角度控制在10~15度之间基本就可以。
  • 到1500英尺后,收油到2200 rpm(转/分),调整trim平飞。
  • 即刻收到教练指令,左转90°,完成后航向100°,高度保持。进入侧风边。
  • 平飞后,迅速再左转90°,完成后航向10°,高度保持;下风边,与起飞反方向,左侧舷窗可以逐渐看到跑道。
  • 位置大致平行于跑道始端时,受命展开襟翼至10°,下压姿态并适当trim,让飞机降到1300英尺。
  • 立即左转90°,完成后航向280°,继续以1300英尺高度平飞(此时奔着一座小山飞去,还不让拉高…),这是基线边。
  • 迟疑片刻,受命做最后一个90°左转,完成后航向回归到190°,这就是最终进近边,或者叫进场边。
  • 减速,对正起飞时的19号跑道。此时教练提示,利用第六课学习的PAPI(精密进近航道指示器)调整自己的glide path,接地前做好flare(改平),接地,刹车停稳。
  • 剪T恤签名发证收工,一气呵成!

 

第一件,先把student pilot的单飞证给亮出来。

再来个现实中机场的环境,GMAPS上显示跑道号是20,模拟器中是19。

话说模拟器中居然连现实环境中的旁边的赛车道都给做进去了,真的是很用心,别忘记模拟器发布是在10年前……

接下来是考试内容,注意底下的FLIGHT CRITERIA;只要有一项不符,且教练提示后没在规定时间内纠正的,直接判考试失败:

  • 高度在要求的100英尺内。
  • 动力系统在要求转速的上下100转内。
  • 飞行期间空速在要求范围的上下10 knots内,起飞期间按55 knots上10下5来界定。
  • 航向偏差在10°以内。
  • 俯仰偏差在3°以内。
  • 滚转时按10°进行(此处怀疑有typo,以往练习一般要求20°,而且句末有as assigned)。

以下过程截图 – 起飞爬升期间

btw 一直第一人称飞的,要真学就得靠仪表,不能当成游戏玩;截图么,还是第三人称好看咯

完整阅读本篇»

EX6200v2刷写OpenWRT秒变路由

2019-06-27 作者:

OpenWRT (LEDE) 18.06 turns the NETGEAR EX6200v2 from a WiFi extender to be a professional router with 1 WAN and 4 LAN ports.

首先,不得不说,我收到的这台EX6200v2整机可靠性相当一般。几个月以来一直相对稳定的AP无线信号,近期则是一天到断上1~2次,硬件现象是所有LED不停闪烁,要恢复WiFi需要拔电重启——对于多人办公环境而言,这是无法接受的;不仅如此,重启后还丢配置也是醉了。

想来难道是气温问题?前阵子一直表现稳定,近期随着夏季来临,办公室面西隔间逐步达到30+度,EX6200v2的电源渗出气味诡异的黄色油液,在我闻起来蛮像烟油的味道,太太则说像是电解液渗漏的气味。刷机后,要换个12V供电电源测试几天再看效果。

其次,言归正传,感谢为EX6200v2编译固件的玩家tonynee,其原贴从此访问

迄今为止,EX6200v2应该还没有获得openwrt官方支持,相比之下,其前辈EX6200(也即V1?)是有ddwrt支持的,因此讨论V1的中英文资料都不少,而V2却只有tonynee的自编固件可以完美下载刷入。别看只是V1、V2之分,据称V1是博通(Broadcom)方案,而V2则是高通(Qualcomm)方案,硬件上(包括编译时所用驱动)看来是没有多少相关性了。

诚然,刷固件和硬件可靠性并无直接联系,但即使宕机也得有个缘由吧?原厂固件一没个像样的日志,二连个CPU温度都看不到,明知有问题又无法诊断,只有UI好看又有何用呢?

于是,秉承“能动手就别BB”的态度,咱跟着tonynee沾个光。【友提】刷机有风险,操作须谨慎。

固件搬运(作者tonynee)

刷写过程简单到难以置信,不用降级原厂固件(版本1.0.1.74),也不用拆机找UART口接线。下载固件解压后,直接在原厂固件的“升级固件”页面,选择img文件,点升级等重启即可。

完整阅读本篇»