• PLEX 定時開關機的問題

    為了響應能源節約的口號,為放置大量電影文件的WD NAS 設置了自動開關機,每天22點會自行關機,每天8點會自行開機。

    這就產生了一個問題,運行Plex media server 的debian OS 檢測不到從NAS export 出來的nfs mount 之後他有一定的幾率會死機。

    所以要對這台運行在ESXi上的VM 進行定時開關機的操作。

    Vmware 官方提供了api,並且提供了一個官方的cli govc,首先當然是安裝他。

    Usage: govc <COMMAND> [COMMON OPTIONS] [PATH]...
    
    govmomi is a Go library for interacting with VMware vSphere APIs (ESXi and/or
    vCenter Server).
    It is licensed under the Apache License, Version 2.0
    
    govc is the CLI for govmomi.
    
    The available commands are listed below. A detailed description of each
    command can be displayed with "govc <COMMAND> -h". The description of all
    commands can be also found at https://github.com/vmware/govmomi/blob/main/govc/USAGE.md.

    使用起來呢,倒是很簡單,主要的問題在於我不能直接使用root 帳戶去操作poweron/shutdown 這類的動作,萬一密碼洩漏了呢。但是,Vmware 也沒有在ESXi v6 的GUI 中提供為新增的用戶賦權的功能。所以,第一次先要使用root 帳戶來為新增的用戶賦權。

    設置幾個env,這裡需要注意的是一定要用單引號,因為特殊字符密碼可能會被吃掉:

    export GOVC_URL=https://10.1.1.2
    export GOVC_USERNAME='root'
    export GOVC_PASSWORD='IAM-root-password'
    export GOVC_INSECURE=1

    看一下about

    govc about
    FullName:     VMware ESXi 6.7.0 build-15160138
    Name:         VMware ESXi
    Vendor:       VMware, Inc.
    Version:      6.7.0
    Build:        15160138
    OS type:      vmnix-x86
    API type:     HostAgent
    API version:  6.7.3
    Product ID:   embeddedEsx
    
    govc host.info 
    Name:              esxi-s01.bbken.net
      Path:            /ha-datacenter/host/esxi-s01.bbken.net
      Manufacturer:    HP
      Logical CPUs:    6 CPUs @ 2496MHz
      Processor type:  12th Gen Intel(R) Core(TM) i5-12400
      CPU usage:       4609 MHz (30.8%)
      Memory:          40644MB
      Memory usage:    35268 MB (86.8%)
      Boot time:       2026-09-13 09:15:48.082707 +0000 UTC
      State:           connected

    列舉一下當前有的這些VM,看起來還蠻多的呢,不過都沒開機:

    govc ls /ha-datacenter/vm 
    /ha-datacenter/vm/pfSense
    /ha-datacenter/vm/PLEX
    /ha-datacenter/vm/Webserver
    /ha-datacenter/vm/Windows10
    /ha-datacenter/vm/Alteon
    /ha-datacenter/vm/ROS
    /ha-datacenter/vm/OpenWRT
    /ha-datacenter/vm/Windwos10CHN
    /ha-datacenter/vm/ROS7
    /ha-datacenter/vm/Debian
    /ha-datacenter/vm/RHEL8
    /ha-datacenter/vm/FaceFusion

    看一下PLEX 這台VM 的詳細:

    govc vm.info "PLEX"
    Name:           PLEX
      Path:         /ha-datacenter/vm/PLEX
      Guest name:   Debian GNU/Linux 10 (64-bit)
      Memory:       8192MB
      CPU:          8 vCPU(s)
      Power state:  poweredOn
      Boot time:    2026-09-30 03:10:46.763837 +0000 UTC
      IP address:   10.1.1.5
      Host:         s01.plex.tv

    graceful shutdown 的命令是這樣:

    govc vm.power -s "PLEX"

    加電的命令是這樣:

    govc vm.power -on "PLEX"

    測試了一下開關機,沒問題。

    啊,要先創建一個reboot user,我們就叫reboot-user好了,從ESXi的GUI 創建這個用戶,然後使用root用戶操作govc 賦權:

    govc role.create vmpower VirtualMachine.Interact.PowerOn VirtualMachine.Interact.PowerOff VirtualMachine.Interact.Reset
    
    govc permissions.set -principal reboot-user -role vmpower -propagate=true

    完成後看一下:

    govc permissions.ls /
    Role     Entity  Principal    Propagate
    vmpower  /       reboot-user  Yes
    Admin    /       vpxuser      Yes
    Admin    /       dcui         Yes
    Admin    /       root         Yes

    看起來沒問題,接下來重新設置env,使用剛才創建的reboot-user和他的密碼:

    export GOVC_URL=https://10.1.1.2
    export GOVC_USERNAME='reboot-user'
    export GOVC_PASSWORD='reboot-user-password'
    export GOVC_INSECURE=1
    
    govc vm.info "PLEX" | grep "Power state"
    Power state:  poweredOn

    寫兩個腳本來加入到FreeBSD 的計劃任務:

    vm-stop.sh:
    
    #!/bin/sh
    export GOVC_URL=https://10.1.1.2
    export GOVC_USERNAME='reboot-user'
    export GOVC_PASSWORD='reboot-user-password'
    export GOVC_INSECURE=1
    /usr/local/bin/govc vm.power -s "PLEX"
    vm-start.sh:
    
    #!/bin/sh
    export GOVC_URL=https://10.1.1.2
    export GOVC_USERNAME='reboot-user'
    export GOVC_PASSWORD='reboot-user-password'
    export GOVC_INSECURE=1
    /usr/local/bin/govc vm.power -on "PLEX"

    設定權限(腳本含有密碼,請務必設置為 700):
    chmod 700 vm-start.sh
    chmod 700 vm-stop.sh

    crontab -e 加入这两行(21:30 关机、08:30 开机):

    30 21 * * * /vm-stop.sh >> /tmp/vm.log 2>&1
    30 8 * * * /vm-start.sh >> /tmp/vm.log 2>&1

  • 不間斷運行三年多的EXSi 主機風扇終於有了奇怪的聲音

    ちいかわ和賽蓮的故事是一個很黑暗的故事,一點也不像要給小朋友看的,蘊含了深刻的人生意義。

    上個月經過機櫃的時候覺得仿佛聽到了風扇的震動,但很快就消失了,以為只是簡單的機櫃共振,今天路過發現他又再次發出了奇怪的聲音,像是軸承沒有潤滑油了,趴在機櫃門上認真的聽了一下,判斷是ESXi 主機的問題,把ESXi 主機拿出來拆開,檢查了一下,看起來沒什麼灰塵,用壓縮空氣把主機板和電源模組吹了一下,也沒有吹出來什麼特別的東西,連個大坨點的棉絮都沒有。

    判斷CPU 散熱風扇快要壞了。

    英明如我,早在三年前就買了一隻備用散熱風扇,FOXCONN 出品的 PVA080G12Q ,立刻拿出來裝上。

    裝好,插電自啟動,瞬間恢復到靜音的狀態,需要再去買一隻備件了。

    最近騎車還是有那麼一點點效果,蹲在地上弄了半天PC,突然站起來居然頭不暈不晃?

  • 週末去宜蘭

    都說宜蘭是天龍國人的後花園,確實花園,有很多的花花草草,路邊的花都有香。

    即使是市區也沒什麼人,有點像旅遊淡季的花蓮,但是Miley 說剛才泡冷泉的時候外面兩個阿公說禮拜六禮拜天才會有台北人來。不是很明白冷泉這種東西,感覺泡多了會生病。

    因為我們來的時候是平日,所以人煙稀少。建倫兄帶著吃了有名的羊排麵,味道是很不錯,只不過因為台灣都是太監羊,沒有羶味,還是差強人意,隨後去他宜蘭的家中小坐了一會兒,他在帝都中日友好醫院工作的老婆沒有跟著回來,只有他的女兒跟著回來了,我看他是回不了台灣的,文科生很難在台灣找到薪水高的工作,何況他老婆是醫師,中國的醫師資質,台灣是不承認的,他這輩子只能留在中國了。

    玉珍之前在鬧的不就是試圖提出法案開放中國醫師到金門執業,雖然玉珍辯解說沒有明確是開放中國醫師而是國際醫師,但是她也沒明確排除中國醫師。

    羅東夜市的品類很豐富啊,比台北的幾個夜市看起來豐富多了,也許是因為地廣人稀?

    從台北可以坐區間車到宜蘭,但是不能到蘇澳,蘇澳是所謂區間車的支線,然後宜蘭車站的站牌上,不到蘇澳的車次寫著停靠沿途各站,他指的沿途各站是到花蓮的沿途各站,他並不會到蘇澳。

    所以鄉下人就該坐錯車是嗎?

    當然,要相信台鐵app 的車次查詢,是準確的。

    在蘇澳的民宿睡得還不錯,看起來像是青旅的一間,除了有一點裝修的味道,環境,衛生,噪音控制都不錯,雖然臨馬路,但是平日的時候蘇澳看起來就是沒有人。老闆在二樓擺放了很多當地特產售賣,但是他們似乎並不熱衷於此,前台常常沒人,因此我臨走也沒有買成。

    租了兩台電動腳踏車,在四周晃了晃,豆腐岬就是The Croods 裡面的那個Windows 啊!豆腐岬的碉堡很不錯,能保持在一個較低的溫度,即使外面太陽下已經四十度了,裡面還是不熱,可以在碉堡裡面靜靜的看海很長時間。

    第二天的海鮮吃了白蝦,曼波魚,海瓜子,沒想到曼波魚主要是吃魚皮,膠原蛋白一塊一塊的,吃起來像蒟蒻。

    蘇澳是一個適合看海的好地方,安靜,人少,我們從蘇澳車站走去民宿的三公里路上,只有兩台腳踏車經過。