jumpServer添加自定义服务

jumpServer添加自定义服务

一、需求

项目中为了节省资源并且方便日后统一管理,需要将一些不太重要的服务整合到一起。一个mysql或redis容器同时为多个不同的系统提供服务,加快一些边缘服务的部署。jms本身自带一大堆组件服务,比如redis、mysql、nginx等,基本上全家桶了,开发测试都习贯连到jms的组件服务上。但是,有时候想要的服务在jms上又没有,比如要添加一个rabbit-mq或者caddy,单纯docker run xxx或docker-comose up的话,默认运行的容器网络与已有的jms网络不共存,而且各服务启停要分开管理,不太方便。

为了解决这个问题,开始研究怎么往jumpServer里添加自定义服务。通过分析jms源码,很顺利的实现了,这里以caddy为例做介绍。

用python实现vmware esxi虚拟机断电自动关机

用python实现vmware esxi虚拟机断电自动关机

一、前言

机房服务器一般配备UPS,当市电停掉时,仍然到维持一段时间。但是,如果长时间停电,UPS也撑不了。此时就需要及时关机以确保数据安全。很多年以前用过winpower软件,通过目标系统安装agent,并用winPower连接UPS,当UPS电量低于设置的阈值时,给各个agent下发关机指令,以实现自动关机。这种方式可以充分利用UPS电量,较为精准的判断电池续航情况,并采取相应动作,但是操作起来有点麻烦。

另一种方式是采用自动化脚本的方式,通过循环ping 某个常接市电设备ip,当失败超过一定次数,触发powerOffVMs,最后shutdown esxi系统。这种方式无需与UPS通讯,只要市电断开,超过一段时间就执行关机指令,超作起来比较方便。但是,这种方式可能存在误判,比如交换机挂了,此时ping设备必然失败,最终会触发关机。因此下面介绍一种更为稳妥的方案。

二、实现

  1. 原理

    利用esxcli 来esxcli hardware ipmi sdr list | grep "Power\ Supply\ 1\ Status\|Power\ Supply\ 2\ Status"来检测电源是否正常。当其中一路电源断开或异常时,调用powerOffVms.py关闭各虚拟机,最后再调用poweroff 来关闭esxi。

记一次惨痛教训---vcenter踩坑

记一次惨痛教训---vcenter踩坑

一、起因

某数据中心备份系统,采用veeam backup and repliaction 来备份业务系统数据。业务系统均部署在vmware esxi中,并且使用vcenter来管理。某天突然看到最近几天的备份任务全部失败,经询问是由于该数据中心一次意外停电之后就出现的。Vcenter登录提示如下:

503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x0000564ca69d6010] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe)

此时大概猜到了vcenter应该是挂了,vcenter服务无法正常启动,间接导致veeam backup所有备份作业都失败。

安卓手机本地音乐播放器shuttlePlus开源版

安卓手机本地音乐播放器shuttlePlus开源版

一、背景

非常讨厌国内手机音乐播放器各种流氓行为,我只要听本地音乐,每次打开时要先强迫你看一屏广告,本地音乐入口还隐藏得特别深,一不小心就点到直播,联网音乐等界面去了,非常让人反感。想找个简单的本地音乐播放器,发现非常困难,要么功能欠缺,要么带广告。这东西anroid本来就自带的,可是国内各组装厂却都替换成了自己的,还要强制联网。某Q音乐本地版加载个歌曲列表竟然一卡一卡的,完全不像大厂出品。

找来找去,最后用上了开源的shuttle,使用起来感觉还不错,但唯有两点让我很不爽,一是部分中文歌曲名显示乱码,二是没有自动去除重复的歌曲,即使用上收费的shuttle2也没解决这个问题。既然是开源的,索性自己动手解决。

二、使用github action

由于本地没有纯安卓的开发环境,又不想为了搞这个破东西装一大堆软件(因为特别抵触gradle这破东西,感觉maven秒它N条街),于是github action就派上用场了。github action,可以将项目编译,并自动生成可执行文件。
这个功能给没有安装编译环境的开发都来说真的是极大的便利,开发者可以把源码丢上github,然后action,让它自动在后台编译,并自动部署。所谓的CI/DI原来跟这差不多。
如果项目主界面没有显示action,需要注意以下几点:

  • 项目需要公开
  • 需要设置为默认项目==可能在yml里设置指定版本也行,没亲测==
  • 在项目根目,.github/workflows/xx.yml,yml文件必须规范,并且指定了触发条件,xx可随意。

体验华为USG防火墙遥遥领先,吓人的黑科技

体验华为USG防火墙遥遥领先,吓人的黑科技

此前为某大客户做了个远程控制华为防火墙的应用,大概类似华为USG防火墙RESTCONF的坑--终端IP白名单的设置。项目交付完后也没收到什么异常报告,今天突然收到信息中心的伙计来电,说防火墙上很多登录失败的记录。看了发来的截图,发现还真是被外网暴破了,可是外网management服务一直是关的呀,难道是被人改了策略?

image-20231107170537932image-20231107170537932