<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Antony 筆記：技術原理與實務經驗 – 虛擬化</title><link>https://blog.kubeantony.com/archive/virtualization/</link><description>Recent content in 虛擬化 on Antony 筆記：技術原理與實務經驗</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><lastBuildDate>Tue, 10 Feb 2026 05:10:28 +0800</lastBuildDate><atom:link href="https://blog.kubeantony.com/archive/virtualization/index.xml" rel="self" type="application/rss+xml"/><item><title>部署 VKS Clusters</title><link>https://blog.kubeantony.com/archive/virtualization/%E9%83%A8%E7%BD%B2-vks-clusters/</link><pubDate>Tue, 10 Feb 2026 05:10:28 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/%E9%83%A8%E7%BD%B2-vks-clusters/</guid><description>
&lt;h2&gt;1. 先決條件&lt;span class="hx:absolute hx:-mt-20" id="1-先決條件"&gt;&lt;/span&gt;
&lt;a href="#1-%e5%85%88%e6%b1%ba%e6%a2%9d%e4%bb%b6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;多個 ESX 主機透過 &lt;strong&gt;vSphere Distributed Switch (VDS)&lt;/strong&gt; 連接。&lt;/li&gt;
&lt;li&gt;已設定 &lt;strong&gt;Shared storage&lt;/strong&gt;，例如 vSAN 或 NFS。&lt;/li&gt;
&lt;li&gt;已啟用 &lt;strong&gt;vSphere HA&lt;/strong&gt; 和 &lt;strong&gt;fully-automated DRS&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;已啟用 &lt;strong&gt;vSphere Lifecycle Manager (vLCM)&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;已設定網路，可使用 &lt;strong&gt;NSX 及其內嵌的 load balancer&lt;/strong&gt;，或使用 &lt;strong&gt;VDS 搭配外部的 load balancer&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. ESXI 安裝設定&lt;span class="hx:absolute hx:-mt-20" id="2-esxi-安裝設定"&gt;&lt;/span&gt;
&lt;a href="#2-esxi-%e5%ae%89%e8%a3%9d%e8%a8%ad%e5%ae%9a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;幫每一台 esxi 都設定固定 ip、DNS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HkV-PoWvbx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1ofDiZwWe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Byn7DsZDZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;幫每一台 esxi 設定 ntp 校時&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/H1FR_iZDbe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S16WtjZDWg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h2&gt;2.1 設定 vCenter&lt;span class="hx:absolute hx:-mt-20" id="21-設定-vcenter"&gt;&lt;/span&gt;
&lt;a href="#21-%e8%a8%ad%e5%ae%9a-vcenter" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;參考：https://hackmd.io/@wu-andy/rkXpmTGteg&lt;/p&gt;
&lt;h3&gt;2.2. 環境資訊&lt;span class="hx:absolute hx:-mt-20" id="22-環境資訊"&gt;&lt;/span&gt;
&lt;a href="#22-%e7%92%b0%e5%a2%83%e8%b3%87%e8%a8%8a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;vCenter 版本：&lt;code&gt;8.0.3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;3 台 ESXi 版本：&lt;code&gt;8.0.3&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2.3. 設定 VSS 和 VDS&lt;span class="hx:absolute hx:-mt-20" id="23-設定-vss-和-vds"&gt;&lt;/span&gt;
&lt;a href="#23-%e8%a8%ad%e5%ae%9a-vss-%e5%92%8c-vds" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;每台 ESXI 要再添加兩張網卡，總共三個，並且都要不同網段&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1hRn2DX-g.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h4&gt;重新命名 VSS(VM Network)&lt;span class="hx:absolute hx:-mt-20" id="重新命名-vssvm-network"&gt;&lt;/span&gt;
&lt;a href="#%e9%87%8d%e6%96%b0%e5%91%bd%e5%90%8d-vssvm-network" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;此網段為 &lt;code&gt;172.21.1.0/24&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;將 VSS(VM Network) 重新命名成 mgmt，所有 ESXI 都要做，這裡更改名稱主要是因為 supervisor 再找網卡會因為名稱有空格找不到&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HkzIZpDQbx.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJKwZ6vQbl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第二台 ESXI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryatZpvQbl.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1Tn-6DQZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第三台 ESXI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJYxGpDQZl.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1kff6vQ-l.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h4&gt;設定 VDS 給 VIP 使用&lt;span class="hx:absolute hx:-mt-20" id="設定-vds-給-vip-使用"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-vds-%e7%b5%a6-vip-%e4%bd%bf%e7%94%a8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;此網段為 &lt;code&gt;172.20.2.0/24&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;做出 VDS ，這個 VDS 給 VIP 使用&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;在 vSphere Client 中，導覽到 Datacenter。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在瀏覽器中的 Datacenter 上按一下滑鼠右鍵，然後選取 Distributed Switch &amp;gt; 新增 Distributed Switch。
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B15fO8Yjll.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;輸入新 Distributed Switch 的名稱，例如：&lt;code&gt;DSwitch&lt;/code&gt;。
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1KPdLtsgx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在選取版本中，輸入 Distributed Switch 的版本。
選取 &lt;code&gt;8.0.3&lt;/code&gt;。
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJpfKUtjgl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在設定組態中，輸入上行連接埠數目，輸入值 &lt;code&gt;1&lt;/code&gt; 和取名 &lt;code&gt;VIP&lt;/code&gt;。
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1e1pr0M-x.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;檢閱設定，然後按一下完成。
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/H1JiYUFolx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在您建立的 Distributed Switch 上按一下滑鼠右鍵，然後選取設定編輯設定。
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1UI58Yilx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在進階索引標籤上，輸入大於 1700 的值作為 MTU (位元組) 值，然後按一下確定。
在承載覆疊流量的任何網路上，MTU 大小必須大於或等於 1700。
例如，9000。
如果 vks 是安裝在 NSX 環境， MTU 就要設大於 1700。沒有的話可以只設 1500
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SyvVp5y2ex.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;加入 esxi 主機&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJElZsk3gg.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkvGWi13gx.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rkGVWsJ3xg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指定一張網卡&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkP30hw7-g.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJejIJWnlx.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJMRCnvQWg.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rJHlJTv7Wg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJd116DQ-x.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h4&gt;VDS 給 workload cluster 使用&lt;span class="hx:absolute hx:-mt-20" id="vds-給-workload-cluster-使用"&gt;&lt;/span&gt;
&lt;a href="#vds-%e7%b5%a6-workload-cluster-%e4%bd%bf%e7%94%a8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;此網段為 &lt;code&gt;172.20.3.0/24&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;再做出一個 VDS，這個 VDS 給 workload cluster 使用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJ2aJaP7be.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HyBElaPmZl.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1FzxpPX-l.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1J8lpw7Wg.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1cUgaDQWg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;加入 esxi 主機&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ByoKxTP7Ze.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/H1P9xpDQZx.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rkzsepDmZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;指定一張網卡&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ry_2laDQ-x.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1N0g6vQZe.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/By0RxpD7Ze.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rkqyZpPX-x.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;2.4. 確認已設定 vsan&lt;span class="hx:absolute hx:-mt-20" id="24-確認已設定-vsan"&gt;&lt;/span&gt;
&lt;a href="#24-%e7%a2%ba%e8%aa%8d%e5%b7%b2%e8%a8%ad%e5%ae%9a-vsan" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJ16qyZnle.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要記得略過快速入門&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SklbVR_7Wl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在監控 -&amp;gt; Skyline Health 點選無回應警示&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1emVCdXbl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;2.5. 確認已啟用 vSphere HA 和 fully-automated DRS&lt;span class="hx:absolute hx:-mt-20" id="25-確認已啟用-vsphere-ha-和-fully-automated-drs"&gt;&lt;/span&gt;
&lt;a href="#25-%e7%a2%ba%e8%aa%8d%e5%b7%b2%e5%95%9f%e7%94%a8-vsphere-ha-%e5%92%8c-fully-automated-drs" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HkgloJZheg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Skf-oJWhle.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;2.6. 確認已啟用 vSphere Lifecycle Manager (vLCM)&lt;span class="hx:absolute hx:-mt-20" id="26-確認已啟用-vsphere-lifecycle-manager-vlcm"&gt;&lt;/span&gt;
&lt;a href="#26-%e7%a2%ba%e8%aa%8d%e5%b7%b2%e5%95%9f%e7%94%a8-vsphere-lifecycle-manager-vlcm" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rkZcK1-nll.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h2&gt;安裝 Avi VM&lt;span class="hx:absolute hx:-mt-20" id="安裝-avi-vm"&gt;&lt;/span&gt;
&lt;a href="#%e5%ae%89%e8%a3%9d-avi-vm" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1mXBxBolx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;VMware Avi Load Balancer&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkVSHlHslx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1ZDreHilg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Hka-LxHoex.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ByWrLgBoll.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJppwpPXZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rJrfOpDXZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkWBdTPmZg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定 Avi&lt;span class="hx:absolute hx:-mt-20" id="設定-avi"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-avi" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;第一次登入才需設管理帳號密碼&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1S4tQBoee.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;設定一組密碼，用來加密設定匯出與排程備份中的敏感資料（例如金鑰、憑證、雲端/整合帳密等）。之後做還原/匯入時，必須提供同一組密語，否則無法還原。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryzkq7Soge.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1PSy8csex.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r10zl8colg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定 avi 自己的 vip&lt;span class="hx:absolute hx:-mt-20" id="設定-avi-自己的-vip"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-avi-%e8%87%aa%e5%b7%b1%e7%9a%84-vip" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Hy823F9ogl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果有多個 avi 主機也可以把其他主機加入，做出 avi 叢集&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rknE-84--l.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以透過 vip 登入 avi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkqDZ8VW-l.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定授權&lt;span class="hx:absolute hx:-mt-20" id="設定授權"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a%e6%8e%88%e6%ac%8a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;到授權頁面把 license 改成 enterprise tier&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJ2KVFqogx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryzh4tqixg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定 DNS/NTP&lt;span class="hx:absolute hx:-mt-20" id="設定-dnsntp"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-dnsntp" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Administration Settings DNS/NTP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Byo43lEWZx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BkUht3kzWx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rJQtnl4WZg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定 VMware Cloud&lt;span class="hx:absolute hx:-mt-20" id="設定-vmware-cloud"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-vmware-cloud" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;建立 vCenter Cloud 讓 Avi 能「在 vSphere 上自動部署並管理」Service Engine，並使用該 vSphere 環境的 network/storage/compute 資源來提供 load balancing&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;透過在「建立」下拉清單中選擇此選項來設定VMware vCenter/vSphere ESX雲端&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BylkOOqjll.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;為雲端提供一個名稱，然後從類型選單中選擇 VMware vCenter/vSphere ESX&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;設定關閉 dhcp 和 ipv6&lt;/li&gt;
&lt;li&gt;勾選 Prefer Static Routes vs Directly Connected Network : Avi 在決定如何把 VIP 的流量送出去時，會優先使用「靜態路由（static route）」定義的 next-hop，而不是直接利用 SE 所在介面上的「直接相連（directly-connected）」行為（例如 ARP）去處理該子網流量&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJEt9BCfWe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SyuVG0PQZe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;配置 vCenter 的憑證&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJAHzCDQbx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJtQYdqieg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;選擇指定的 datacenter ，以及選擇 Service Engine（SE）用來做管理介面（management vNIC）的網路。不用勾選 content library，然後保存&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJS-oBCGZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;設定 Network&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Byth_pbvbx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol start="6"&gt;
&lt;li&gt;設定後保存離開，等待狀態變為綠色&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HySLnfVWZx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol start="7"&gt;
&lt;li&gt;Infrastructure &amp;gt; Cloud Resources &amp;gt; Networks&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1-oK6WwZx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;定義一個子網路（subnet）與一組靜態 IP 範圍，供 Controller 配發給 Virtual Service 的 VIP（虛擬 IP）和 Service Engine（SE）VM 的管理 / data IP&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ByiVFTbPZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol start="8"&gt;
&lt;li&gt;這邊定義 ip range，supervisor 在啟用的時候會先從裡面拿兩個 VIP 出來用，這兩個 VIP 後端會導流到 supervisor 在 worklaod 網路的那隻腳&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1ExqaWvWg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;所以 supervisor 會有三個 VIP&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一個在管理網段(5 個 IP 裡面其中的一個) &amp;mdash;&amp;gt; 提供 supervisor 內部運作用&lt;/li&gt;
&lt;li&gt;兩個在 SE 的 VI P範圍 (獨立的兩個VIP) &amp;mdash;&amp;gt; 提供使用這下指令與監控用
1 號不過 AVI ，由 supervisor CP 節點取得
2 號使用 AVI，在啟用過程中由 vCenter/Supervisor 發送 API 自動配置&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;ol start="9"&gt;
&lt;li&gt;定義 VIP ip range&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJf7caWvWx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryQCNAvXWx.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1K7spbDWl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;建立 IPAM profile&lt;span class="hx:absolute hx:-mt-20" id="建立-ipam-profile"&gt;&lt;/span&gt;
&lt;a href="#%e5%bb%ba%e7%ab%8b-ipam-profile" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;建立虛擬服務時，需要使用 IPAM 來指派虛擬 IP 位址。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rJ2IqlE--e.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJaauRvXZg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;當有人（例如 vCenter Supervisor）向我要一個 VIP 時，我被授權從哪些網路發放 IP？這邊指定 VIP 的 network。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BkHCoTZwZx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;建立 DNS profile&lt;span class="hx:absolute hx:-mt-20" id="建立-dns-profile"&gt;&lt;/span&gt;
&lt;a href="#%e5%bb%ba%e7%ab%8b-dns-profile" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1xXFADQ-x.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkKDtRPXZe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;這邊先新增任意一個 domain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1BYYRD7Zx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;再回到 VMware Cloud 設定 IPAM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkOAYRw7-e.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定 Certificate&lt;span class="hx:absolute hx:-mt-20" id="設定-certificate"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-certificate" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJEgNvTgWe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/H1ME4vpxZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;這邊 common name 要填的是 avi 自己的 vip 所對應的 domain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJVsB5pxZx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SAN 要填的就是 avi 自己的 vip 位置&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1YAB96gWg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r14_26ZDbg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複製憑證，待會在創建 supervisor cluster 時會需要貼上此憑證&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/By1TAO6eWg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;更換訪問 avi 入口憑證&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryMFjWgzWl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/By2bn-xM-x.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定 Service Engine Group&lt;span class="hx:absolute hx:-mt-20" id="設定-service-engine-group"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-service-engine-group" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Infrastructure &amp;gt; Cloud Resources &amp;gt; Service Engine Group&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJUWOQVZbx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/H12vapbDWe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJS2-kOmbx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;設定 Static Routes&lt;span class="hx:absolute hx:-mt-20" id="設定-static-routes"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-static-routes" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Infrastructure &amp;gt; Cloud Resources &amp;gt; VRF Context&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJB1pXVZZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;這邊要設定 workload 網段要路由到 VIP 網段的 gateway&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SkllsfyuXbe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJVCTTZP-l.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h2&gt;設定 vSphere zone&lt;span class="hx:absolute hx:-mt-20" id="設定-vsphere-zone"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-vsphere-zone" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJvvMH2lZl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJaiQS3lbe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;選擇要用於 VKS 叢集和 vSphere Pod 的叢集&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S121EB2gWg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h2&gt;設定工作負載管理 (啟動 supervisor)&lt;span class="hx:absolute hx:-mt-20" id="設定工作負載管理-啟動-supervisor"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a%e5%b7%a5%e4%bd%9c%e8%b2%a0%e8%bc%89%e7%ae%a1%e7%90%86-%e5%95%9f%e5%8b%95-supervisor" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJXXVS3g-e.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJ0zrr2lWl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SySSSH3lZx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/H1SvSr2x-e.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rJKnrBhe-g.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJJUIBnxbg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;要將前面在 avi 創建的憑證放進來&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJRnR6bPWg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;起始 ip 這邊是設給 supervisor cluster 的 vip，他需要保留五個連續 ip ，所以這裡設定 172.21.1.30，就是代表到 172.21.1.34 都會分配給 supervisor cluster 使用，會使用的是 supervisor control plane 的節點 IP+VIP+升級保留，總共 5 個 IP，但是使用順序不一定&lt;/li&gt;
&lt;li&gt;這意這邊起始 ip 不能跟前面 avi 設定的 vip 範圍重疊&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r13H1R-vWx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;設定 workload cluster 網路資訊&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryOAH1OXWl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;這邊會設定 workload cluster 的 vm 他拿到的 ip 是在以下範圍&lt;/li&gt;
&lt;li&gt;網路名稱要填小寫&lt;/li&gt;
&lt;li&gt;網路範圍也不能跟前面重複&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rkviZCbPbx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1DIuKplZg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h2&gt;創建 workload cluster(TKG)&lt;span class="hx:absolute hx:-mt-20" id="創建-workload-clustertkg"&gt;&lt;/span&gt;
&lt;a href="#%e5%89%b5%e5%bb%ba-workload-clustertkg" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;確認 supervisor 狀態都正確&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HkVBZkfwbl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1qI-1MPbl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;開啟瀏覽器，連接 &lt;code&gt;https://172.21.2.81&lt;/code&gt;，下載 &lt;code&gt;kubectl CLI Plugin&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryypGyYX-g.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;準備一台 ubuntu bastion 機使用指令下載&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ curl -k https://172.21.2.81/wcp/plugin/linux-amd64/vsphere-plugin.zip -o vsphere-plugin.zip&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;解壓縮&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo apt install unzip
$ unzip vsphere-plugin.zip
$ sudo cp -r bin/* /usr/local/bin&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;登入 supervisor，使用 VC 帳號登入&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl vsphere login --insecure-skip-tls-verify --server=172.21.2.81
Username: administrator@vsphere.local
Password:
Logged in successfully.
You have access to the following contexts:
172.21.2.81
svc-tkg-domain-c19
svc-velero-domain-c19
If the context you wish to use is not in this list, you may need to try
logging in again later, or contact your cluster administrator.
To change context, use `kubectl config use-context &amp;lt;workload name&amp;gt;`&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;此時看到的 control-plane 三台就是剛剛創建的 supervisor vm，而 worker 就是 esxi 三台，因此如果在這裡創見 pod ，就是直接跑在 esxi 上&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl get no -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
423d9b295547c821ffd05433fe560885 Ready control-plane,master 42m v1.30.10&amp;#43;vmware.1-fips 172.21.3.52 &amp;lt;none&amp;gt; VMware Photon OS/Linux 5.10.237-2.ph4-esx containerd://1.7.25&amp;#43;vmware.2-fips
423dee48377f7b6bf5ee23a17f104118 Ready control-plane,master 42m v1.30.10&amp;#43;vmware.1-fips 172.21.3.51 &amp;lt;none&amp;gt; VMware Photon OS/Linux 5.10.237-2.ph4-esx containerd://1.7.25&amp;#43;vmware.2-fips
423df53a268cb03c9c8f7833d1968033 Ready control-plane,master 50m v1.30.10&amp;#43;vmware.1-fips 172.21.3.50 &amp;lt;none&amp;gt; VMware Photon OS/Linux 5.10.237-2.ph4-esx containerd://1.7.25&amp;#43;vmware.2-fips
esxi1.andy.lab Ready agent 4m58s v1.30.5-sph-806add6 172.21.1.2 &amp;lt;none&amp;gt; &amp;lt;unknown&amp;gt; &amp;lt;unknown&amp;gt; &amp;lt;unknown&amp;gt;
esxi2.andy.lab Ready agent 7m v1.30.5-sph-806add6 172.21.1.3 &amp;lt;none&amp;gt; &amp;lt;unknown&amp;gt; &amp;lt;unknown&amp;gt; &amp;lt;unknown&amp;gt;
esxi3.andy.lab Ready agent 5m53s v1.30.5-sph-806add6 172.21.1.4 &amp;lt;none&amp;gt; &amp;lt;unknown&amp;gt; &amp;lt;unknown&amp;gt; &amp;lt;unknown&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;建立 vSphere namespace&lt;span class="hx:absolute hx:-mt-20" id="建立-vsphere-namespace"&gt;&lt;/span&gt;
&lt;a href="#%e5%bb%ba%e7%ab%8b-vsphere-namespace" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1srPvk4-e.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;建立一個 &lt;code&gt;tkg-workloads&lt;/code&gt; namespace&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJAFqay4be.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;新增權限&lt;span class="hx:absolute hx:-mt-20" id="新增權限"&gt;&lt;/span&gt;
&lt;a href="#%e6%96%b0%e5%a2%9e%e6%ac%8a%e9%99%90" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BkqZODkVWx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;設定 &lt;code&gt;administrator@vsphere.local&lt;/code&gt; 為擁有者&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r1REuD14-x.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;新增儲存區&lt;span class="hx:absolute hx:-mt-20" id="新增儲存區"&gt;&lt;/span&gt;
&lt;a href="#%e6%96%b0%e5%a2%9e%e5%84%b2%e5%ad%98%e5%8d%80" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Skh8OP1EWe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SygFOPkE-l.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vSAN Default Storage Policy&lt;/code&gt; 在 sc 裡名稱會叫 &lt;code&gt;vsan-default-storage-policy&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
management-storage-policy-encryption csi.vsphere.vmware.com Delete Immediate true 5d18h
management-storage-policy-regular csi.vsphere.vmware.com Delete Immediate true 5d18h
management-storage-policy-single-node csi.vsphere.vmware.com Delete Immediate true 5d18h
management-storage-policy-stretched-lite csi.vsphere.vmware.com Delete Immediate true 5d18h
management-storage-policy-thin csi.vsphere.vmware.com Delete Immediate true 5d18h
vm-encryption-policy csi.vsphere.vmware.com Delete Immediate true 5d18h
vsan-default-storage-policy csi.vsphere.vmware.com Delete Immediate true 5d18h&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;新增 VM Class&lt;span class="hx:absolute hx:-mt-20" id="新增-vm-class"&gt;&lt;/span&gt;
&lt;a href="#%e6%96%b0%e5%a2%9e-vm-class" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rkbn9PyN-e.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;選用預設定義的 &lt;code&gt;best-effort-medium&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/Bk2zsDyNZe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;也可以建立自定義 VM Class&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJufcn1VZg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryzE53yNZe.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/SJyr921VWe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;建立一個 4core CPU,16G RAM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJ8eoTy4bx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1x-iTJNZg.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;登入 supervisor，使用 VC 帳號登入&lt;span class="hx:absolute hx:-mt-20" id="登入-supervisor使用-vc-帳號登入"&gt;&lt;/span&gt;
&lt;a href="#%e7%99%bb%e5%85%a5-supervisor%e4%bd%bf%e7%94%a8-vc-%e5%b8%b3%e8%99%9f%e7%99%bb%e5%85%a5" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl vsphere login --insecure-skip-tls-verify --server=172.21.2.81
Username: administrator@vsphere.local
Password:
Logged in successfully.
You have access to the following contexts:
10.200.2.31
svc-tkg-domain-c17
svc-velero-domain-c17
tkg-workloads&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;切換 context&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl config use-context tkg-workloads&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;檢視目前 TKG 可使用的版本，這邊會使用 &lt;code&gt;v1.32.3---vmware.1-fips-vkr.2&lt;/code&gt; 版本&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl get tkr
v1.31.11---vmware.3-fips-vkr.1 v1.31.11&amp;#43;vmware.3-fips-vkr.1 True True 5d17h
v1.31.4---vmware.1-fips-vkr.3 v1.31.4&amp;#43;vmware.1-fips-vkr.3 True True 5d17h
v1.31.7---vmware.1-fips-vkr.2 v1.31.7&amp;#43;vmware.1-fips-vkr.2 True True 5d17h
v1.32.0---vmware.6-fips-vkr.2 v1.32.0&amp;#43;vmware.6-fips-vkr.2 True True 5d17h
v1.32.3---vmware.1-fips-vkr.2 v1.32.3&amp;#43;vmware.1-fips-vkr.2 True True 5d17h
v1.32.7---vmware.3-fips-vkr.1 v1.32.7&amp;#43;vmware.3-fips-vkr.1 True True 5d17h
......&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;在 content library 檢查是否已經存在&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HktPtdJEbl.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;如果遇到一直同步失敗，就移除 &lt;code&gt;Kubernetes Service Content Library&lt;/code&gt; 後再重新指定讓他在同步一次&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;離線環境要自行準備 content library &lt;code&gt;https://wp-content.vmware.com/v2/latest/&lt;/code&gt;
可&lt;a
href="https://hackmd.io/@wu-andy/Sy1vx3eEWx"target="_blank" rel="noopener"&gt;參考&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;編輯 cluster.yaml&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ nano my-tkg-cluster.yaml
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TanzuKubernetesCluster
metadata:
name: tkgs-v2-cluster-default
namespace: tkg-workloads
spec:
topology:
controlPlane:
replicas: 1
vmClass: best-effort-medium # 根據自己定義的名稱更換
storageClass: &amp;#39;vsan-default-storage-policy&amp;#39; # 根據自己定義的名稱更換
tkr:
reference:
name: v1.32.3---vmware.1-fips-vkr.2
nodePools:
- name: worker-nodepool-a1
replicas: 1
vmClass: best-effort-medium # 根據自己定義的名稱更換
storageClass: &amp;#39;vsan-default-storage-policy&amp;#39; # 根據自己定義的名稱更換
tkr:
reference:
name: v1.32.3---vmware.1-fips-vkr.2&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;部署 3m1w 架構&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TanzuKubernetesCluster
metadata:
name: my-tkgs-cluster
namespace: tkg-workloads
spec:
topology:
controlPlane:
replicas: 3
vmClass: myvm # 根據自己定義的名稱更換
storageClass: &amp;#39;vsan-default-storage-policy&amp;#39; # 根據自己定義的名稱更換
tkr:
reference:
name: v1.32.3---vmware.1-fips-vkr.2
nodePools:
- name: worker-nodepool-a1
replicas: 1
vmClass: myvm # 根據自己定義的名稱更換
storageClass: &amp;#39;vsan-default-storage-policy&amp;#39; # 根據自己定義的名稱更換
volumes:
- name: containerd
mountPath: /var/lib/containerd
capacity:
storage: 50Gi
tkr:
reference:
name: v1.32.3---vmware.1-fips-vkr.2
settings:
storage:
defaultClass: &amp;#39;vsan-default-storage-policy&amp;#39;
network:
cni:
name: calico
serviceDomain: cluster.local&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;新版使用 cluster yaml 部署 TKG &lt;a
href="https://hackmd.io/@wu-andy/BJl0BkYEZl"target="_blank" rel="noopener"&gt;參考&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;部署 TKG&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl apply -f my-tkg-cluster.yaml&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;檢視 TKG 部署完成&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl -n tkg-workloads get tkc
Warning: run.tanzu.vmware.com/tanzukubernetescluster is deprecated. It is succeeded by cluster.x-k8s.io/cluster. Refer to documentation.
NAME CONTROL PLANE WORKER KUBERNETES RELEASE NAME AGE READY KUBERNETES RELEASE COMPATIBLE UPDATES AVAILABLE
tkgs-v2-cluster-default 1 1 v1.32.7---vmware.3-fips-vkr.1 80m True True&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HyTfX51VWe.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;登入 TKG 叢集&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl vsphere login --server=10.200.2.31 \
--tanzu-kubernetes-cluster-name tkgs-v2-cluster-default \
--tanzu-kubernetes-cluster-namespace tkg-workloads \
--insecure-skip-tls-verify \
-u administrator@vsphere.local&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;檢視叢集狀態是否正常&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl get no
NAME STATUS ROLES AGE VERSION
tkgs-v2-cluster-default-ljb66-8jk74 Ready control-plane 18m v1.32.7&amp;#43;vmware.3-fips
tkgs-v2-cluster-default-worker-nodepool-a1-jh2cz-f65qq-9q5fl Ready &amp;lt;none&amp;gt; 9m1s v1.32.7&amp;#43;vmware.3-fips
$ kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system antrea-agent-9dqxv 2/2 Running 0 9m47s
kube-system antrea-agent-tjkn5 2/2 Running 0 17m
kube-system antrea-controller-798b767987-7hl8h 1/1 Running 0 17m
kube-system coredns-5958c95bcd-hvdrg 1/1 Running 0 18m
kube-system coredns-5958c95bcd-ms2qz 1/1 Running 0 15m
kube-system docker-registry-tkgs-v2-cluster-default-ljb66-8jk74 1/1 Running 0 19m
kube-system docker-registry-tkgs-v2-cluster-default-worker-nodepool-a1-jh2cz-f65qq-9q5fl 1/1 Running 0 9m47s
kube-system etcd-tkgs-v2-cluster-default-ljb66-8jk74 1/1 Running 0 19m
kube-system kube-apiserver-tkgs-v2-cluster-default-ljb66-8jk74 1/1 Running 0 19m
kube-system kube-controller-manager-tkgs-v2-cluster-default-ljb66-8jk74 1/1 Running 1 (17m ago) 19m
kube-system kube-proxy-lt8qd 1/1 Running 0 9m47s
kube-system kube-proxy-rfmtp 1/1 Running 0 18m
kube-system kube-scheduler-tkgs-v2-cluster-default-ljb66-8jk74 1/1 Running 1 (17m ago) 19m
kube-system metrics-server-54d7fc854c-5v4zn 1/1 Running 0 17m
kube-system snapshot-controller-fd845b8f8-fwxr2 1/1 Running 0 18m
secretgen-controller secretgen-controller-5dd46bbcfc-tljsr 1/1 Running 0 17m
tkg-system kapp-controller-7449dcf686-d2hnt 2/2 Running 0 18m
vmware-system-antrea antrea-pre-upgrade-job-klmv4 0/1 Completed 0 18m
vmware-system-auth guest-cluster-auth-svc-vz9zh 1/1 Running 0 16m
vmware-system-cloud-provider guest-cluster-cloud-provider-86466bf878-jp8t2 1/1 Running 1 (17m ago) 18m
vmware-system-csi vsphere-csi-controller-798c4f56b9-gcr69 7/7 Running 0 18m
vmware-system-csi vsphere-csi-node-fqs8t 3/3 Running 4 (15m ago) 18m
vmware-system-csi vsphere-csi-node-r6csv 3/3 Running 0 9m47s&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;troubshooting&lt;span class="hx:absolute hx:-mt-20" id="troubshooting"&gt;&lt;/span&gt;
&lt;a href="#troubshooting" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;進到 VC&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;root@vc [ ~ ]# cd /usr/lib/vmware-wcp/
# 查看 supervisor 密碼
root@vc [ /usr/lib/vmware-wcp ]# ./decryptK8Pwd.py
Read key from file
Connected to PSQL
Cluster: domain-c17:16f96da8-eab0-4cb7-b70c-fdcb7737bb3a
IP: 10.200.0.60
PWD: (WV92wWtP{&amp;#43;7F^~1
------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;登入 supervisor 後查看 pod 是否異常&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;root@422f993f634f1e829e2340fa1d73b0eb [ ~ ]# k -n vmware-system-ako get po
NAME READY STATUS RESTARTS AGE
vmware-system-ako-ako-controller-manager-677ff55d9d-x5k94 1/1 Running 0 53m&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;參考&lt;span class="hx:absolute hx:-mt-20" id="參考"&gt;&lt;/span&gt;
&lt;a href="#%e5%8f%83%e8%80%83" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;a
href="https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/avi-load-balancer/avi-load-balancer-vmware-cloud-foundation/9-0/deploying-vsphere-supervisor-with-vds-and-avi-load-balancer.html"target="_blank" rel="noopener"&gt;https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/avi-load-balancer/avi-load-balancer-vmware-cloud-foundation/9-0/deploying-vsphere-supervisor-with-vds-and-avi-load-balancer.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a
href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vsphere-supervisor-services-and-standalone-components/latest/managing-vsphere-kubernetes-service/running-tkg-service-clusters/deploying-tkg-service-clusters.html"target="_blank" rel="noopener"&gt;https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vsphere-supervisor-services-and-standalone-components/latest/managing-vsphere-kubernetes-service/running-tkg-service-clusters/deploying-tkg-service-clusters.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a
href="https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/avi-load-balancer/avi-load-balancer/22-1/vmware-avi-load-balancer-administration-guide/access-settings/certificates/changing-the-nsx-advanced-load-balancer-controller-s-default-certificate.html"target="_blank" rel="noopener"&gt;https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/avi-load-balancer/avi-load-balancer/22-1/vmware-avi-load-balancer-administration-guide/access-settings/certificates/changing-the-nsx-advanced-load-balancer-controller-s-default-certificate.html&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Set up VMware Aria Operations configuration for third-party Prometheus exporters</title><link>https://blog.kubeantony.com/archive/virtualization/set-up-vmware-aria-operations-configuration-for-third-party-prometheus-exporters/</link><pubDate>Fri, 14 Nov 2025 08:12:42 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/set-up-vmware-aria-operations-configuration-for-third-party-prometheus-exporters/</guid><description>
&lt;p&gt;The steps to set up the configuration file for the first time are as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;點擊左側選單 -&amp;gt; Operations -&amp;gt; Configuration -&amp;gt; Management packs Configuration
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/r18Tg930ex.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;點擊 ADD
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1Trb93Agx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;填入以下內容：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Name: &lt;code&gt;k8s-custom-prom-metric-mappings.xml&lt;/code&gt;
注意，設定檔的名字不能更改，只能設定這名字
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1UYGch0lx.png" alt="image" loading="lazy" /&gt;&lt;/li&gt;
&lt;li&gt;設定值如下：
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;MappingDefinitions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;xmlns:xs=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;http://www.w3.org/2001/XMLSchema&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;CustomMetricConfig&lt;/span&gt; &lt;span class="na"&gt;collectCustomMetrics=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;enableAllLabels=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelNamesToExclude=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;beta_kubernetes_io_os,container_label_annotation_io_kubernetes_container_hash,container_label_annotation_io_kubernetes_container_ports,container_label_annotation_io_kubernetes_container_restartCount,container_label_annotation_io_kubernetes_container_terminationMessagePath,container_label_annotation_io_kubernetes_container_terminationMessagePolicy,container_label_annotation_io_kubernetes_pod_terminationGracePeriod,container_label_annotation_kubeadm_kubernetes_io_etcd_advertise_client_urls,container_label_annotation_kubeadm_kubernetes_io_kube_apiserver_advertise_address_endpoint,container_label_annotation_kubernetes_io_config_hash,container_label_annotation_kubernetes_io_config_seen,container_label_annotation_kubernetes_io_config_source,container_label_app,container_label_app_kubernetes_io_name,container_label_app_kubernetes_io_version,container_label_component,container_label_controller_revision_hash,container_label_description,container_label_io_kubernetes_container_logpath,container_label_io_kubernetes_docker_type,container_label_io_kubernetes_pod_uid,container_label_io_kubernetes_sandbox_id,container_label_k8s_app,container_label_maintainer,container_label_maintainers,container_label_pod_template_generation,container_label_pod_template_hash,container_label_purpose,container_label_tier,container_label_version,container_runtime_version,dockerVersion,goversion,image,image_id,instance,timezone,container_label_io_kubernetes_container_name,container_label_io_kubernetes_pod_name,container_label_io_kubernetes_pod_namespace,name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;maxGroupNames=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/CustomMetricConfig&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;IdentifierMappings&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;NodeIdentifierMapping&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelContainingNodeName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;nodename,node_name,node,kubernetes_node_name&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;NamespaceIdentifierMapping&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelContainingNamespaceName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;namespace,kubernetes_namespace,container_label_io_kubernetes_pod_namespace,source_workload_namespace&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;PodIdentifierMapping&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelContainingPodName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;pod,pod_name,podname,container_label_io_kubernetes_pod_name&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;ContainerIdentifierMapping&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelContaingContainerID=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;id,container_id&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelContainingContainerName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;container_name,container&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;DeploymentIdentifierMapping&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelContainingDeploymentName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;deployment&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;ReplicasetIdentifierMapping&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;labelContainingReplicasetName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;replicaset&amp;#34;&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/IdentifierMappings&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MappingDefinition&lt;/span&gt; &lt;span class="na"&gt;resourceKind=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MetricGroup&lt;/span&gt; &lt;span class="na"&gt;groupName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CXS-PVC-Prometheus&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isInstanced=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;persistentvolumeclaim&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Persistent Volume Claim Size in Bytes&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Bytes&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;kube_persistentvolumeclaim_resource_requests_storage_bytes{namespace=&amp;#34;$NAMESPACE_NAME&amp;#34;}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;persistentvolumeclaim&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MetricGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MetricGroup&lt;/span&gt; &lt;span class="na"&gt;groupName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CXS-ETCD-Prometheus&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isInstanced=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;operation,resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Etcd Request Duration Seconds Sum&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_duration_seconds_sum&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_duration_seconds_sum&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;operation,resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Etcd Request Duration Seconds Count&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_duration_seconds_count&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_duration_seconds_count&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;operation,resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD Average Per Request Latency&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;sec&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;rate(etcd_request_duration_seconds_sum[5m]) / rate(etcd_request_duration_seconds_count[5m])&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_average_request_latency&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD Average Request Latency&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;sec&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;sum(rate(etcd_request_duration_seconds_sum[5m])) / sum(rate(etcd_request_duration_seconds_count[5m]))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_average_request_latency&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;operation,resource&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Etcd Request Duration Seconds bucket&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_duration_seconds_bucket&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_duration_seconds_bucket&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD P95 Request Duration&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;histogram_quantile(0.95, sum by (le) (rate(etcd_request_duration_seconds_bucket[5m])))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_p95_request_duration&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD P99 Request Duration&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;histogram_quantile(0.99, sum by (le) (rate(etcd_request_duration_seconds_bucket[5m])))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_p99_request_duration&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD Request Error Rate (%)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;( sum(rate(etcd_request_errors_total[5m])) / sum(rate(etcd_requests_total[5m])) ) * 100&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_error_rate&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD Request Rate (RPS)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;sum(rate(etcd_requests_total[1m]))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_request_rate&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MetricGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MetricGroup&lt;/span&gt; &lt;span class="na"&gt;groupName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CXS-API-Server-Prometheus&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isInstanced=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;API Server Request Execution Duration (p95)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;histogram_quantile(0.95, sum by (le) (rate(apiserver_flowcontrol_request_execution_seconds_bucket[5m])))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;api_server_request_execution_duration_p95&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;API Server Request Execution Duration (p99)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;histogram_quantile(0.99, sum by (le) (rate(apiserver_flowcontrol_request_execution_seconds_bucket[5m])))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;api_server_request_execution_duration_p99&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;API Server Request Wait Duration (p95)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;histogram_quantile(0.95, sum by (le) (rate(apiserver_flowcontrol_request_wait_duration_seconds_bucket[5m])))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;api_server_request_wait_duration_p95&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;API Server Request Wait Duration (p99)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;histogram_quantile(0.99, sum by (le) (rate(apiserver_flowcontrol_request_wait_duration_seconds_bucket[5m])))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;api_server_request_wait_duration_p99&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;API Server 5xx Error Rate (%)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;(sum(rate(apiserver_flowcontrol_dispatched_requests_total{code=~&amp;#34;5..&amp;#34;}[5m])) or vector(0)) / sum(rate(apiserver_flowcontrol_dispatched_requests_total[5m])) * 100&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;api_server_5xx_error_rate&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;API Server In-flight Requests&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;100 * sum(apiserver_current_inflight_requests) / clamp_min(max_over_time((sum(apiserver_current_inflight_requests))[7d:5m]), 1)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;api_server_in_flight_requests&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;API Server Long-running Requests&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;100 * sum(apiserver_longrunning_requests) / avg_over_time((sum(apiserver_longrunning_requests))[7d:5m])&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;api_server_long_running_requests&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MetricGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MetricGroup&lt;/span&gt; &lt;span class="na"&gt;groupName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CXS-CoreDNS-Prometheus&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isInstanced=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CoreDNS DNS Query P95 Latency&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;histogram_quantile(0.95, sum(rate(coredns_dns_request_duration_seconds_bucket[5m])) by (le))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;coredns-dns-query-p95-latency&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CoreDNS DNS Query Rate&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;sum(rate(coredns_dns_requests_total[1m]))&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;coredns-dns-query-rate&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MetricGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MappingDefinition&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MappingDefinition&lt;/span&gt; &lt;span class="na"&gt;resourceKind=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;container&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MetricGroup&lt;/span&gt; &lt;span class="na"&gt;groupName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CXS-Prometheus&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isInstanced=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Status Running&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;kube_pod_container_status_running&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;kube_pod_container_status_running&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Pod Restart Count&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;increase(kube_pod_container_status_restarts_total[1h])&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;pod-restart-count&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Container Cpu Usage Seconds Total[5m]&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;sec&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;sum(rate(container_cpu_usage_seconds_total{namespace=&amp;#34;$NAMESPACE_NAME&amp;#34;,container=&amp;#34;$CONTAINER_NAME&amp;#34;}[5m])) * 100&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;container_cpu_usage_seconds_total[5m]&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MetricGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MappingDefinition&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MappingDefinition&lt;/span&gt; &lt;span class="na"&gt;resourceKind=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;node&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MetricGroup&lt;/span&gt; &lt;span class="na"&gt;groupName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CXS-filesystem&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isInstanced=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;mountpoint&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Filesystem Avail Space&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Bytes&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;promMetricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;node_filesystem_avail_bytes&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;mountpoint&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Filesystem Size&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Bytes&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;promMetricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;node_filesystem_size_bytes&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MetricGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;MetricGroup&lt;/span&gt; &lt;span class="na"&gt;groupName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;CXS-ETCD_metrics&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;isInstanced=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD Database Used Size&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Bytes&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_mvcc_db_total_size_in_bytes&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_mvcc_db_total_size_in_bytes&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD Database Backend Size&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;Bytes&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_server_quota_backend_bytes&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_server_quota_backend_bytes&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;Metric&lt;/span&gt; &lt;span class="na"&gt;instancedLabelName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;ETCD Database Usage(%)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;metricUnit=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;isRate=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;rule=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;(etcd_mvcc_db_total_size_in_bytes / etcd_server_quota_backend_bytes) * 100&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="na"&gt;ruleName=&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;etcd_server_db_usage&amp;#39;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MetricGroup&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/MappingDefinition&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/MappingDefinitions&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;點擊左下角 SAVE 按鈕
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/H1DiET0y-x.png" alt="image" loading="lazy" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;讓 operations 重新套用設定檔 (1)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1vlOaAyWl.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rJ2D_6Akbe.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/By28VR0y-g.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;讓 operations 重新套用設定檔 (2)
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BJ3vrACk-e.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/rk1oBCC1Ze.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;看 log
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/S1fUIA0yWe.png" alt="image" loading="lazy" /&gt;
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/B1zCUCRk-l.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;確認有收到 Metrics
&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BkJQED4x-e.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;參考文件&lt;span class="hx:absolute hx:-mt-20" id="參考文件"&gt;&lt;/span&gt;
&lt;a href="#%e5%8f%83%e8%80%83%e6%96%87%e4%bb%b6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://techdocs.broadcom.com/us/en/vmware-cis/aria/aria-operations-for-integrations/2-2/vrealize--operations-management-pack--for-pack-for-kubernetes-2-2/monitoring-kubernetes/monitoring-using-prometheus/set-up-vrops-configuration-for-third-party-prometheus-exporters.html"target="_blank" rel="noopener"&gt;Set up VMware Aria Operations configuration for third-party Prometheus exporters - Broadcom Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>認識 VKS Components</title><link>https://blog.kubeantony.com/archive/virtualization/%E8%AA%8D%E8%AD%98-vks-components/</link><pubDate>Thu, 18 Sep 2025 09:55:56 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/%E8%AA%8D%E8%AD%98-vks-components/</guid><description>
&lt;p&gt;VKS（先前稱為 TKG Service 或 TKGS）&lt;strong&gt;為 Kubernetes workload 叢集提供自助式的生命週期管理&lt;/strong&gt;。VKS with Supervisor 已針對 vSphere 環境進行最佳化，並與底層的基礎架構整合，包括 vCenter、ESX、virtual networking 和cloud native storage。&lt;strong&gt;透過 VKS，您可以佈建符合規範的 Kubernetes 叢集&lt;/strong&gt;，並維持與上游的一致性。&lt;/p&gt;
&lt;p&gt;VKS 包含數個與 vSphere Supervisor 整合的元件。&lt;/p&gt;
&lt;h2&gt;1. vSphere Supervisor&lt;span class="hx:absolute hx:-mt-20" id="1-vsphere-supervisor"&gt;&lt;/span&gt;
&lt;a href="#1-vsphere-supervisor" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Supervisor 是內建於 vSphere 的一個關鍵 control plane&lt;/strong&gt;，它將「所需狀態 (desired state)」和單一的一致性 API 直接整合到 hypervisor 中，從而能夠在傳統 workloads 旁邊，以&lt;strong&gt;原生的方式部署與管理&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kubernetes clusters&lt;/li&gt;
&lt;li&gt;declarative Virtual Machines (宣告式虛擬機器)&lt;/li&gt;
&lt;li&gt;vSphere Pod。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它將 vSphere 轉變為一個可擴展的平台，提供一個宣告式的 API 介面，讓使用者能在 vSphere Namespace 所啟用的資源邊界內，&lt;strong&gt;自助式地佈建&lt;/strong&gt;現代基礎架構服務。&lt;/p&gt;
&lt;h3&gt;部署 Supervisor 的兩種方式&lt;span class="hx:absolute hx:-mt-20" id="部署-supervisor-的兩種方式"&gt;&lt;/span&gt;
&lt;a href="#%e9%83%a8%e7%bd%b2-supervisor-%e7%9a%84%e5%85%a9%e7%a8%ae%e6%96%b9%e5%bc%8f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;vSphere Cluster
部署 Supervisor 的典型方式，是將其部署在單一的 vSphere 叢集上。&lt;strong&gt;vSphere 叢集是由多個 ESX 主機組成的集合，並由一個 vCenter 系統進行管理&lt;/strong&gt;。vSphere 叢集必須設定特定的功能以支援 Supervisor，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多個 ESX 主機透過 &lt;strong&gt;vSphere Distributed Switch (VDS)&lt;/strong&gt; 連接。&lt;/li&gt;
&lt;li&gt;已設定 &lt;strong&gt;Shared storage&lt;/strong&gt;，例如 vSAN 或 NFS。&lt;/li&gt;
&lt;li&gt;已啟用 &lt;strong&gt;vSphere HA&lt;/strong&gt; 和 &lt;strong&gt;fully-automated DRS&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;已啟用 &lt;strong&gt;vSphere Lifecycle Manager (vLCM)&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;已設定網路，可使用 &lt;strong&gt;NSX 及其內嵌的 load balancer&lt;/strong&gt;，或使用 &lt;strong&gt;VDS 搭配外部的 load balancer&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;從架構上來說，對於在 Supervisor 上進行的 &lt;strong&gt;VKS 生產環境部署&lt;/strong&gt;，您應該將執行 vCenter 的&lt;strong&gt;管理平面&lt;/strong&gt;主機或叢集，與將要啟用 Supervisor 的&lt;strong&gt;運算平面&lt;/strong&gt;叢集&lt;strong&gt;分開&lt;/strong&gt;。如果您使用一個 vSphere 叢集來託管 vCenter，該叢集不應啟用 DRS。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;vSphere Zone
可以將 vSphere 叢集指派給 vSphere 區域 (Zone)，以便為 Supervisor 提供&lt;strong&gt;高可用性&lt;/strong&gt;與&lt;strong&gt;容錯能力&lt;/strong&gt;。將 Supervisor 跨 vSphere 區域部署，可讓您在特定的可用性區域中佈建 VKS 叢集。&lt;/p&gt;
&lt;p&gt;在單一 vSphere 叢集上部署 Supervisor 時，Supervisor 與 vSphere 叢集之間存在&lt;strong&gt;一對一&lt;/strong&gt;的關係。而在區域化的 Supervisor 部署中，Supervisor 會&lt;strong&gt;橫跨三個 vSphere 叢集&lt;/strong&gt;，為其上的 VKS 叢集提供&lt;strong&gt;高可用性&lt;/strong&gt;與&lt;strong&gt;故障網域 (failure domains)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;vSphere 管理員會建立這三個 vSphere 區域，並將 vSphere 叢集與之關聯。除了 vSphere 叢集本身的要求外，在三個 vSphere 區域上部署 Supervisor 還有一些特殊要求，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;三個 vSphere 區域透過 &lt;strong&gt;vSphere 分散式交換器 (VDS)&lt;/strong&gt; 連接。&lt;/li&gt;
&lt;li&gt;每個 vSphere 區域包含&lt;strong&gt;一個 vSphere 叢集&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;Supervisor 必須部署在&lt;strong&gt;正好 3 個&lt;/strong&gt; vSphere 區域上。&lt;/li&gt;
&lt;li&gt;vSphere 儲存策略 (storage policy) 可用於 vSphere 區域。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;2. vSphere Namespace&lt;span class="hx:absolute hx:-mt-20" id="2-vsphere-namespace"&gt;&lt;/span&gt;
&lt;a href="#2-vsphere-namespace" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;vSphere namespace 是一個&lt;strong&gt;租用邊界 (tenancy boundary)&lt;/strong&gt;，它能讓使用者自助式地取用 3 種 runtime，包括虛擬機器、VKS 叢集、vSphere Pods 以及其他多種基礎架構服務。&lt;/p&gt;
&lt;p&gt;對於每個 vSphere namespace，可以設定 &lt;strong&gt;RBAC&lt;/strong&gt;、&lt;strong&gt;persistent storage&lt;/strong&gt;、&lt;strong&gt;resource limits&lt;/strong&gt;、&lt;strong&gt;images library&lt;/strong&gt; 以及&lt;strong&gt;虛擬機器類別&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;3. VKS&lt;span class="hx:absolute hx:-mt-20" id="3-vks"&gt;&lt;/span&gt;
&lt;a href="#3-vks" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;VKS 是開源 Cluster API 專案的一種實作&lt;/strong&gt;，其定義了一組自訂資源和控制器，用以管理 Kubernetes 叢集的生命週期。&lt;strong&gt;VKS 是 Supervisor 的一個元件&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;VKS 具有三層控制器來管理 VKS 叢集的生命週期，包括 Virtual Machine Service、Cluster API 以及 Cloud Provider Plugin：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VM Operator&lt;/strong&gt;
Virtual Machine Service controller 提供了一種宣告式、Kubernetes 風格的 API，用於管理虛擬機及相關的 vSphere 資源。虛擬機服務引入了「虛擬機類別 (virtual machine class)」 的概念，它代表一種抽象且可重複使用的硬體配置。VKS 使用 Virtual Machine Service 來管理託管workload cluster 的 control plane 和 worker node 虛擬機的生命週期。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cluster API&lt;/strong&gt;
Cluster API controller 提供了宣告式、Kubernetes 風格的 API，用於叢集的建立、設定與管理。Cluster API 的輸入內容包括：
&lt;ul&gt;
&lt;li&gt;描述叢集的資源&lt;/li&gt;
&lt;li&gt;一組描述構成叢集的虛擬機的資源&lt;/li&gt;
&lt;li&gt;一組描述叢集附加元件的資源&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud Provider Plugin&lt;/strong&gt;
VKS 會置備 workload clusters，其中包含與底層 vSphere Namespace 資源整合所需的元件。這些元件包含一個與 Supervisor 整合的 Cloud Provider Plugin。VKS 使用此 Cloud Provider Plugin，將 persistent volumes 的請求傳遞給 Supervisor，而 Supervisor 已與 VMware Cloud Native Storage (CNS) 整合。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. vSphere Kubernetes release&lt;span class="hx:absolute hx:-mt-20" id="4-vsphere-kubernetes-release"&gt;&lt;/span&gt;
&lt;a href="#4-vsphere-kubernetes-release" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;vSphere Kubernetes release (VKr) 提供了由 VMware 簽署並支援的 Kubernetes 軟體發行版和附加元件，供 VKS 叢集使用。&lt;/p&gt;
&lt;p&gt;每個 VKr 皆以虛擬機範本 (OVA 檔案) 的形式發佈。VKS 使用 OVA 格式來建構 VKS 叢集的虛擬機節點。VKr 根據 Kubernetes 的版本控制方式進行版本管理，並包含針對 vSphere 基礎架構的作業系統客製化與最佳化。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Content Library (內容庫)&lt;/strong&gt;
vSphere Kubernetes release 是透過 vCenter content library 提供給 VKS 叢集使用。您可以建立一個訂閱的內容庫，以便在 VMware 發佈新的 VKr 版本時自動接收。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;5. VKS 叢集元件&lt;span class="hx:absolute hx:-mt-20" id="5-vks-叢集元件"&gt;&lt;/span&gt;
&lt;a href="#5-vks-%e5%8f%a2%e9%9b%86%e5%85%83%e4%bb%b6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;在 VKS 叢集中執行的元件為產品的四個領域提供功能：&lt;strong&gt;驗證&lt;/strong&gt;、&lt;strong&gt;儲存&lt;/strong&gt;、&lt;strong&gt;網路&lt;/strong&gt;和&lt;strong&gt;負載平衡&lt;/strong&gt;。&lt;/p&gt;
&lt;h3&gt;5.1. Authentication Webhook&lt;span class="hx:absolute hx:-mt-20" id="51-authentication-webhook"&gt;&lt;/span&gt;
&lt;a href="#51-authentication-webhook" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Authentication Webhook 以 &lt;strong&gt;Pod&lt;/strong&gt; 的形式在叢集內部執行，用以驗證使用者驗證 token。&lt;/li&gt;
&lt;li&gt;VKS 叢集支援兩種驗證方式：使用 &lt;strong&gt;vCenter Single Sign-On&lt;/strong&gt;，以及使用支援 &lt;strong&gt;Open ID Connect (OIDC)&lt;/strong&gt; 協定的外部身分識別提供者。&lt;/li&gt;
&lt;li&gt;VKS 在 &lt;strong&gt;Supervisor&lt;/strong&gt; 和 VKS 叢集節點上執行 &lt;strong&gt;Pinniped OIDC&lt;/strong&gt; 用戶端。為 Supervisor 設定外部 OIDC 提供者會自動設定 Pinniped 元件。&lt;/li&gt;
&lt;li&gt;為了與 Supervisor 進行驗證，VKS 支援 &lt;strong&gt;VCF CLI&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2. Container Storage Interface (CSI)&lt;span class="hx:absolute hx:-mt-20" id="52-container-storage-interface-csi"&gt;&lt;/span&gt;
&lt;a href="#52-container-storage-interface-csi" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;paravirtual CSI plugin 是一個在 VKS 叢集內執行的 Kubernetes Pod，它透過 Supervisor 與 &lt;strong&gt;VMware Cloud Native Storage (CNS)&lt;/strong&gt; 整合。在 VKS 叢集中執行的 Kubernetes Pod 可以掛載三種類型的虛擬磁碟：&lt;strong&gt;臨時磁碟 (ephemeral)&lt;/strong&gt;、&lt;strong&gt;永久性磁碟區 (persistent volume)&lt;/strong&gt; 和&lt;strong&gt;容器映像檔 (container image)&lt;/strong&gt;。
&lt;ul&gt;
&lt;li&gt;暫態儲存 (Transient Storage)
Pod 需要暫態儲存來存放 Kubernetes 物件等臨時性資料，例如日誌、磁碟區和組態對應 (configuration maps)。暫態儲存的生命週期與 Pod 共存。臨時性資料在容器重啟後仍然存在，但一旦 Pod 被刪除，儲存臨時性資料的虛擬磁碟也會隨之消失。&lt;/li&gt;
&lt;li&gt;永久性儲存 (Persistent Storage)
VKS 利用 vSphere 儲存策略框架來定義儲存類別 (storage classes) 和保留永久性磁碟區。VKS 叢集會將永久性磁碟區的請求傳遞給與 VMware Cloud Native Storage (CNS) 整合的 Supervisor。永久性磁碟區可以使用儲存類別在叢集節點上動態置備，也可以手動置備。&lt;/li&gt;
&lt;li&gt;貨櫃映像檔儲存 (Container Image Storage)
Kubernetes Pod 內的 Containers 會使用包含待執行軟體的 image。Pod 會將其 containers 所使用的映像檔掛載為映像檔虛擬磁碟。當 Pod 完成其生命週期時，映像檔虛擬磁碟會從 Pod 卸離。&lt;strong&gt;Kubelet&lt;/strong&gt; 負責從 image registry 中提取 container image，並將其轉換為可在 Pod 內執行的虛擬磁碟。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.3. Container Network Interface (CNI)&lt;span class="hx:absolute hx:-mt-20" id="53-container-network-interface-cni"&gt;&lt;/span&gt;
&lt;a href="#53-container-network-interface-cni" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Container Network Interface plugin 是一種提供 Pod 網路功能的 CNI plugin。&lt;/li&gt;
&lt;li&gt;VKS 叢集支援以下 Container Network Interface (CNI) 選項：&lt;strong&gt;Antrea&lt;/strong&gt; (預設) 和 &lt;strong&gt;Calico&lt;/strong&gt;。此外，VKS 還提供 &lt;strong&gt;Antrea NSX Routed CNI&lt;/strong&gt; 來實作可路由的 Pod 網路。&lt;/li&gt;
&lt;li&gt;下表總結了 VKS 叢集的網路功能及其實作方式：
&lt;img src="https://hackmd.io/_uploads/B18lJ8Ysxx.png" alt="image" loading="lazy" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4. Cloud Provider Implementation&lt;span class="hx:absolute hx:-mt-20" id="54-cloud-provider-implementation"&gt;&lt;/span&gt;
&lt;a href="#54-cloud-provider-implementation" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Cloud Provider Implementation 讓你建立 Kubernetes load balancer 和 ingress services.
&lt;img src="https://hackmd.io/_uploads/S14wy8Fogx.png" alt="image" loading="lazy" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;6. VKS Cluster API&lt;span class="hx:absolute hx:-mt-20" id="6-vks-cluster-api"&gt;&lt;/span&gt;
&lt;a href="#6-vks-cluster-api" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;VKS 提供一個用於配置 (provisioning) 和管理 VKS clusters 生命週期的 API。&lt;code&gt;v1beta1&lt;/code&gt; API 可讓您根據 VMware 提供的預設 &lt;code&gt;ClusterClass&lt;/code&gt;，建立符合規範的 Kubernetes 叢集 (類型為 &lt;code&gt;Cluster&lt;/code&gt;)。&lt;/p&gt;
&lt;h2&gt;7. VKS Cluster Clients&lt;span class="hx:absolute hx:-mt-20" id="7-vks-cluster-clients"&gt;&lt;/span&gt;
&lt;a href="#7-vks-cluster-clients" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Supervisor 上的 VKS 支援多種用戶端介面，用於設定、監控和管理 VKS 叢集。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;vSphere Client&lt;/strong&gt;：用於設定 Supervisor 並監控已部署的 VKS 叢集。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VCF CLI&lt;/strong&gt;：用於透過 vCenter Single Sign-On 向 Supervisor 和 VKS 叢集進行驗證。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;kubectl&lt;/strong&gt;：用於以宣告方式 (declaratively) 設定和管理 VKS 叢集的生命週期，並與 Supervisor 互動。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tanzu Mission Control 網頁介面&lt;/strong&gt;：用於管理 VKS 叢集。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Node Restoration at the VM Level Troubleshooting</title><link>https://blog.kubeantony.com/archive/virtualization/node-restoration-at-the-vm-level-troubleshooting/</link><pubDate>Sun, 29 Jun 2025 08:48:06 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/node-restoration-at-the-vm-level-troubleshooting/</guid><description>
&lt;h3&gt;問題背景&lt;span class="hx:absolute hx:-mt-20" id="問題背景"&gt;&lt;/span&gt;
&lt;a href="#%e5%95%8f%e9%a1%8c%e8%83%8c%e6%99%af" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在 Proxmox UI 對 VM Take Snapshot(Include RAM)，過幾天後，把 VM Restore 回去。&lt;/p&gt;
&lt;p&gt;K8s 環境資訊&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
tkbp-control-plane Ready control-plane 2d22h v1.32.5 172.22.8.1 &amp;lt;none&amp;gt; Debian GNU/Linux 12 (bookworm) 6.8.0-62-generic containerd://2.1.1
tkbp-worker1 Ready taroko-worker 2d22h v1.32.5 172.22.8.2 &amp;lt;none&amp;gt; Debian GNU/Linux 12 (bookworm) 6.8.0-62-generic containerd://2.1.1
tkbp-worker2 Ready taroko-gateway 2d22h v1.32.5 172.22.8.3 &amp;lt;none&amp;gt; Debian GNU/Linux 12 (bookworm) 6.8.0-62-generic containerd://2.1.1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;CNI 使用 Canal 版本 &lt;code&gt;v3.29.2&lt;/code&gt;，flannel 版本 &lt;code&gt;flannel:v0.24.4&lt;/code&gt;，設定資訊&lt;/p&gt;
&lt;h3&gt;問題描述&lt;span class="hx:absolute hx:-mt-20" id="問題描述"&gt;&lt;/span&gt;
&lt;a href="#%e5%95%8f%e9%a1%8c%e6%8f%8f%e8%bf%b0" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;當使用帶有 Canal CNI 的 Kubeadm 叢集時，Pod 卡在 ContainerCreating 無法啟動，如下 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl get pods -n user9
NAME READY STATUS RESTARTS AGE
n1 0/1 ContainerCreating 0 141m&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;去 Describe pod 看到的 Event 資訊如下&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt; Warning FailedCreatePodSandBox 4m52s (x604 over 137m) kubelet (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox &amp;#34;25c71fb49bcd00ce537246d4484b8eedba5277e9504163ec1c18f420d0d6f190&amp;#34;: plugin type=&amp;#34;calico&amp;#34; failed (add): error getting ClusterInformation: connection is unauthorized: Unauthorized&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;解決方案&lt;span class="hx:absolute hx:-mt-20" id="解決方案"&gt;&lt;/span&gt;
&lt;a href="#%e8%a7%a3%e6%b1%ba%e6%96%b9%e6%a1%88" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;kubectl -n kube-system rollout restart ds canal&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行以下命令，二次確認 Canal Pods 皆重啟&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# kubectl -n kube-system get pods -l k8s-app=canal
NAME READY STATUS RESTARTS AGE
canal-4xkb9 2/2 Running 0 52s
canal-b2brv 2/2 Running 0 85s
canal-xqqcm 2/2 Running 0 68s&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Root Cause&lt;span class="hx:absolute hx:-mt-20" id="root-cause"&gt;&lt;/span&gt;
&lt;a href="#root-cause" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;TL;DR: Canal Service Account 的 Token 過期&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Calico 的 &lt;code&gt;calico-kube-controllers&lt;/code&gt; pod 時無法在預定時間內從 Kubernetes API Server 取得 &lt;code&gt;ClusterInformation&lt;/code&gt; 資源，導致初始化失敗&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kubectl -n kube-system logs calico-kube-controllers-6b65fb5f89-77695&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;看到以下錯誤訊息&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;...
[ERROR][1] kube-controllers/client.go 320: Error getting cluster information config ClusterInformation=&amp;#34;default&amp;#34; error=Get &amp;#34;https://10.98.8.1:443/apis/crd.projectcalico.org/v1/clusterinformations/default&amp;#34;: context deadline exceeded
[INFO][1] kube-controllers/client.go 248: Unable to initialize ClusterInformation error=Get &amp;#34;https://10.98.8.1:443/apis/crd.projectcalico.org/v1/clusterinformations/default&amp;#34;: context deadline exceeded
[INFO][1] kube-controllers/client.go 254: Unable to initialize default Tier error=client rate limiter Wait returned an error: context deadline exceeded
[INFO][1] kube-controllers/client.go 260: Unable to initialize adminnetworkpolicy Tier error=client rate limiter Wait returned an error: context deadline exceeded
[ERROR][1] kube-controllers/main.go 256: Failed to verify datastore error=Get &amp;#34;https://10.98.8.1:443/apis/crd.projectcalico.org/v1/clusterinformations/default&amp;#34;: context deadline exceeded
[INFO][1] kube-controllers/main.go 290: Health check is not ready, retrying in 2 seconds with new timeout: 8s
[INFO][1] kube-controllers/resources.go 378: Terminating main client watcher loop
[INFO][1] kube-controllers/resources.go 350: Main client watcher loop
...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;測試使用 calico 的 kubeconfig 連線 API Server&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;kubectl --kubeconfig /etc/cni/net.d/calico-kubeconfig auth whoami&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行結果&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;error: You must be logged in to the server (Unauthorized)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;由以上結果得知問題點在 calico 的 kubeconfig&lt;/p&gt;
&lt;p&gt;執行以下命令，確認 kubeconfig 中 calico user (在 K8s 中是 Service Account) 的 Token 有效期限&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;yq e &amp;#39;.users[0].user.&amp;#34;token&amp;#34;&amp;#39; /etc/cni/net.d/calico-kubeconfig | \
tr -d &amp;#39;\n&amp;#39; | \
cut -d &amp;#39;.&amp;#39; -f 2 | \
base64 -d | \
jq&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;yq 安裝命令 : &lt;code&gt;wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/local/bin/yq &amp;amp;&amp;amp; chmod +x /usr/local/bin/yq&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;執行結果 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;aud&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://kubernetes.default.svc.tkbp.k8s&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;exp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1750924118&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;iat&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1750837718&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;iss&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://kubernetes.default.svc.tkbp.k8s&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;jti&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;378d4f97-c792-4a28-a547-379307b047d7&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;kubernetes.io&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;namespace&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;kube-system&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;serviceaccount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;canal&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;uid&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;a8e73c8a-8064-46a8-bd6c-f2badbddf663&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;nbf&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1750837718&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;sub&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;system:serviceaccount:kube-system:canal&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;iat&lt;/code&gt;：token 的發行時間。
&lt;code&gt;exp&lt;/code&gt;：token 的過期時間。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;將 Token 的時間轉換為人類可閱讀的格式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# date -d @1750924118&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行結果 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Thu Jun 26 07:48:38 UTC 2025&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;成功找到問題點，機器當前的時間已在 6/28，Token 已過期&lt;/p&gt;
&lt;p&gt;查找 Token 發行日期&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# date -d @1750837718
Wed Jun 25 07:48:38 UTC 2025&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;由以上結果得知 Service Account 的 Token 預設有效日期為 1 天&lt;/p&gt;
&lt;p&gt;&lt;code&gt;exec&lt;/code&gt; 進 pod 檢查 SA Token 的命令&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;cat /var/run/secrets/kubernetes.io/serviceaccount/token \
| cut -d &amp;#34;.&amp;#34; -f2 \
| tr -d &amp;#34;\n&amp;#34; \
| awk &amp;#39;{pad=4-(length($0)%4); if(pad&amp;lt;4) printf &amp;#34;%s&amp;#34;, $0 sprintf(&amp;#34;%&amp;#34;pad&amp;#34;s&amp;#34;,&amp;#34;&amp;#34;)}&amp;#39; \
| tr &amp;#39; &amp;#39; &amp;#39;=&amp;#39; \
| base64 -d \
| jq&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行結果 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;{
&amp;#34;aud&amp;#34;: [
&amp;#34;https://kubernetes.default.svc.tkbp.k8s&amp;#34;
],
&amp;#34;exp&amp;#34;: 1782720071,
&amp;#34;iat&amp;#34;: 1751184071,
&amp;#34;iss&amp;#34;: &amp;#34;https://kubernetes.default.svc.tkbp.k8s&amp;#34;,
&amp;#34;jti&amp;#34;: &amp;#34;e64feb22-412e-4065-b9b9-5c45889958a9&amp;#34;,
&amp;#34;kubernetes.io&amp;#34;: {
&amp;#34;namespace&amp;#34;: &amp;#34;taroko&amp;#34;,
&amp;#34;node&amp;#34;: {
&amp;#34;name&amp;#34;: &amp;#34;tkbp-worker2&amp;#34;,
&amp;#34;uid&amp;#34;: &amp;#34;f6595a85-3a61-411b-a186-1c2f6bd32a26&amp;#34;
},
&amp;#34;pod&amp;#34;: {
&amp;#34;name&amp;#34;: &amp;#34;taroko-tkadm-794b86456f-qbwlf&amp;#34;,
&amp;#34;uid&amp;#34;: &amp;#34;e4fd32f5-a9c0-41d1-aa34-b63203ccd3d0&amp;#34;
},
&amp;#34;serviceaccount&amp;#34;: {
&amp;#34;name&amp;#34;: &amp;#34;tkadm&amp;#34;,
&amp;#34;uid&amp;#34;: &amp;#34;21b873fc-1ad0-4442-a66e-acf5fbe78311&amp;#34;
},
&amp;#34;warnafter&amp;#34;: 1751187678
},
&amp;#34;nbf&amp;#34;: 1751184071,
&amp;#34;sub&amp;#34;: &amp;#34;system:serviceaccount:taroko:tkadm&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>VMware Cloud Foundation 5.2 Architect</title><link>https://blog.kubeantony.com/archive/virtualization/vmware-cloud-foundation-5.2-architect/</link><pubDate>Sat, 28 Jun 2025 06:27:50 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/vmware-cloud-foundation-5.2-architect/</guid><description>
&lt;h2&gt;Question 1&lt;span class="hx:absolute hx:-mt-20" id="question-1"&gt;&lt;/span&gt;
&lt;a href="#question-1" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During a requirements gathering workshop, several Business and Technical requirements were captured from the customer. Which requirement is classified as a Technical Requirement?&lt;/p&gt;
&lt;p&gt;在需求蒐集工作坊期間，已從客戶收集了數個業務需求與技術需求。哪一項需求屬於技術需求？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Reduce system processing time for service requests by 25%.
B. The system must support 5,000 concurrent users.
C. Increase customer satisfaction by 15%.
D. Expand market reach to include new geographical regions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
在 VMware Cloud Foundation（VCF）架構中，需求會根據其焦點被分類為業務需求或技術需求。&lt;strong&gt;技術需求會具體說明可衡量的系統能力或限制，並直接影響計算、儲存或網路等基礎架構元件的設計決策&lt;/strong&gt;。相對地，業務需求則著重於 IT 所要支援的組織目標或成果。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;選項 B「系統必須支援 5,000 名同時用戶」就是技術需求，因為它定義了一個具體的系統容量指標（同時用戶數），會直接影響 VCF 設計中的可伸縮性和資源配置，例如決定工作負載域（workload domains）的規模或 NSX 設定。&lt;/li&gt;
&lt;li&gt;選項 A「將服務請求的系統處理時間減少 25%」雖然可能包含技術性，但通常是源自業務目標（效率）的衍生需求，因此在此情境中並不那麼明確屬於技術需求。&lt;/li&gt;
&lt;li&gt;選項 C 和 D 則專注於客戶滿意度和市場覆蓋，顯然屬於業務導向，與組織成果相關，而非系統規格。
參考資料：VMware Cloud Foundation 5.2 Architect Study Guide，第2章：需求蒐集與分析，之「需求分類」一節。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 2&lt;span class="hx:absolute hx:-mt-20" id="question-2"&gt;&lt;/span&gt;
&lt;a href="#question-2" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During a requirement gathering workshop, various Business and Technical requirements were collected from the customer. Which requirement would be categorized as a Business Requirement?&lt;/p&gt;
&lt;p&gt;在需求蒐集工作坊期間，從客戶那裡收集了各種業務及技術需求。哪一項需求會被歸類為業務需求？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The application should be compatible with Windows, macOS, and Linux operating systems.
B. Decrease processing time for service requests by 30%.
C. The system should support 10,000 concurrent users.
D. Data should be encrypted using AES-256 encryption.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
在 VCF 中，業務需求說明了解決方案必須實現的組織目標，通常聚焦於效率、成本或服務改進，而不是具體的技術實作。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;選項 B：「將服務請求的處理時間減少 30%」是業務需求，因為它針對一個能改善客戶服務交付的操作效率目標，以業務的角度可衡量，而不說明系統如何達成此目標。&lt;/li&gt;
&lt;li&gt;選項 A、C 和 D——指定作業系統相容性、用戶容量與加密標準——則是技術需求，因為它們詳細說明了架構師必須在 VCF 元件（如 vSphere 或 NSX）中實作的系統能力或安全機制。區別關鍵在於意圖：B 著重在成果（速度），而其它則定義系統屬性。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;參考：VMware Cloud Foundation 5.2 Architect Study Guide，第2章：需求分類，之「業務 vs. 技術需求」一節。&lt;/p&gt;
&lt;h2&gt;Question 3&lt;span class="hx:absolute hx:-mt-20" id="question-3"&gt;&lt;/span&gt;
&lt;a href="#question-3" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An organization is planning to expand their existing VMware Cloud Foundation (VCF) environment to meet an increased demand for new user-facing applications. The physical host hardware proposed for the expansion is a different model compared to the existing hosts, although it has been confirmed that both sets of hardware are compatible.The expansion needs to provide capacity for management tooling workloads dedicated to the applications, and it has been decided to deploy a new cluster within the management domain to host the workloads. What should the architect include within the logical design for this design decision?&lt;/p&gt;
&lt;p&gt;某組織計畫擴充其現有的 VMware Cloud Foundation (VCF) 環境，以因應對新用戶面向應用程式日益增加的需求。提議用於擴充的實體主機硬體與現有主機採用不同型號，但已證實這兩批硬體相互相容。此擴充需為專屬於這些應用程式的管理工具工作負載提供容量，並決定在管理域內部署一個新叢集以承載這些工作負載。在邏輯設計階段，架構師應該包含哪些內容以說明此設計決策？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The design justification stating that the separate cluster provides flexibility for manageability and connectivity of the workloads
B. The design assumption stating that the separate cluster will provide complete isolation for lifecycle management
C. The design implication stating that the management tooling and the VCF management workloads have different purposes
D. The design qualities affected by the decision listed as Availability and Performance&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
在 VCF 中，邏輯設計會記錄設計決策如何與需求對齊，通常透過合理性說明、假設或影響分析來呈現。在此情境中，為了專門承載管理工具工作負載而在管理域內新增一個叢集，需要在邏輯設計中提供其合理性。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;選項 A 所提供的合理性──「這個獨立叢集可提升可管理性與連通性的靈活性」──與 VCF 的工作負載隔離及運營效率原則相符。它說明了為何做出此決策──提升管理工具的運作彈性──而並未假設情境中並未支持的結果（如選項 B 所提「完全隔離」）或僅列出效果（如選項 C 與 D）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;在 VCF 5.2 的架構中，管理域確實可以用來承載額外的叢集以達成此類目的，而此合理性正直接對應到為管理工具工作負載提供專屬容量的需求。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;參考資料：VMware Cloud Foundation 5.2 Planning and Preparation Guide，第4章：邏輯設計考量，之「設計合理性說明」一節。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 4&lt;span class="hx:absolute hx:-mt-20" id="question-4"&gt;&lt;/span&gt;
&lt;a href="#question-4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a VMware Cloud Foundation (VCF)-based private cloud solution for a customer. The customer has stated the following requirement:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All management tooling must be resilient against a single ESXi host failure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When considering the design decisions for VMware Aria Suite components, what should the Architect document to support the stated requirement?&lt;/p&gt;
&lt;p&gt;一位架構師正在為客戶設計基於 VMware Cloud Foundation (VCF) 的私有雲解決方案。客戶提出以下需求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;所有管理工具必須能夠在單一 ESXi 主機故障時保持彈性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在考量 VMware Aria Suite 元件的設計決策時，架構師應記錄哪些內容來支持此需求？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The solution will deploy the VCF Workload domain in a stretched topology across two sites.
B. The solution will deploy three Aria Automation appliances in a clustered topology.
C. The solution will deploy Aria Suite Lifecycle in a clustered topology.
D. The solution will deploy an external load balancer for Aria Operations Cloud Proxies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
要針對單一 ESXi 主機故障提供韌性，需在 VCF 中為管理元件實作高可用性（HA）。VMware Aria Suite（包括 Aria Automation）透過叢集架構支援 HA。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;選項 B：「在叢集拓撲中部署三部 Aria Automation 裝置」可確保當其中一部主機故障時，其餘兩部仍能維持服務，直接滿足需求。對於 Aria Automation 而言，三節點叢集是實現 HA 的最小配置，可在 VCF 管理域內提供容錯能力。&lt;/li&gt;
&lt;li&gt;選項 A（延伸式工作負載域）與管理工具的 HA 無關；&lt;/li&gt;
&lt;li&gt;選項 C（Aria Suite Lifecycle 叢集化）並非該元件的標準 HA 功能；&lt;/li&gt;
&lt;li&gt;選項 D（為 Operations 代理設置負載平衡器）則是針對不同元件與目的。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 5&lt;span class="hx:absolute hx:-mt-20" id="question-5"&gt;&lt;/span&gt;
&lt;a href="#question-5" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer has a requirement to improve bandwidth and reliability for traffic that is routed through the NSX Edges in VMware Cloud Foundation. What should the architect recommend satisfying this requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure a Load balanced Group for NSX Edges
B. Configure a TEP Group for NSX Edges
C. Configure a TEP Independent Group for NSX Edges
D. Configure a LAG Group for NSX Edges&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 6&lt;span class="hx:absolute hx:-mt-20" id="question-6"&gt;&lt;/span&gt;
&lt;a href="#question-6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A VMware Cloud Foundation multi-AZ (Availability Zone) design mandates that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All management components are centralized.&lt;/li&gt;
&lt;li&gt;The availability SLA must adhere to no less than 99.99%.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What would be the two design decisions that would help satisfy those requirements? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Choose two distant AZs and configure distinct management workload domains.
B. Configure a stretched L2 VLAN for the infrastructure management components between the AZs.
C. Configure a separate VLAN for the infrastructure management components within each AZ.
D. Configure VMware Live Recovery between the selected AZs.
E. Choose two close proximity AZs and configure a stretched management workload domain.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 7&lt;span class="hx:absolute hx:-mt-20" id="question-7"&gt;&lt;/span&gt;
&lt;a href="#question-7" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer has a requirement to use isolated domains in VMware Cloud Foundation but is constrained to a single NSX management pane. What should the architect recommend satisfying this requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. An NSX VPC
B. A Shared NSX Instance
C. NSX Federation
D. A 1:1 NSX Instance&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 8&lt;span class="hx:absolute hx:-mt-20" id="question-8"&gt;&lt;/span&gt;
&lt;a href="#question-8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An Architect is designing a VMware Cloud Foundation (VCF)-based private cloud solution for a customer. During the requirements gathering workshop, the customer stated the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All users must only have access to the solution components to fulfill their defined role.&lt;/li&gt;
&lt;li&gt;All administrative users must be authenticated to a separate approved identity source for administrator accounts only.&lt;/li&gt;
&lt;li&gt;All service users must be authenticated to the central approved identity source.&lt;/li&gt;
&lt;li&gt;All service account passwords must be stored centrally in an approved secrets management platform.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When creating the design, how should the Architect classify all the stated requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Security
B. Manageability
C. Recoverability
D. Availability&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 9&lt;span class="hx:absolute hx:-mt-20" id="question-9"&gt;&lt;/span&gt;
&lt;a href="#question-9" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During a transformation project kick-off meeting, an architect highlights specific areas on which to focus while developing the new conceptual design. Which statement is the business requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The solution must continue to operate even in case of an entire datacenter failure.
B. The project should use the existing storage devices within the data center.
C. Sites must support a network latency of less than 12 ms RTT.
D. There is no budget specifically assigned for disaster recovery.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 10&lt;span class="hx:absolute hx:-mt-20" id="question-10"&gt;&lt;/span&gt;
&lt;a href="#question-10" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;wing requirements were identified in an architecture workshop for a virtual infrastructure design project.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;REQ001: All virtual machines must satisfy the Recovery Point Objective (RPO) of fifteen (15) minutes or less in a disaster recovery (DR) situation&lt;/li&gt;
&lt;li&gt;REQ002: Service level availability must satisfy 99.999% measured yearly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which two test cases will validate these requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Simulate or invoke an outage of the primary datacenter. All virtual machines must be restored within fifteen (15) minutes or less.
B. Simulate or invoke an outage of the primary datacenter. All virtual machines must not lose more than one (1) hour of data prior to the outage.
C. Simulate or invoke an outage of the primary datacenter. All virtual machines must not lose more than fifteen (15) minutes of data prior to the outage.
D. Simulate or invoke an outage of the primary datacenter. All virtual machines must be restored within one (1) hour or less.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, C&lt;/p&gt;
&lt;p&gt;單選題答案 C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 11&lt;span class="hx:absolute hx:-mt-20" id="question-11"&gt;&lt;/span&gt;
&lt;a href="#question-11" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As part of a new VMware Cloud Foundation (VCF) deployment, a customer is planning to implement vSphere IaaS control plane. What component could be installed and enabled to implement the solution?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Aria Automation
B. NSX Edge networking
C. Storage DRS
D. Aria Operations&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 12&lt;span class="hx:absolute hx:-mt-20" id="question-12"&gt;&lt;/span&gt;
&lt;a href="#question-12" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is preparing a VI Workload Domain design with a dedicated NSX instance. The workload domain is planned to grow up to 300 ESXi hosts within the next six months. Which is the minimum NSX Manager form factor that should be recommended by the architect for this VI Workload Domain to support the forecasted growth?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Large
B. Medium
C. Extra Small
D. Small&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 13&lt;span class="hx:absolute hx:-mt-20" id="question-13"&gt;&lt;/span&gt;
&lt;a href="#question-13" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer is deploying VCF at a new datacenter location. They will migrate their workloads from the existing datacenter to the new VCF platform over six months. Both datacenters will run simultaneously for six months during the migration. Which of the following should be a documented risk?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Six months may not be enough time to complete the migration.
B. There will be connectivity between the two locations.
C. Bandwidth between the two locations is sufficient to accommodate the workload migration.
D. Workloads will be powered off during migration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 14&lt;span class="hx:absolute hx:-mt-20" id="question-14"&gt;&lt;/span&gt;
&lt;a href="#question-14" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect had gathered the following requirements and constraints for a VMware Cloud Foundation (VCF) deployment.
Requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User interface (UI) SSL certificates must have a maximum validity of 6 months.&lt;/li&gt;
&lt;li&gt;Have the least possible administrative time to install and renew certificates.&lt;/li&gt;
&lt;li&gt;Each certificate must be created on a per VCF component basis. Constraints:&lt;/li&gt;
&lt;li&gt;Limited administrative skillsets on SSL certificate administration&lt;/li&gt;
&lt;li&gt;Limited operational expenditure budget for SSL certificates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which design decision should be made to satisfy the stated requirement(s) and constraint(s)?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Use wildcard certificates
B. Use and configure integration with a certificate vendor such as DigiCert
C. Disable the use of SSL certificates for user interfaces
D. Use and configure integration with Microsoft Certificate Authority (CA)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 15&lt;span class="hx:absolute hx:-mt-20" id="question-15"&gt;&lt;/span&gt;
&lt;a href="#question-15" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A design requirement has been specified for a new VMware Cloud Foundation (VCF) instance. All managed workload resources must be lifecycle managed with the following criteria:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Development resources must be automatically reclaimed after two weeks&lt;/li&gt;
&lt;li&gt;Production resources will be reviewed yearly for reclamation&lt;/li&gt;
&lt;li&gt;Resources identified for reclamation must allow time for review and possible extension&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What capability will satisfy the requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Aria Suite Lifecycle Content Management
B. Aria Operations Rightsizing Recommendations
C. Aria Automation Lease Policy
D. Aria Automation Project Membership&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 16&lt;span class="hx:absolute hx:-mt-20" id="question-16"&gt;&lt;/span&gt;
&lt;a href="#question-16" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A VMware Cloud Foundation design incorporates the following technical requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All management components must have their login sessions timeout after 2 minutes of inactivity.&lt;/li&gt;
&lt;li&gt;Communication between management components should be limited to required ports only.&lt;/li&gt;
&lt;li&gt;Modifications required by compliancy should not impact the management components’ functionality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What would be the recommendation from a design perspective that would aid in achieving the above requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Consult the vSphere Security Configuration kit
B. Leverage the results of a vulnerability assessment and apply the recommendations
C. Consult the Compliance Kit for VMware Cloud Foundation
D. Apply NSX DFW (Distributed Firewall) to achieve zero-trust&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 17&lt;span class="hx:absolute hx:-mt-20" id="question-17"&gt;&lt;/span&gt;
&lt;a href="#question-17" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a new VMware Cloud Foundation (VCF)-based Private Cloud solution. During the requirements gathering workshop, a network team stakeholder stated that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The solution must ensure that any physical networking component has N + N redundancy.&lt;/li&gt;
&lt;li&gt;The solution must ensure that inter-datacenter network links are diversely routed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When documenting the design, how should the architect classify these requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Recoverability
B. Availability
C. Performance
D. Manageability&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 18&lt;span class="hx:absolute hx:-mt-20" id="question-18"&gt;&lt;/span&gt;
&lt;a href="#question-18" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which Operating System (OS) is not supported by Aria Operations for OS and Application Monitoring?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Windows Server 2012 R2
B. CentOS
C. Windows Server 2012
D. MacOS&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 19&lt;span class="hx:absolute hx:-mt-20" id="question-19"&gt;&lt;/span&gt;
&lt;a href="#question-19" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect has been tasked with reviewing a VMware Cloud Foundation design document. Observe the following requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;REQ01: The solution must provide the ability to request new tenant creation with multi-site and different size options.&lt;/li&gt;
&lt;li&gt;REQ02: The solution must provide the capability to monitor the software-defined data center for capacity and performance.&lt;/li&gt;
&lt;li&gt;REQ03: The solution must provide the ability to generate reports with customized metrics to meet business requests.&lt;/li&gt;
&lt;li&gt;REQ04: The solution should report all capacity planning components (such as current capacity usage monthly and annual usage growth).&lt;/li&gt;
&lt;li&gt;REQ05: The solution must provide the ability to provision new virtual machines from predefined templates.&lt;/li&gt;
&lt;li&gt;REQ06: The solution must provide a self-service catalog for end-users to consume services.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Observe the following design decisions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DD01: There will be a centralized deployment of Aria Operations Management.&lt;/li&gt;
&lt;li&gt;DD02: There will be customized super-metrics based on existing metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on the stated requirements and design decisions, which three requirements does this design decision satisfy? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. REQ05
B. REQ01
C. REQ06
D. REQ04
E. REQ03
F. REQ02&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D, E, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 20&lt;span class="hx:absolute hx:-mt-20" id="question-20"&gt;&lt;/span&gt;
&lt;a href="#question-20" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect has come up with a list of design decisions after a workshop with the business stakeholders. Which design decision describes a logical design decision?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Asynchronous storage replication that satisfies a recovery point objective (RPO) of 15min betweensite A and B
B. Both sites A and B will have a /16 dedicated network subnets.
C. End users will interact with application server hosted in Site A
D. End users should always experience instantaneous application response&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 21&lt;span class="hx:absolute hx:-mt-20" id="question-21"&gt;&lt;/span&gt;
&lt;a href="#question-21" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer defined a requirement for the newly deployed SDDC infrastructure which will host one of the applications responsible for video streaming. Application will run as part of a VI Workload Domain with dedicated NSX instance and virtual machines. Required network throughput was defined as 250 Gb/s. Additionally, the application should provide the lowest possible latency. Which design decision should be recommended by an architect for the NSX Edge deployment?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Deploy 2 NSX Edges using NSX console and add to Edge cluster created in SDDC Manager.
B. Deploy 4 extra large edges using vCenter Server console.
C. Deploy NSX bare-metal Edges and create Edge Cluster using NSX console.
D. Deploy 2 large NSX Edges using SDDC Manager.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 22&lt;span class="hx:absolute hx:-mt-20" id="question-22"&gt;&lt;/span&gt;
&lt;a href="#question-22" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A company will be expanding their existing VCF environment for a new application. The existing VCF environment currently has a management domain and two separate VI workload domains with different hardware profiles. The new application has the following requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The application will use significantly more memory than current workloads today.&lt;/li&gt;
&lt;li&gt;The application will have a limited number of licenses to run on hosts.&lt;/li&gt;
&lt;li&gt;Additional VCF and hardware costs have been approved for the application.&lt;/li&gt;
&lt;li&gt;The application will contain confidential customer information that requires isolation from other workloads.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What design recommendation should the administrator document?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Deploy a new consolidated VCF instance and deploy the new application into it.
B. A new Workload domain with hardware supporting the memory requirements of the new application should be implemented.
C. Enough identical hardware for the management domain should be ordered to accommodate the new application requirements and a new workload domain should be designed for the application.
D. Purchase enough matching hardware to accommodate the new application’s memory requirements and expand an existing cluster to accommodate the new application. Use host affinity rules to manage the new licensing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 23&lt;span class="hx:absolute hx:-mt-20" id="question-23"&gt;&lt;/span&gt;
&lt;a href="#question-23" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is working with an organization on the creation of a new Private Cloud Platform. The organization has provided the following business objectives they wish to achieve with the new platform:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reduce the operating costs associated with running separate areas of hosting capacity and separate/duplicate systems.&lt;/li&gt;
&lt;li&gt;Reduce the risks, time, and effort associated with managing platforms that are out of vendor support.&lt;/li&gt;
&lt;li&gt;Reduce the operating costs associated with Public Cloud usage.&lt;/li&gt;
&lt;li&gt;Reduce the risks associated with having incomplete documentation for application inventory and dependency mappings.
They have grouped these business objectives into a set of use cases:&lt;/li&gt;
&lt;li&gt;Migration - Provide a platform that supports the migration of virtualized workloads from existing platforms.&lt;/li&gt;
&lt;li&gt;Containerization - Provide a platform that supports the deployment of containerized workloads.&lt;/li&gt;
&lt;li&gt;Centralization and Consolidation - Provide a central private cloud platform accessible to all relevant areas of the business.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When considering these objectives and use cases, what should the architect include in the design documentation as a part of the Conceptual Model?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. An assumption that the new platform will co-exist with the existing platforms for a period of time to allow workloads to be migrated in a phased approach
B. A risk that the existing platforms are running Linux Operating Systems that are out of vendor support
C. An assumption that a complete mapping of application dependencies is not available
D. A requirement that the solution will provide the capability to migrate Kubernetes-based workloads from the Public Cloud&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 24&lt;span class="hx:absolute hx:-mt-20" id="question-24"&gt;&lt;/span&gt;
&lt;a href="#question-24" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer has stated the following requirements for Aria Automation within their VCF implementation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Users must have access to specific resources based on their company organization&lt;/li&gt;
&lt;li&gt;Developers must only be able to provision to the Development environment&lt;/li&gt;
&lt;li&gt;Production workloads can be placed on DMZ or Production clusters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What two design decisions must be implemented to satisfy these requirements? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Separate cloud zones will be configured for Development and Production.
B. Users’ access to resources will be controlled by project membership.
C. Users’ access to resources will be controlled by tenant membership.
D. Separate tenants will be configured for Development and Production.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 25&lt;span class="hx:absolute hx:-mt-20" id="question-25"&gt;&lt;/span&gt;
&lt;a href="#question-25" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The following design decisions were made relating to storage design:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A storage policy that would support failure of a single fault domain being the server rack&lt;/li&gt;
&lt;li&gt;Two vSAN OSA disk groups per host each consisting of four 4TB Samsung SSD capacity drives&lt;/li&gt;
&lt;li&gt;Two vSAN OSA disk groups per host each consisting of a single 300GB Intel NVMe cache drive&lt;/li&gt;
&lt;li&gt;Encryption at rest capable disk drives&lt;/li&gt;
&lt;li&gt;Dual 10Gb or faster storage network adapters&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which two design decisions would an architect include within the physical design? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. A storage policy that would support failure of a single fault domain being the server rack
B. Two vSAN OSA disk groups per host each consisting of a single 300GB Intel NVMe cache drive
C. Encryption at rest capable disk drives
D. Dual 10Gb or faster storage network adapters
E. Two vSAN OSA disk groups per host each consisting of four 4TB Samsung SSD capacity drives&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 26&lt;span class="hx:absolute hx:-mt-20" id="question-26"&gt;&lt;/span&gt;
&lt;a href="#question-26" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The following requirements were identified in an architecture workshop for a virtual infrastructure design project.&lt;/p&gt;
&lt;p&gt;REQ001: All virtual machines must meet the Recovery Time Objective (RTO) of twenty-four hours or less in a disaster recovery (DR) scenario.&lt;/p&gt;
&lt;p&gt;Which two test cases will verify these requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Simulate or trigger an outage of the primary datacenter. All virtual machines must be restored within four hours or less.
B. Simulate or trigger an outage of the primary datacenter. All virtual machines must be restored within twenty-four hours or less.
C. Simulate or trigger an outage of the primary datacenter. All virtual machines must not lose more than twenty-four hours of data prior to the outage.
D. Simulate or trigger an outage of the primary datacenter. All virtual machines must not lose more than four hours of data prior to the outage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;單選答案 B
B, C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 27&lt;span class="hx:absolute hx:-mt-20" id="question-27"&gt;&lt;/span&gt;
&lt;a href="#question-27" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During a design discussion, the VMware Cloud Foundation Architect was presented with a requirement to reduce power utilization across all workload domains including management. The architect has suggested to use vSphere Distributed Power Management (DPM) to satisfy this requirement. Which recommendation should the architect provide?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. vSphere DPM for Management Workload Domain (excluding when vSAN is a principal storage).
B. vSphere DPM for VI Workload Domains (excluding when vSAN is a principal storage).
C. vSphere DPM for Management Workload Domain (only when hosted within a Hyperscaler Data Center).
D. vSphere DPM for VI Workload Domains (any principal storage).
E. vSphere DPM for Management Workload Domain (any principal storage).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 28&lt;span class="hx:absolute hx:-mt-20" id="question-28"&gt;&lt;/span&gt;
&lt;a href="#question-28" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During the requirements gathering workshop for a new VMware Cloud Foundation (VCF)-based Private Cloud solution, the customer states that the solution must:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provide sufficient capacity to migrate and run their existing workloads.&lt;/li&gt;
&lt;li&gt;Provide sufficient initial capacity to support a forecasted resource growth of 30% over the next 3 years.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When creating the design document, under which design quality should the architect classify these stated requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Availability
B. Performance
C. Recoverability
D. Manageability&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 29&lt;span class="hx:absolute hx:-mt-20" id="question-29"&gt;&lt;/span&gt;
&lt;a href="#question-29" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During the requirements gathering workshop for a new VMware Cloud Foundation (VCF)-based Private Cloud solution, the customer states that the solution must:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provide a single interface for monitoring all components of the solution.&lt;/li&gt;
&lt;li&gt;Minimize the effort required to maintain the solution to N-1 software versions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When creating the design document, under which design quality should the architect classify these stated requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Manageability
B. Recoverability
C. Availability
D. Performance&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 30&lt;span class="hx:absolute hx:-mt-20" id="question-30"&gt;&lt;/span&gt;
&lt;a href="#question-30" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is planning resources for a new cluster that will be integrated into an existing VI Workload Domain. The cluster’s primary purpose is to support a mission-critical application with five resource-intensive virtual machines. Which design recommendation should the architect provide to prevent resource bottlenecks while meeting the N+1 availability requirement and keeping the overall investment cost minimal?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Establish a cluster with four hosts and implement rules to prioritize resources for the application virtual machines.
B. Establish a cluster with three hosts and exclusively run the application virtual machines on this cluster.
C. Establish a cluster with six hosts and implement automated placement rules to keep the application virtual machines together.
D. Establish a cluster with six hosts and implement automated placement rules to distribute the application virtual machines.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 31&lt;span class="hx:absolute hx:-mt-20" id="question-31"&gt;&lt;/span&gt;
&lt;a href="#question-31" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect has been asked to recommend a solution for a mission-critical application running on a single virtual machine to ensure consistent performance. The virtual machine operates within a vSphere cluster of four ESXi hosts, sharing resources with other production virtual machines. There is no additional capacity available. What should the architect recommend?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Use CPU and memory reservations for the mission-critical virtual machine.
B. Use CPU and memory limits for the mission-critical virtual machine.
C. Create a new vSphere Cluster and migrate the mission-critical virtual machine to it.
D. Add additional ESXi hosts to the current cluster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 32&lt;span class="hx:absolute hx:-mt-20" id="question-32"&gt;&lt;/span&gt;
&lt;a href="#question-32" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a VMware Cloud Foundation (VCF)-based private cloud solution for a customer. The customer has stated the following requirement:&lt;/p&gt;
&lt;p&gt;All components within the solution must be resilient to N+1.&lt;/p&gt;
&lt;p&gt;During discovery, the following information has also been provided:&lt;/p&gt;
&lt;p&gt;Over the next 3 years, due to various applications being retired, no overall growth in resource consumption is expected.&lt;/p&gt;
&lt;p&gt;Following a review of a demand-based capacity report from Aria Operations, the architect has calculated that all of the existing workloads should fit into a 4-node cluster. Once all workloads are migrated, the resources of the cluster will be 90% utilized.&lt;/p&gt;
&lt;p&gt;Given the information provided, a combination of which three design decisions satisfy the requirement? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The solution will set the DRS Automation level setting for the workload cluster to Partially Automated.
B. The solution will deploy a workload cluster consisting of five VMware vSphere hosts.
C. The solution will set the Host failures cluster tolerates for the workload cluster to 1.
D. The solution will deploy a workload cluster consisting of four VMware vSphere hosts.
E. The solution will configure vSphere High Availability (HA) for the workload cluster.
F. The solution will configure vSphere Dynamic Resource Scheduling (DRS) for the workload cluster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, C, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 33&lt;span class="hx:absolute hx:-mt-20" id="question-33"&gt;&lt;/span&gt;
&lt;a href="#question-33" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is updating a design document in preparation for an expansion of their organization&amp;rsquo;s existing VCF environment. Following the completion of a capacity assessment, a new cluster will be deployed to support the hosting of future application deployments. Due to restrictions on the availability of budget for the project, the hardware for the additional cluster has already been procured and there is no additional budget available for future procurements. What should the architect include within the design documentation based on this approach?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. A constraint that the procured hardware must be used due to budget restrictions.
B. A risk that additional hardware is not available for purchase.
C. A requirement that the cluster must be deployed within the existing workload domain.
D. An assumption that the new cluster will provide sufficient capacity for the applications.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 34&lt;span class="hx:absolute hx:-mt-20" id="question-34"&gt;&lt;/span&gt;
&lt;a href="#question-34" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect decided to deploy an NSX Edge cluster using SDDC Manager. These Edges will be used by a Tier-0 Gateway configured with BGP to provide North-South connectivity in the Management Domain. Which statement justifies this design decision?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. NSX Edges deployed via SDDC Manager can be updated separately in the future.
B. VPN service in NSX will be available and configurable via SDDC Manager with NSX Edges deployed using this method.
C. Extra Large form factor is available only when edges are deployed using SDDC Manager.
D. This deployment method will automatically configure dynamic routing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 35&lt;span class="hx:absolute hx:-mt-20" id="question-35"&gt;&lt;/span&gt;
&lt;a href="#question-35" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is working on a design for a new VMware Cloud Foundation (VCF) solution for a retail organization. The organization wants to initially deploy the solution into their headquarters and a number of larger stores. They also plan to pilot the expansion of the deployment into some of their smaller stores. The locations have the following characteristics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Headquarters has a brand-new datacenter and 40Gb network infrastructure.&lt;/li&gt;
&lt;li&gt;Larger stores have secure machine rooms and 10Gb network infrastructure.&lt;/li&gt;
&lt;li&gt;Smaller stores have small secure racks and 100Mb network infrastructure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The organization&amp;rsquo;s cloud administration team have stated a requirement that the design should minimize the number of instances of management tools they need to support without impacting the performance of the workloads consumed by the end users. What three design decisions about the VCF deployment architecture could the architect include in the logical design? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Headquarters will have a private cloud based on the VCF Consolidated Architecture.
B. Larger stores will have a private cloud based on the VCF Consolidated Architecture.
C. Smaller stores will have remote clusters deployed from the HQ VCF instance.
D. Smaller stores will have remote clusters deployed from the geographically closest Larger store VCF instance.
E. Headquarters will have a private cloud based on the VCF Standard Architecture.
F. Larger stores will have workload domains deployed from the HQ VCF instance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C, E, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 36&lt;span class="hx:absolute hx:-mt-20" id="question-36"&gt;&lt;/span&gt;
&lt;a href="#question-36" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is responsible for designing a new VMware Cloud Foundation environment and has identified the following requirements provided by the customer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;REQ01: The database server must support a minimum of 15,000 transactions per second.&lt;/li&gt;
&lt;li&gt;REQ02: The design must satisfy PCI-DSS compliance.&lt;/li&gt;
&lt;li&gt;REQ03: The storage network must have a minimum latency of 10 milliseconds prior to path failover.&lt;/li&gt;
&lt;li&gt;REQ04: The Production environment must be deployed into the primary data center.&lt;/li&gt;
&lt;li&gt;REQ05: The platform must be capable of running 1500 virtual machines across both data centers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What are the two functional requirements? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The design must satisfy PCI-DSS compliance.
B. The database server must support a minimum of 15,000 transactions per second.
C. The storage network must have a minimum latency of 10 milliseconds prior to path failover.
D. The Production environment must be deployed into the primary data center.
E. The platform must be capable of running 1500 virtual machines across both data centers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 37&lt;span class="hx:absolute hx:-mt-20" id="question-37"&gt;&lt;/span&gt;
&lt;a href="#question-37" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During a requirements gathering workshop, several Business and Technical requirements were captured from the customer. Which requirement will be classified as a Business Requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Reduce processing time for service requests by 30%.
B. The system must support 10,000 concurrent users.
C. Data must be encrypted using AES-256 encryption.
D. The application must be compatible with Windows, macOS, and Linux operating systems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 38&lt;span class="hx:absolute hx:-mt-20" id="question-38"&gt;&lt;/span&gt;
&lt;a href="#question-38" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a VMware Cloud Foundation (VCF)-based private cloud solution for a customer that will include two physical locations. The customer has stated the following requirement: All management tooling must be resilient at the component level within a single site. When considering the design decisions for VMware Aria Suite components, what should the Architect document to meet the stated requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The solution will implement an external load balancer for Aria Operations Cloud Proxies.
B. The solution will configure the VCF Workload domain in a stretched topology across two locations.
C. The solution will deploy three Aria Automation appliances in a clustered configuration.
D. The solution will deploy Aria Suite Lifecycle Manager in a high availability configuration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 39&lt;span class="hx:absolute hx:-mt-20" id="question-39"&gt;&lt;/span&gt;
&lt;a href="#question-39" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a VMware Cloud Foundation (VCF)-based Private Cloud solution. During the requirements gathering workshop with the customer stakeholders, the following information was noted:&lt;/p&gt;
&lt;p&gt;In the event of a site-level disaster, the solution must enable all production workloads to be restarted in the secondary site.&lt;/p&gt;
&lt;p&gt;In the event of a host failure, workloads must be restarted in priority order.&lt;/p&gt;
&lt;p&gt;When creating the design documentation, which design quality should be used to classify the stated requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Availability
B. Manageability
C. Performance
D. Recoverability&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 40&lt;span class="hx:absolute hx:-mt-20" id="question-40"&gt;&lt;/span&gt;
&lt;a href="#question-40" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An Architect is responsible for designing a VMware Cloud Foundation (VCF)-based solution for a customer. During the discovery workshop, the following requirements were stated by the customer:&lt;/p&gt;
&lt;p&gt;All applications/workloads designated as business critical have a Recovery Point Objective (RPO) of 1 business hour.&lt;/p&gt;
&lt;p&gt;The infrastructure components of the VCF solution must have a Recovery Time Objective (RTO) of 4 business hours.&lt;/p&gt;
&lt;p&gt;In the context provided, what does the RTO measure?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. It determines the minimum amount of data loss that can be tolerated.
B. It determines the maximum tolerable amount of time allowed before an application/service should be recovered to a usable state.
C. It determines the minimum tolerable amount of time allowed before an application/service should be recovered to a usable state.
D. It determines the maximum amount of data loss that can be tolerated.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 41&lt;span class="hx:absolute hx:-mt-20" id="question-41"&gt;&lt;/span&gt;
&lt;a href="#question-41" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The following requirements were identified in an architecture workshop for a VMware Cloud Foundation (VCF) design project utilizing vSAN for its primary storage solution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;REQ001: Application must maintain a minimum of 1,000 transactions per second (TPS) during business hours excluding disaster recovery (DR) scenarios.&lt;/li&gt;
&lt;li&gt;REQ002: Automatic DRS and HA must be utilized.&lt;/li&gt;
&lt;li&gt;REQ003: Planned maintenance must be executed outside of business hours.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which of the following test scenarios should be added and performed to validate these requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Trigger a Virtual Machine vMotion operation.
B. Trigger a vCenter Server update.
C. Trigger a vSAN disk group evacuation.
D. Trigger a failure of an ESXi host.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 42&lt;span class="hx:absolute hx:-mt-20" id="question-42"&gt;&lt;/span&gt;
&lt;a href="#question-42" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An Architect has been tasked with reviewing a VMware Cloud Foundation design document. Observe the following requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;REQ01: The solution must support the private cloud cybersecurity industry and local standards and controls.&lt;/li&gt;
&lt;li&gt;REQ02: The solution must ensure that the cloud services are transitioned to operation teams.&lt;/li&gt;
&lt;li&gt;REQ03: The solution must provide a self-service portal.&lt;/li&gt;
&lt;li&gt;REQ04: The solution must provide the ability to consume storage based on policies.&lt;/li&gt;
&lt;li&gt;REQ05: The solution should provide the ability to extend networks between different availability zones.&lt;/li&gt;
&lt;li&gt;REQ06: The solution should allow only supported versions of management solutions to be deployed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Observe the following design decisions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DD01: There will be a clustered deployment of Aria Automation.&lt;/li&gt;
&lt;li&gt;DD02: There will be an integration between Aria Automation and multiple geo-located vCenter Servers.&lt;/li&gt;
&lt;li&gt;DD03: Aria Suite Lifecycle will be deployed to provide lifecycle management of Aria Suite components.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Based on the stated requirements, what are the three implications for taking the stated design decisions? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Aria Automation must have network access to all vCenter Servers.
B. Aria Suite Lifecycle should be deployed through the SDDC Manager.
C. An external database is required for Aria Automation clustering.
D. A load balancer is required for Aria Automation high availability.
E. The latency between the Aria Automation Appliances must be less than 2ms.
F. The vCenter Servers must have network access to each other.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 43&lt;span class="hx:absolute hx:-mt-20" id="question-43"&gt;&lt;/span&gt;
&lt;a href="#question-43" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is evaluating a requirement for a Cloud Management self-service solution to offer its users the ability to migrate their own workloads using VMware vMotion. Which component could the architect include in the solution design that will help satisfy the requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Aria Suite Lifecycle Manager
B. Aria Automation Orchestrator
C. Aria Operations
D. Aria Automation Config&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 44&lt;span class="hx:absolute hx:-mt-20" id="question-44"&gt;&lt;/span&gt;
&lt;a href="#question-44" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a VMware Cloud Foundation (VCF)-based private cloud solution for a customer. During the requirements gathering workshop, the customer provided the following requirement:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All SSL certificates should be provided by the company’s certificate authority.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When creating the design, how should the architect classify this stated requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Recoverability
B. Security
C. Availability
D. Manageability&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 45&lt;span class="hx:absolute hx:-mt-20" id="question-45"&gt;&lt;/span&gt;
&lt;a href="#question-45" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A VMware Cloud Foundation multi-AZ (Availability Zone) design requires that:&lt;/p&gt;
&lt;p&gt;All management components remain centralized.
The availability SLA must be no less than 99.99%.&lt;/p&gt;
&lt;p&gt;Which two design decisions would help meet these requirements? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Implement a stretched L2 VLAN for the infrastructure management components between the AZs.
B. Select two distant AZs and configure separate management workload domains.
C. Implement VMware Live Recovery between the selected AZs.
D. Implement separate VLANs for the infrastructure management components within each AZ.
E. Select two close proximity AZs and configure a stretched management workload domain.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Conclusion:
C: VMware Live Recovery enables centralized management with DR failover, supporting 99.99%
availability.
E: A stretched management domain in close AZs ensures centralized, highly available management
with near-zero downtime.
These decisions align with VCF 5.2 multi-AZ best practices.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): Multi-AZ Design and
Stretched Clusters.
VMware Cloud Foundation 5.2 Administration Guide (docs.vmware.com): Management Domain
Resilience.
VMware Live Recovery Documentation (docs.vmware.com): DR for VCF Environments.&lt;/p&gt;
&lt;h2&gt;Question 46&lt;span class="hx:absolute hx:-mt-20" id="question-46"&gt;&lt;/span&gt;
&lt;a href="#question-46" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer has stated the following requirements for Aria Automation within their VCF implementation:&lt;/p&gt;
&lt;p&gt;Users must have access to specific resources based on their company organization.&lt;/p&gt;
&lt;p&gt;Developers must only be able to provision to the Development environment.
Production workloads can be placed on DMZ or Production clusters.&lt;/p&gt;
&lt;p&gt;What two design decisions must be implemented to satisfy these requirements? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Separate tenants will be configured for Development and Production.
B. Users’ access to resources will be controlled by tenant membership.
C. Users’ access to resources will be controlled by project membership.
D. Separate cloud zones will be configured for Development and Production.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
Conclusion:
C: Project membership enforces user access per organization and restricts developers to
Development, meeting the first two requirements.
D: Separate cloud zones isolate Development from Production/DMZ, enabling precise workload
placement per the third requirement.
These decisions align with Aria Automation’s design in VCF 5.2.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): Aria Automation Design and
Cloud Zones.
VMware Aria Automation Administration Guide (docs.vmware.com): Projects and Access Control.
VMware Aria Automation Installation Guide (docs.vmware.com): Tenancy Options in VCF.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 47&lt;span class="hx:absolute hx:-mt-20" id="question-47"&gt;&lt;/span&gt;
&lt;a href="#question-47" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As part of the requirement gathering phase, an architect identified the following requirement for the newly deployed SDDC environment:
Reduce the network latency between two application virtual machines.
To meet the application owner&amp;rsquo;s goal, which design decision should be included in the design?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure a Storage DRS rule to keep the application virtual machines on the same datastore.
B. Configure a DRS rule to keep the application virtual machines on the same ESXi host.
C. Configure a DRS rule to separate the application virtual machines to different ESXi hosts.
D. Configure a Storage DRS rule to keep the application virtual machines on different datastores.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
Conclusion:
Option B is the correct design decision. A DRS affinity rule ensures the VMs share the same host,
minimizing network latency by leveraging intra-host communication, aligning with VCF 5.2 best
practices for latency-sensitive workloads.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): Section on DRS and
Workload Placement.
vSphere Resource Management Guide (docs.vmware.com): DRS Affinity Rules and Network Latency
Considerations.
VMware Cloud Foundation 5.2 Administration Guide (docs.vmware.com): SDDC Design for
Performance&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 48&lt;span class="hx:absolute hx:-mt-20" id="question-48"&gt;&lt;/span&gt;
&lt;a href="#question-48" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During the requirements capture workshop, the customer expressed a plan to use Aria Operations Continuous Availability to satisfy the availability requirements for a monitoring solution. They will validate the feature by deploying a Proof of Concept (POC) into an existing low-capacity lab environment. What is the minimum Aria Operations analytics node size the architect can propose for the POC design?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Small
B. Medium
C. Extra Small
D. Large&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
Conclusion:
The minimum Aria Operations analytics node size for the POC is Small (A), enabling Continuous
Availability in a low-capacity lab while meeting the customer’s validation goal.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): Aria Operations Integration
and HA Features.
VMware Aria Operations Administration Guide (docs.vmware.com): Continuous Availability
Configuration and Requirements.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 49&lt;span class="hx:absolute hx:-mt-20" id="question-49"&gt;&lt;/span&gt;
&lt;a href="#question-49" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which statement defines the purpose of Technical Requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Technical requirements define which goals and objectives can be achieved.
B. Technical requirements define what goals and objectives need to be achieved.
C. Technical requirements define which audience needs to be involved.
D. Technical requirements define how the goals and objectives can be achieved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
Conclusion:
Option D accurately reflects the purpose of Technical Requirements in VCF 5.2, focusing on the
means to achieve business objectives.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): Section on Requirements
Classification.
VMware Cloud Foundation 5.2 Design Guide (docs.vmware.com): Business vs. Technical
Requirements.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 50&lt;span class="hx:absolute hx:-mt-20" id="question-50"&gt;&lt;/span&gt;
&lt;a href="#question-50" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is tasked with updating the design for an existing VMware Cloud Foundation (VCF)
deployment to include four vSAN ESA ready nodes. The existing deployment comprises the following:&lt;/p&gt;
&lt;p&gt;Four homogenous vSAN ESXi ready nodes in the management domain.&lt;/p&gt;
&lt;p&gt;Four homogenous ESXi nodes with iSCSI principal storage in workload domain A.&lt;/p&gt;
&lt;p&gt;What should the architect recommend when including this additional capacity for application workloads?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Commission the four new nodes into the existing workload domain A cluster.
B. Create a new vLCM image workload domain with the four new nodes.
C. Create a new vLCM baseline cluster in the existing workload domain with the four new nodes.
D. Create a new vLCM baseline workload domain with the four new nodes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
Conclusion:
Option D is the best recommendation, creating a new vSAN ESA-based workload domain managed
by vLCM, meeting capacity needs while adhering to VCF 5.2 storage and domain consistency rules.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): Workload Domain Design
and vSAN ESA.
VMware Cloud Foundation 5.2 Administration Guide (docs.vmware.com): vLCM and Cluster
Expansion.
vSAN ESA Planning and Deployment Guide (docs.vmware.com): Storage Requirements.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 51&lt;span class="hx:absolute hx:-mt-20" id="question-51"&gt;&lt;/span&gt;
&lt;a href="#question-51" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The following are a list of design decisions made relating to networking:&lt;/p&gt;
&lt;p&gt;NSX Distributed Firewall (DFW) rule to block all traffic by default.&lt;/p&gt;
&lt;p&gt;Implement overlay network technology to scale across data centers.&lt;/p&gt;
&lt;p&gt;Configure Cisco Discovery Protocol (CDP) - Listen mode on all Distributed Virtual Switches (DVS).&lt;/p&gt;
&lt;p&gt;Use of 2x 64-port Cisco Nexus 9300 for top-of-rack ESXi host switches.
Which design decision would an architect document within the logical design?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Use of 2x 64-port Cisco Nexus 9300 for top-of-rack ESXi host switches.
B. NSX Distributed Firewall (DFW) rule to block all traffic by default.
C. Implement overlay network technology to scale across data centers.
D. Configure Cisco Discovery Protocol (CDP) - Listen mode on all Distributed Virtual Switches (DVS).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
Conclusion:
Option C belongs in the logical design, as it defines a scalable networking architecture critical to VCF
5.2’s multi-data center capabilities.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): Logical Design and Overlay
Networking.
VMware Cloud Foundation 5.2 Networking Guide (docs.vmware.com): NSX and DVS Configuration.
VMware Cloud Foundation 5.2 Design Guide (docs.vmware.com): Logical vs. Physical Design.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 52&lt;span class="hx:absolute hx:-mt-20" id="question-52"&gt;&lt;/span&gt;
&lt;a href="#question-52" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer is implementing a new VMware Cloud Foundation (VCF) instance and has a requirement to deploy Kubernetes-based applications. The customer has no budget for additional licensing.
Which VCF feature must be implemented to satisfy the requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Tanzu Mission Control
B. VCF Edge
C. Aria Automation
D. IaaS control plane&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
Conclusion:
The IaaS control plane (D), leveraging vSphere with Tanzu, meets the requirement for Kubernetes
deployment within VCF 5.2’s existing licensing, satisfying the no-budget constraint.
Reference:
VMware Cloud Foundation 5.2 Architectural Guide (docs.vmware.com): IaaS Control Plane and
vSphere with Tanzu.
VMware Cloud Foundation 5.2 Administration Guide (docs.vmware.com): Workload Management
Features.
VMware Cloud Foundation 5.2 Licensing Guide (docs.vmware.com): Included Components.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 53&lt;span class="hx:absolute hx:-mt-20" id="question-53"&gt;&lt;/span&gt;
&lt;a href="#question-53" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A VMware Cloud Foundation design is focused on IaaS control plane security, where the following requirements are present:&lt;/p&gt;
&lt;p&gt;Support for Kubernetes Network Policies.
Cluster-wide network policy support.
Multiple Kubernetes distribution(s) support.
What would be the design decision that meets the requirements for VMware Container Networking?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. NSX VPCs
B. Antrea
C. Harbor
D. Velero Operators&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 54&lt;span class="hx:absolute hx:-mt-20" id="question-54"&gt;&lt;/span&gt;
&lt;a href="#question-54" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a new VCF solution to meet the following requirements:&lt;/p&gt;
&lt;p&gt;The solution must be deployed across two availability zones.&lt;/p&gt;
&lt;p&gt;The physical hosts must be installed in a single rack per availability zone.&lt;/p&gt;
&lt;p&gt;Workloads running in the cluster must be able to run on hosts in either availability zone.&lt;/p&gt;
&lt;p&gt;The architect has decided that to meet these requirements, the solution will be deployed using the Single Instance - Multiple Availability Zones VCF Topology. When considering the design for the network, what should the architect include in the logical design to meet these requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. A physical network fabric in a leaf-spine configuration with dual Cisco switches within each availability zone.
B. A highly available gateway that supports the failure of an entire availability zone.
C. A 25-GbE port on each Top of Rack (ToR) switch connected to the ESXi host uplinks.
D. A single NSX Overlay Transport Zone for all clusters to carry the traffic between the ESXi hosts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 55&lt;span class="hx:absolute hx:-mt-20" id="question-55"&gt;&lt;/span&gt;
&lt;a href="#question-55" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The following are a set of design decisions related to networking:&lt;/p&gt;
&lt;p&gt;DD01: Set NSX Distributed Firewall (DFW) to block all traffic by default.
DD02: Use VLANs to separate physical network functions.
DD03: Connect the management interface eth0 of each NSX Edge node to VLAN 100.
DD04: Deploy 2x 64-port Cisco Nexus 9300 switches for top-of-rack ESXi host connectivity.
Which design decision would an architect include in the logical design?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. DD04
B. DD01
C. DD03
D. DD02&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 56&lt;span class="hx:absolute hx:-mt-20" id="question-56"&gt;&lt;/span&gt;
&lt;a href="#question-56" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The following requirements were identified in an architecture workshop for a VMware Cloud Foundation (VCF) design project using vSAN as the primary storage solution:&lt;/p&gt;
&lt;p&gt;REQ001: The application must maintain a minimum of 1,000 transactions per second (TPS) during business hours, excluding disaster recovery (DR) scenarios.
REQ002: Automatic DRS and HA must be utilized.
REQ003: Planned maintenance must be performed outside of business hours.
While monitoring the TPS of the application, which of the following is NOT a valid test case to validate these requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Trigger a vSphere High Availability (HA) failover activity.
B. Trigger a vSAN disk group cache drive failure.
C. Trigger fully automatic DRS vMotion activity.
D. Trigger a vCenter upgrade workflow.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 57&lt;span class="hx:absolute hx:-mt-20" id="question-57"&gt;&lt;/span&gt;
&lt;a href="#question-57" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer has a database cluster running in a VCF cluster with the following characteristics:&lt;/p&gt;
&lt;p&gt;40/60 Read/Write ratio.&lt;/p&gt;
&lt;p&gt;High IOPS requirement.&lt;/p&gt;
&lt;p&gt;No contention on an all-flash OSA vSAN cluster in a VI Workload Domain.
Which two vSAN configuration options should be configured for best performance? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Flash Read Cache Reservation
B. RAID 1
C. Deduplication and Compression disabled
D. Deduplication and Compression enabled
E. RAID 5&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B,C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 58&lt;span class="hx:absolute hx:-mt-20" id="question-58"&gt;&lt;/span&gt;
&lt;a href="#question-58" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;which three elements should be considered when calculating usable resources? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. vSAN space efficiency feature enablement
B. VM swap file
C. Disk capacity per VM
D. Number of 10GbE NICs per VM
E. CPU/Cores per VM
F. Number of VMs&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A,B,E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 59&lt;span class="hx:absolute hx:-mt-20" id="question-59"&gt;&lt;/span&gt;
&lt;a href="#question-59" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is working with a service provider to design a VMware Cloud Foundation (VCF) solution that is required to host workloads for multiple tenants. The following requirements were gathered:&lt;/p&gt;
&lt;p&gt;Each tenant requires full access to their own vCenter.&lt;/p&gt;
&lt;p&gt;Each tenant will utilize and manage their own identity provider for access.&lt;/p&gt;
&lt;p&gt;A total of 28 tenants are expected to be onboarded.&lt;/p&gt;
&lt;p&gt;Each tenant will have their own independent VCF lifecycle maintenance schedule.&lt;/p&gt;
&lt;p&gt;Which VCF architecture option will meet these requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. A single VCF instance consolidated architecture model with 28 tenant clusters
B. A single VCF instance standard architecture model and 28 isolated SSO domains
C. Two VCF instances consolidated architecture model with 14 tenant clusters each
D. Two VCF instances with standard architecture model and 14 isolated SSO domains each&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 60&lt;span class="hx:absolute hx:-mt-20" id="question-60"&gt;&lt;/span&gt;
&lt;a href="#question-60" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a VMware Cloud Foundation (VCF)-based solution for a customer with the following requirement:&lt;/p&gt;
&lt;p&gt;The solution must not have any single points of failure.&lt;/p&gt;
&lt;p&gt;To meet this requirement, the architect has decided to incorporate physical NIC teaming for all vSphere host servers. When documenting this design decision, which consideration should the architect make?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Embedded NICs should be avoided for NIC teaming.
B. Only 10GbE NICs should be utilized for NIC teaming.
C. Each NIC team must comprise NICs from the same physical NIC card.
D. Each NIC team must comprise NICs from different physical NIC cards.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 61&lt;span class="hx:absolute hx:-mt-20" id="question-61"&gt;&lt;/span&gt;
&lt;a href="#question-61" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is responsible for updating the design of a VMware Cloud Foundation solution for a pharmaceuticals customer to include the creation of a new cluster that will be used for a new research project. The applications that will be deployed as part of the new project will include a number of applications that are latency-sensitive. The customer has recently completed a right-sizing exercise using VMware Aria Operations that has resulted in a number of ESXi hosts becoming available for use. There is no additional budget for purchasing hardware. Each ESXi host is configured with:&lt;/p&gt;
&lt;p&gt;2 CPU sockets (each with 10 cores)&lt;/p&gt;
&lt;p&gt;512 GB RAM divided evenly between sockets&lt;/p&gt;
&lt;p&gt;The architect has made the following design decisions with regard to the logical workload design:&lt;/p&gt;
&lt;p&gt;The maximum supported number of vCPUs per virtual machine size will be 10.&lt;/p&gt;
&lt;p&gt;The maximum supported amount of RAM (GB) per virtual machine will be 256.&lt;/p&gt;
&lt;p&gt;What should the architect record as the justification for these decisions in the design document?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The maximum resource configuration will ensure efficient use of RAM by sharing memory pages between virtual machines.
B. The maximum resource configuration will ensure the virtual machines will cross NUMA node boundaries.
C. The maximum resource configuration will ensure the virtual machines will adhere to a single NUMA node boundary.
D. The maximum resource configuration will ensure each virtual machine will exclusively consume a whole CPU socket.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 62&lt;span class="hx:absolute hx:-mt-20" id="question-62"&gt;&lt;/span&gt;
&lt;a href="#question-62" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer is designing a new VMware Cloud Foundation stretched cluster using L2 non-uniform connectivity, where due to a past incident an attacker was able to inject some false routes into their dynamic global routing table. What design decision can be taken to prevent this when configuring the Tier-0 gateway?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. OSPF MD5 authentication
B. Gateway Firewall with ECMP
C. Implicit deny for any traffic
D. BGP peer password&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 63&lt;span class="hx:absolute hx:-mt-20" id="question-63"&gt;&lt;/span&gt;
&lt;a href="#question-63" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Due to limited budget and hardware, an administrator is constrained to a VMware Cloud Foundation (VCF) consolidated architecture of seven ESXi hosts in a single cluster. An application that consists of two virtual machines hosted on this infrastructure requires minimal disruption to storage I/O during business hours. Which two options would be most effective in mitigating this risk without reducing availability? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Apply 100% CPU and memory reservations on these virtual machines
B. Implement FTT=1 Mirror for this application virtual machine
C. Replace the vSAN shared storage exclusively with an All-Flash Fibre Channel shared storage solution
D. Perform all host maintenance operations outside of business hours
E. Enable fully automatic Distributed Resource Scheduling (DRS) policies on the cluster&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B,D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 64&lt;span class="hx:absolute hx:-mt-20" id="question-64"&gt;&lt;/span&gt;
&lt;a href="#question-64" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A VMware Cloud Foundation multi-AZ (Availability Zone) design mandates that:&lt;/p&gt;
&lt;p&gt;All availability zones must operate independently of each other.
The availability SLA must adhere to no less than 99.9%.
What would be the three design decisions that would help satisfy those requirements? (Choosethree.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure array-based replication between the selected AZ(s) for the management domain
B. Make sure all configuration backups are replicated between the selected AZ(s)
C. Make sure the recovery VLAN for the infrastructure management components has access to both AZ(s)
D. Choose two distant AZ(s) and consider each AZ the DR for the other
E. Choose two close proximity AZ(s) and configure a stretched management workload domain
F. Configure a non-routable separate recovery VLAN for the infrastructure management components within each AZ&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A,B,F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 65&lt;span class="hx:absolute hx:-mt-20" id="question-65"&gt;&lt;/span&gt;
&lt;a href="#question-65" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is documenting the design for a new VMware Cloud Foundation solution. Which statement would be an example of a conceptual model for this solution?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. A detailed description of the VMware Cloud Foundation solution configuration, including host names and IP addresses
B. A detailed diagram of the interfaces of the NSX Edge components within the management domain in the data center
C. A high-level diagram of the VMware Cloud Foundation solution showing the workload domains with the number of physical hosts per cluster
D. A high-level overview of the solution, including risks, assumptions, and constraints&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 66&lt;span class="hx:absolute hx:-mt-20" id="question-66"&gt;&lt;/span&gt;
&lt;a href="#question-66" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;When sizing a VMware Cloud Foundation VI Workload Domain, which three factors should be considered when calculating usable compute capacity? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. NSX
B. vSphere HA
C. vSAN
D. NIOC
E. Storage DRS
F. Core Dumps&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B,C,D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 67&lt;span class="hx:absolute hx:-mt-20" id="question-67"&gt;&lt;/span&gt;
&lt;a href="#question-67" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which statement defines the purpose of Business Requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Business requirements define which audience needs to be involved.
B. Business requirements define how the goals and objectives can be achieved.
C. Business requirements define which goals and objectives can be achieved.
D. Business requirements define what goals and objectives need to be achieved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 68&lt;span class="hx:absolute hx:-mt-20" id="question-68"&gt;&lt;/span&gt;
&lt;a href="#question-68" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During a security-focused design workshop for a new VMware Cloud Foundation (VCF) solution, a key stakeholder described the current and potential future approach to user authentication within their organization. The following information was captured by an architect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All users within the organization currently have Active Directory-backed user accounts.&lt;/li&gt;
&lt;li&gt;A separate project is planned to evaluate the use of different 3rd-party identity solutions to enforce&lt;/li&gt;
&lt;li&gt;Multi-Factor Authentication (MFA) on all user accounts.&lt;/li&gt;
&lt;li&gt;The MFA project will only provide a recommendation on which identity solution the organization should implement.&lt;/li&gt;
&lt;li&gt;The MFA project will need to request budget for any licenses that need to be procured for the recommended identity solution.&lt;/li&gt;
&lt;li&gt;The new VCF environment may be deployed before the MFA project has completed and therefore must be able to integrate with both the current and any proposed future identity solutions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which TWO items should the architect include in their design documentation? (Choose TWO.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. An assumption that the new 3rd-party identity solution will be compatible with VCF
B. An assumption that the MFA project will not receive budget to implement a new 3rd-party identity solution
C. A requirement that VCF will integrate only with the new 3rd-party identity solution
D. A risk that the new 3rd-party identity solution may not be compatible with Active Directory
E. A risk that the new 3rd-party identity solution may not be compatible with VCF&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C,E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 69&lt;span class="hx:absolute hx:-mt-20" id="question-69"&gt;&lt;/span&gt;
&lt;a href="#question-69" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As a VMware Cloud Foundation architect, you are provided with the following requirements:&lt;/p&gt;
&lt;p&gt;All administrative access to the cloud management components must be trusted.&lt;/p&gt;
&lt;p&gt;All cloud management components’ communications must be encrypted.&lt;/p&gt;
&lt;p&gt;Enhancement of lifecycle management should always be considered.&lt;/p&gt;
&lt;p&gt;Which design decision fulfills the requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Integrate the SDDC Manager with a supported 3rd-party certificate authority (CA).
B. Integrate the SDDC Manager with the vCenter Server in VMCA mode.
C. Write a PowerCLI script to run on all virtual appliances and force a redirection on port 443.
D. Write an Aria Orchestrator Workflow to change the ESXi hosts’ certificates in bulk.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 70&lt;span class="hx:absolute hx:-mt-20" id="question-70"&gt;&lt;/span&gt;
&lt;a href="#question-70" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is documenting the design for a new VMware Cloud Foundation solution. During workshops with key stakeholders, the architect discovered that some of the workloads that will be hosted within the Workload Domains will need to be connected to an existing Fibre Channel storage array. How should the architect document this information within the design?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. As an assumption
B. As a constraint
C. As a design decision
D. As a business requirement&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 71&lt;span class="hx:absolute hx:-mt-20" id="question-71"&gt;&lt;/span&gt;
&lt;a href="#question-71" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;During a requirement capture workshop, the customer expressed a plan to use Aria Operations Continuous Availability. The customer identified two datacenters that meet the network requirements to support Continuous Availability; however, they are unsure which of the following datacenters would be suitable for the Witness Node.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ryg6NP2fxx.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Which datacenter meets the minimum network requirements for the Witness Node?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Datacenter A
B. Datacenter B
C. Datacenter C
D. Datacenter D&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 72&lt;span class="hx:absolute hx:-mt-20" id="question-72"&gt;&lt;/span&gt;
&lt;a href="#question-72" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As part of a VMware Cloud Foundation (VCF) design, an architect is responsible for planning for the migration of existing workloads using HCX to a new VCF environment. Which two prerequisites would the architect require to complete the objective? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Extended IP spaces for all moving workloads.
B. DRS enabled within the VCF instance.
C. Service accounts for the applicable appliances.
D. NSX Federation implemented between the VCF instances.
E. Active Directory configured as an authentication source.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;覺得正確答案只有C，
硬要選第二個 B or E&lt;/p&gt;
&lt;p&gt;C,E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 73&lt;span class="hx:absolute hx:-mt-20" id="question-73"&gt;&lt;/span&gt;
&lt;a href="#question-73" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a new VMware Cloud Foundation (VCF) solution. During the discovery workshops, the customer explained that the solution will initially be used to host a single business application and some internal management tooling. The customer provided the following background information:&lt;/p&gt;
&lt;p&gt;The business application consists of two virtual machines.&lt;/p&gt;
&lt;p&gt;The business application is sensitive to changes in its storage I/O.&lt;/p&gt;
&lt;p&gt;The business application must be available during the company’s business hours of 9 AM - 5 PM on weekdays.&lt;/p&gt;
&lt;p&gt;The architect has made the following design decisions in response to the customer’s requirements and the additional information provided during discovery:&lt;/p&gt;
&lt;p&gt;The solution will use the VCF consolidated architecture model.&lt;/p&gt;
&lt;p&gt;A single cluster will be created, consisting of six ESXi hosts.&lt;/p&gt;
&lt;p&gt;Which design decision should the architect include in the design to mitigate the risk of impacting the business application?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Use resource pools to apply CPU and memory reservations on the business application virtual machines.
B. Implement FTT=6 for the business application virtual machines.
C. Perform ESXi host maintenance activities outside of the stated business hours.
D. Replace the vSAN shared storage exclusively with an All-Flash Fibre Channel shared storage solution.
E. Use Anti-Affinity Distributed Resource Scheduler (DRS) rules on the business application virtual machines.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 74&lt;span class="hx:absolute hx:-mt-20" id="question-74"&gt;&lt;/span&gt;
&lt;a href="#question-74" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is designing a new VMware Cloud Foundation instance that has to support management, VDI, DB, and general workloads. The DB workloads will stay the same in terms of resources over time. However, the general workloads and VDI environments are expected to grow over the next 3 years. What should the architect include in the documentation?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. An assumption that the DB workload resource requirements will remain static.
B. A constraint of including the management, DB, and VDI environments.
C. A requirement consisting of the growth of the general workloads and VDI environment.
D. A risk that the VCF instance may not have enough capacity for growth&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 75&lt;span class="hx:absolute hx:-mt-20" id="question-75"&gt;&lt;/span&gt;
&lt;a href="#question-75" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is sizing the workloads that will run in a new VMware Cloud Foundation (VCF) Management Domain. The customer has a requirement to use Aria Operations to provide effective monitoring of the new VCF solution. What is the minimum Aria Operations Analytics node size requirement when Aria Suite Lifecycle is in VCF-aware mode?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Small
B. Extra Large
C. Medium
D. Large&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 76&lt;span class="hx:absolute hx:-mt-20" id="question-76"&gt;&lt;/span&gt;
&lt;a href="#question-76" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect has been tasked with reviewing a VMware Cloud Foundation design document. Observe the following requirements:&lt;/p&gt;
&lt;p&gt;REQ01: The solution must support the private cloud cybersecurity industry and local standards and controls.&lt;/p&gt;
&lt;p&gt;REQ02: The solution must ensure that the cloud services are transitioned to operation teams.&lt;/p&gt;
&lt;p&gt;REQ03: The solution must provide a self-service portal.&lt;/p&gt;
&lt;p&gt;REQ04: The solution must provide the ability to consume storage based on policies.&lt;/p&gt;
&lt;p&gt;REQ05: The solution should provide the ability to extend networks between different availability zones.&lt;/p&gt;
&lt;p&gt;Observe the following design decisions:&lt;/p&gt;
&lt;p&gt;DD01: There will be a clustered deployment of Aria Automation.&lt;/p&gt;
&lt;p&gt;DD02: There will be an integration between Aria Automation and multiple geo-located vCenter Servers.&lt;/p&gt;
&lt;p&gt;Based on the information provided, which two requirements satisfy the stated design decisions?(Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. REQ01
B. REQ02
C. REQ03
D. REQ04
E. REQ05&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C,E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 77&lt;span class="hx:absolute hx:-mt-20" id="question-77"&gt;&lt;/span&gt;
&lt;a href="#question-77" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is documenting the design for a new VMware Cloud Foundation-based solution.
Following the requirements gathering workshops held with customer stakeholders, the architect has made the following assumptions:&lt;/p&gt;
&lt;p&gt;The customer will provide sufficient licensing for the scale of the new solution.&lt;/p&gt;
&lt;p&gt;The existing storage array that is to be used for the user workloads has sufficient capacity to meet the demands of the new solution.&lt;/p&gt;
&lt;p&gt;The data center offers sufficient power, cooling, and rack space for the physical hosts required by the new solution.&lt;/p&gt;
&lt;p&gt;The physical network infrastructure within the data center will not exceed the maximum latency requirements of the new solution.&lt;/p&gt;
&lt;p&gt;Which two risks must the architect include as a part of the design document because of these
assumptions? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The physical network infrastructure may not provide sufficient bandwidth to support the user workloads.
B. The customer may not have sufficient data center power, cooling, and physical rack space available.
C. The customer may not have licensing that covers all of the physical cores the design requires.
D. The assumptions may not be approved by a majority of the customer stakeholders before the solution is deployed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A,C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 78&lt;span class="hx:absolute hx:-mt-20" id="question-78"&gt;&lt;/span&gt;
&lt;a href="#question-78" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a VMware Cloud Foundation (VCF)-based Private Cloud solution. During the requirements gathering workshop with customer stakeholders, the following information was captured:&lt;/p&gt;
&lt;p&gt;The solution must be capable of deploying 50 concurrent workloads.&lt;/p&gt;
&lt;p&gt;The solution must ensure that once submitted, each service does not take longer than 6 hours to provision.&lt;/p&gt;
&lt;p&gt;When creating the design documentation, which design quality should be used to classify the stated requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Availability
B. Recoverability
C. Performance
D. Manageability&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 79&lt;span class="hx:absolute hx:-mt-20" id="question-79"&gt;&lt;/span&gt;
&lt;a href="#question-79" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is collaborating with a client to design a VMware Cloud Foundation (VCF) solution required for a highly secure infrastructure project that must remain isolated from all other virtual infrastructures. The client has already acquired six high-density vSAN-ready nodes, and there is no budget to add additional nodes throughout the expected lifespan of this project. Assuming capacity is appropriately sized, which VCF architecture model and topology should the architect suggest?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Single Instance - Multiple Availability Zone Standard architecture model
B. Single Instance Consolidated architecture model
C. Single Instance - Single Availability Zone Standard architecture model
D. Multiple Instance - Single Availability Zone Standard architecture model&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 80&lt;span class="hx:absolute hx:-mt-20" id="question-80"&gt;&lt;/span&gt;
&lt;a href="#question-80" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is tasked with designing a new VMware Cloud Foundation environment and has identified the following customer-provided requirements:&lt;/p&gt;
&lt;p&gt;REQ01: The application server must handle at least 30,000 transactions per second.&lt;/p&gt;
&lt;p&gt;REQ02: The design must meet ISO 27001 information security standards.&lt;/p&gt;
&lt;p&gt;REQ03: The storage network should maintain a minimum latency of 12 milliseconds before path failover.&lt;/p&gt;
&lt;p&gt;REQ04: The staging environment should utilize a secondary third-party data center.&lt;/p&gt;
&lt;p&gt;REQ05: Planned maintenance must be performed outside the hours of 8 AM to 8 PM GMT.&lt;/p&gt;
&lt;p&gt;What are the two functional requirements? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. REQ01
B. REQ02
C. REQ03
D. REQ04
E. REQ05&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A,D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 81&lt;span class="hx:absolute hx:-mt-20" id="question-81"&gt;&lt;/span&gt;
&lt;a href="#question-81" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is working on higher-scale NSX Grouping and security design requirements for Management and VI Workload Domains in VMware Cloud Foundation. Which NSX Manager appliance size will be considered for use?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Extra Large
B. Large
C. Medium
D. Small&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 82&lt;span class="hx:absolute hx:-mt-20" id="question-82"&gt;&lt;/span&gt;
&lt;a href="#question-82" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is planning the deployment of Aria components in a VMware Cloud Foundation environment using SDDC Manager and must prepare a logical diagram with networking connections for particular Aria products. Which are two valid Application Virtual Networks for Aria Operations deployment using SDDC Manager? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Region-A - Overlay backed segment
B. Region-A - VLAN backed segment
C. X-Region - VLAN backed segment
D. X-Region - Overlay backed segment&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 83&lt;span class="hx:absolute hx:-mt-20" id="question-83"&gt;&lt;/span&gt;
&lt;a href="#question-83" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A VMware Cloud Foundation (VCF) platform has been commissioned, and lines of business are requesting approved virtual machine applications via the platform’s integrated automation portal.&lt;/p&gt;
&lt;p&gt;The platform was built following all provided company security guidelines and has been assessed against Sarbanes-Oxley Act of 2002 (SOX) regulations. The platform has the following characteristics:&lt;/p&gt;
&lt;p&gt;One Management Domain with a single cluster, supporting all management services with all network traffic handled by a single Distributed Virtual Switch (DVS).&lt;/p&gt;
&lt;p&gt;A dedicated VI Workload Domain with a single cluster for all line of business applications.&lt;/p&gt;
&lt;p&gt;A dedicated VI Workload Domain with a single cluster for Virtual Desktop Infrastructure (VDI).&lt;/p&gt;
&lt;p&gt;Aria Operations is being used to monitor all clusters.&lt;/p&gt;
&lt;p&gt;VI Workload Domains are using a shared NSX instance.&lt;/p&gt;
&lt;p&gt;An application owner has asked for approval to install a new service that must be protected as per the Payment Card Industry (PCI) Data Security Standard, which is going to be verified by a third-party organization. To support the new service, which additional non-functional requirement should be added to the design?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The VCF platform and all PCI application virtual machines must be monitored using the Aria Operations Compliance Pack for Payment Card Industry.
B. The VCF platform and all PCI application virtual machines must be assessed for SOX compliance.
C. The VCF platform and all PCI application virtual machine network traffic must be routed via NSX.
D. The VCF platform and all PCI application virtual machines must be assessed against Payment Card Industry Data Security Standard (PCI DSS) compliance.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 84&lt;span class="hx:absolute hx:-mt-20" id="question-84"&gt;&lt;/span&gt;
&lt;a href="#question-84" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is working on a leaf-spine design requirement for NSX Federation in VMware Cloud Foundation. Which recommendation should the architect document?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Use a physical network that is configured for EIGRP routing adjacency.
B. Layer 3 device that supports OSPF.
C. Ensure that the latency between VMware Cloud Foundation instances that are connected in an NSX Federation is less than 1500 ms.
D. Jumbo frames on the components of the physical network between the VMware Cloud Foundation instances.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 85&lt;span class="hx:absolute hx:-mt-20" id="question-85"&gt;&lt;/span&gt;
&lt;a href="#question-85" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is designing a new VMware Cloud Foundation (VCF)-based Private Cloud solution.&lt;/p&gt;
&lt;p&gt;During the requirements gathering workshop, a stakeholder from the network team stated that:&lt;/p&gt;
&lt;p&gt;The solution must ensure that any physical networking component is redundant to N+N.&lt;/p&gt;
&lt;p&gt;The solution must ensure inter-datacenter network links are diversely routed.&lt;/p&gt;
&lt;p&gt;When writing the design documentation, how should the architect classify the stated requirement?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Availability
B. Performance
C. Recoverability
D. Manageability&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 86&lt;span class="hx:absolute hx:-mt-20" id="question-86"&gt;&lt;/span&gt;
&lt;a href="#question-86" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The following storage design decisions were made:&lt;/p&gt;
&lt;p&gt;DD01: A storage policy that supports failure of a single fault domain being the server rack.&lt;/p&gt;
&lt;p&gt;DD02: Each host will have two vSAN OSA disk groups, each with four 4TB Samsung SSD capacity drives.&lt;/p&gt;
&lt;p&gt;DD03: Each host will have two vSAN OSA disk groups, each with a single 300GB Intel NVMe cache drive.&lt;/p&gt;
&lt;p&gt;DD04: Disk drives capable of encryption at rest.&lt;/p&gt;
&lt;p&gt;DD05: Dual 10Gb or higher storage network adapters.&lt;/p&gt;
&lt;p&gt;Which two design decisions would an architect include in the physical design? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. DD01
B. DD02
C. DD03
D. DD04
E. DD05&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 87&lt;span class="hx:absolute hx:-mt-20" id="question-87"&gt;&lt;/span&gt;
&lt;a href="#question-87" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is documenting the design for a new VMware Cloud Foundation (VCF) solution.
During discovery workshops with the customer, the following information was shared with the architect:&lt;/p&gt;
&lt;p&gt;All users and administrators of the solution will need to be authenticated using accounts in the corporate directory service.&lt;/p&gt;
&lt;p&gt;The solution will need to be deployed across two geographically separate locations and run in an Active/Standby configuration where supported.&lt;/p&gt;
&lt;p&gt;The management applications deployed as part of the solution will need to be recovered to the standby location in the event of a disaster.&lt;/p&gt;
&lt;p&gt;All management applications will need to be deployed into a management tooling zone of the network, which is separated from the corporate network zone by multiple firewalls.&lt;/p&gt;
&lt;p&gt;The corporate directory service is deployed in the corporate zone.&lt;/p&gt;
&lt;p&gt;There is an internal organization policy that requires each application instance (management or end user) to detail the ports that access is required on through the firewall separately.&lt;/p&gt;
&lt;p&gt;Firewall rule requests are processed manually one application instance at a time and typically take a minimum of 8 weeks to complete.&lt;/p&gt;
&lt;p&gt;The customer also informed the architect that the new solution needs to be deployed and ready to start the organization’s acceptance into service process within 3 months, as it is a dependency in the deployment of a business-critical application. When considering the design for the Cloud Automation and Operations products within the VCF solution, which three design decisions should the architect include based on this information? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. The Cloud Automation and Operations products will be reconfigured to integrate with the Identity Broker solution instance at the standby site in case of a Disaster Recovery incident.
B. The Identity Broker solution will be deployed at both the primary and standby site.
C. The Identity Broker solution will be connected with the corporate directory service for user authentication.
D. The Identity Broker solution will be deployed at the primary site and failed over to the standby site in case of a disaster.
E. The Cloud Automation and Operations products will be integrated with a single instance of an Identity Broker solution at the primary site.
F. The Cloud Automation and Operations products will be integrated directly with the corporate directory service.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B,C,E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 88&lt;span class="hx:absolute hx:-mt-20" id="question-88"&gt;&lt;/span&gt;
&lt;a href="#question-88" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A company plans to expand its existing VMware Cloud Foundation (VCF) environment for a new application. The current VCF environment includes a Management Domain and two separate VI Workload Domains with different hardware profiles. The new application has the following requirements:&lt;/p&gt;
&lt;p&gt;The application will use significantly more memory than current workloads.&lt;/p&gt;
&lt;p&gt;The application will have a limited number of licenses to run on hosts.&lt;/p&gt;
&lt;p&gt;Additional VCF and hardware costs have been approved for the application.&lt;/p&gt;
&lt;p&gt;The application will contain confidential customer information that requires isolation from other workloads.
What design recommendation should the architect document?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Implement a new Workload Domain with hardware supporting the memory requirements of the new application.
B. Deploy a new consolidated VCF instance and deploy the new application into it.
C. Purchase sufficient matching hardware to meet the new application’s memory requirements and expand an existing cluster to accommodate the new application. Use host affinity rules to manage the new licensing.
D. Order enough identical hardware for the Management Domain to meet the new application requirements and design a new Workload Domain for the application.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 89&lt;span class="hx:absolute hx:-mt-20" id="question-89"&gt;&lt;/span&gt;
&lt;a href="#question-89" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As part of a new VMware Cloud Foundation (VCF) deployment, a customer is planning to implement the vSphere IaaS control plane. What component could be installed and enabled to implement the solution?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Storage DRS
B. Aria Automation
C. Aria Operations
D. NSX Edge networking&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 90&lt;span class="hx:absolute hx:-mt-20" id="question-90"&gt;&lt;/span&gt;
&lt;a href="#question-90" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect was requested to recommend a solution for migrating 5000 VMs from an existing vSphere environment to a new VMware Cloud Foundation infrastructure. Which feature or tool can be recommended by the architect to minimize downtime and automate the process?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. VMware HCX
B. vSphere vMotion
C. VMware Converter
D. Cross vCenter vMotion&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question 57&lt;span class="hx:absolute hx:-mt-20" id="question-57-1"&gt;&lt;/span&gt;
&lt;a href="#question-57-1" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A customer has a database cluster running in a VCF cluster with the following characteristics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;40/60 Read/Write ratio&lt;/li&gt;
&lt;li&gt;High IOPS requirement&lt;/li&gt;
&lt;li&gt;No contention on an all-flash OSA vSAN cluster in a VI Workload Domain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which two vSAN configuration options should be configured for best performance? (Choose two.)&lt;/p&gt;
&lt;p&gt;客戶在 VCF 叢集中運行一個資料庫叢集，具有以下特性：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;40/60 讀/寫 比率&lt;/li&gt;
&lt;li&gt;高 IOPS 要求&lt;/li&gt;
&lt;li&gt;在 VI Workload Domain 中的全快閃 OSA vSAN 叢集上沒有資源爭用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;為了獲得最佳效能，應配置哪兩個 vSAN 設定選項？（選擇兩項）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. RAID 1
B. Deduplication and Compression enabled
C. RAID 5
D. Flash Read cache reservation
E. Deduplication and Compression disabled&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A、E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
A. RAID-1 提供最低的寫入延遲及最高的吞吐量——不像 RAID-5/6 需要進行奇偶校驗運算，且讀取可由任一鏡像複本提供服務。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;E. 雖然去重／壓縮能節省容量，但在快取刷寫（destaging）過程中會引入 CPU 與 I/O 負擔，進而降低實際寫入快取的刷寫吞吐量。對於以寫入為主、高 IOPS 的資料庫，停用這些功能可將效能最大化。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #91&lt;span class="hx:absolute hx:-mt-20" id="question-91"&gt;&lt;/span&gt;
&lt;a href="#question-91" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An architect is sizing the workloads that will run in a new VMware Cloud Foundation (VCF) Management Domain, the customer has a requirement to use Aria Operations to provide effective monitoring of the new VCF Solution.
What is the minimum Aria Operations Analytics node size requirement when Aria Suite Lifecycle is in VCF aware mode?&lt;/p&gt;
&lt;p&gt;一位架構師正在為即將在新的 VMware Cloud Foundation（VCF）管理域中執行的工作負載進行規模評估，客戶要求使用 Aria Operations 來有效監控新的 VCF 解決方案。當 Aria Suite Lifecycle 處於 VCF 感知模式時，Aria Operations Analytics 節點的最低規模需求是多少？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Extra Large
B. Small
C. Medium
D. Large&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
對於 VMware Aria Operations 的生產部署，請依據規模需求與可用資源，將所有節點部署為 medium (中型)、large (⼤型) 或 extra-large (超⼤型)。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;參考連結 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://techdocs.broadcom.com/us/en/vmware-cis/aria/aria-operations/8-17-1/vmware-aria-operations-reference-architecture-8-17-1/scalability-considerations.html#:~:text=For%20enterprise%20deployments%20of%20VMware%20Aria%20Operations%2C%20deploy%20all%20nodes%20as%20medium%2C%20large%20or%20extra%2Dlarge%20deployments%2C%20depending%20on%20sizing%20requirements%20and%20your%20available%20resources."target="_blank" rel="noopener"&gt;Scalability Considerations - VMware Aria Operations 8.17.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Question #67&lt;span class="hx:absolute hx:-mt-20" id="question-67-1"&gt;&lt;/span&gt;
&lt;a href="#question-67-1" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which statement defines the purpose of Business Requirements?&lt;/p&gt;
&lt;p&gt;哪一項敘述定義了業務需求的目的？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Business requirements define how the goals and objectives can be achieved.
B. Business requirements define which goals and objectives can be achieved.
C. Business requirements define what goals and objectives need to be achieved.
D. Business requirements define which audience needs to be involved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
業務需求闡述組織希望透過此解決方案達成的目標，例如改善應用程式效能、確保災難復原或支援特定數量的工作負載。在 VMware Cloud Foundation 5.2 的情境中，範例可能包括「此解決方案必須能支援 500 部虛擬機器」或「環境必須提供 99.99% 的運行時間」。這些敘述定義了目標與宗旨，但並未說明要如何實現（例如透過 vSphere HA 或 vSAN）或由誰來執行。這符合 VMware 的設計方法論：由業務需求驅動後續的功能性與非功能性需求。
在 VMware Cloud Foundation 5.2 中，架構設計流程就是從蒐集業務需求開始，以確保解決方案能符合組織需求。VMware Cloud Foundation Planning and Preparation Guide 強調，業務需求建立了「做什麼」（例如降低成本或整合工作負載等期望成果），進而影響技術架構的規劃，例如 VI 工作負載域的規模或管理元件的部署。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #4&lt;span class="hx:absolute hx:-mt-20" id="question-4-1"&gt;&lt;/span&gt;
&lt;a href="#question-4-1" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A company will be expanding their existing VCF environment for a new application. The existing VCF environment currently has a management domain and two separate VI workload domains with different hardware profiles. The new application has the following requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The application will use significantly more memory than current workloads today.&lt;/li&gt;
&lt;li&gt;The application will have a limited number of licenses to run on hosts.&lt;/li&gt;
&lt;li&gt;Additional VCF and hardware costs has been approved for the application.&lt;/li&gt;
&lt;li&gt;The application will contain confidential customer information that requires isolation from other workloads.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What design recommendations should the administrator document?&lt;/p&gt;
&lt;p&gt;一家公司將擴展其現有的 VCF 環境，以部署一個新應用程式。現有的 VCF 環境目前有一個管理域，以及兩個具有不同硬體配置的獨立 VI 工作負載域。該新應用程式具有以下需求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;應用程式將使用顯著多於目前工作負載的記憶體。&lt;/li&gt;
&lt;li&gt;應用程式在主機上的授權數量有限。&lt;/li&gt;
&lt;li&gt;已批准針對該應用程式支付額外的 VCF 及硬體成本。&lt;/li&gt;
&lt;li&gt;應用程式將包含需要與其他工作負載隔離的機敏客戶資訊。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;管理員應記錄哪些設計建議？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Purchase enough matching hardware to accommodate the new applications memory requirements and expand an existing cluster to accommodate the new application. Use host affinity rules to manage the new licensing.
B. Enough identical hardware for the management domain should be ordered to accommodate the new application requirements and a new workload domain should be designed for the application.
C. Deploy a new consolidated VCF instance and deploy the new application into it.
D. A new Workload domain with hardware supporting the memory requirements of the new application should be implemented.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:
需求包括記憶體容量、授權管控、成本核准與隔離。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;選項 D「使用支援記憶體需求之硬體建立新的工作負載域」可同時滿足所有要求：在 VCF 5.2 中建立新的 VI 工作負載域，可透過獨立的 NSX 實例來隔離工作負載；使用已核准的資金購置高記憶體硬體；並且可在此領域內透過 DRS 親和性規則來管理授權。&lt;/p&gt;
&lt;p&gt;選項 C（建立新的 VCF 實例）過於冗餘，會重複產生管理負擔；
選項 B（直接擴充管理域硬體）則誤用了管理域的目的；
選項 A（擴充現有叢集）則可能造成隔離失效。選擇 B 最能有效運用 VCF 工作負載域架構。
參考資料：VMware Cloud Foundation 5.2 Architecture and Deployment Guide（Workload Domain Design）；VMware vSphere 7.0 Documentation（DRS Affinity Rules）。&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>VMware Cloud Foundation 5.2 Administrator</title><link>https://blog.kubeantony.com/archive/virtualization/vmware-cloud-foundation-5.2-administrator/</link><pubDate>Sun, 08 Jun 2025 08:18:22 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/vmware-cloud-foundation-5.2-administrator/</guid><description>
&lt;p&gt;最後更新於 2025 年 6 月 7 日。&lt;/p&gt;
&lt;h2&gt;Question #1&lt;span class="hx:absolute hx:-mt-20" id="question-1"&gt;&lt;/span&gt;
&lt;a href="#question-1" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What is a symptom of an issue with vSphere HA?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Snapshots cannot be created or consolidated.
B. VMs are not restarted after a host failure.
C. VMs are not being migrated using vMotion.
D. Hosts frequently disconnect from vCenter Server.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #2&lt;span class="hx:absolute hx:-mt-20" id="question-2"&gt;&lt;/span&gt;
&lt;a href="#question-2" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which prerequisite task must be completed before deploying VMware Cloud Foundation (VCF) using VMware Cloud Builder?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Ensure that all ESXi hosts are connected to a single vCenter Server.
B. Verify network configurations and DNS settings for all components.
C. Verify configurations on Virtual Distributed Switch on the ESXi hosts that will be used for the deployment.
D. Ensure HCX is configured for workload migration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #3&lt;span class="hx:absolute hx:-mt-20" id="question-3"&gt;&lt;/span&gt;
&lt;a href="#question-3" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The administrator has been tasked with applying asynchronous software updates to the VMware Cloud Foundation (VCF) instance using the VMware Async Patch CLI Tool.
Which four steps would an administrator take to complete the task? (Choose four.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Download the bundles from SDDC Manager.
B. Download the bundles.
C. Upload the confirmation to SDDC Manager.
D. Apply the patches directly through the Async Patch CLI Tool.
E. Enable the bundles.
F. Apply the patches through the SDDC Manager UI.
G. Upload the bundles to SDDC Manager.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D, E, G&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #4&lt;span class="hx:absolute hx:-mt-20" id="question-4"&gt;&lt;/span&gt;
&lt;a href="#question-4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;While deploying the first VI workload domain in a VMware Cloud Foundation (VCF) solution, which two steps will always be performed by SDDC Manager? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Deploy an NSX Edge cluster and configure BGP routing on the T0 Gateway.
B. Deploy a new NSX Manager instance for the VI workload domain.
C. Configure vSAN as a principal storage for the VI workload domain.
D. Deploy and configure a new vCenter Server instance for the VI workload domain.
E. Connect a new vCenter Server instance to the Application Virtual Network.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #5&lt;span class="hx:absolute hx:-mt-20" id="question-5"&gt;&lt;/span&gt;
&lt;a href="#question-5" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What is the primary benefit of using HCX Replication Assisted vMotion (RAV) for VM migration?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. It requires no configuration changes to the VM(s) within the destination environment.
B. It performs a test migration to ensure compatibility.
C. It ensures zero downtime to the VM(s).
D. It provides the fastest migration method by powering off the VM(s) before initiating the migration.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #6&lt;span class="hx:absolute hx:-mt-20" id="question-6"&gt;&lt;/span&gt;
&lt;a href="#question-6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator has been tasked with deploying a new VMware Cloud Foundation (VCF) environment and is preparing the physical hosts that will be used for the management domain. The administrator has completed the following tasks for all of the physical hosts:
The required version of ESXi has been installed.
Networking has been configured for the ESXi management interface.
DNS entries have been created for forward and reverse name resolution.
NTP has been configured and the time synchronized with a centralized time source.
VLAN 10 has been presented to the ESXi hosts on the physical network infrastructure for the VCF ESXi management network.
A combination of which two additional tasks must the administrator complete before starting the bring-up of the management domain? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Upload the Cloud Builder appliance OVA file to the new shared NFS datastore.
B. Create a new vSphere Standard Switch for the VCF ESXi management network on each ESXi host.
C. Configure a new shared NFS datastore on each ESXi host.
D. Replace the SSL certificate with either a CA signed or self-signed certificate on each ESXi host.
E. Configure VLAN 10 on the VM network Port Group of the vSphere Standard Switch on each ESXi host.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #7&lt;span class="hx:absolute hx:-mt-20" id="question-7"&gt;&lt;/span&gt;
&lt;a href="#question-7" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;How do virtual machine (VM) storage policies in a VMware vSphere environment contribute to optimizing resource utilization, ensuring data availability, and meeting application-specific requirements?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. By guaranteeing storage IOPs for a particular virtual machine
B. By regulating and optimizing storage traffic between virtual machines
C. By streamlining the process of automating virtual machine backups
D. By defining and enforcing storage requirements, such as performance, availability, and redundancy&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #8&lt;span class="hx:absolute hx:-mt-20" id="question-8"&gt;&lt;/span&gt;
&lt;a href="#question-8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator configures a Local Content Library on vCenter Server A, enables publishing, and creates Subscribed Content Libraries on vCenter Server B and vCenter Server C using the publishing URL. However, the contents of the subscribed libraries on vCenter B and C are not synchronizing with the source library on vCenter A.
Which step should the administrator take to troubleshoot the issue?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Recreate the Subscribed Content Libraries on vCenter B and C with a new publishing URL from vCenter Server A to reset the synchronization configuration.
B. Verify that network connectivity exists between vCenter Server A and the other two vCenters, and ensure that the required ports for Content Library synchronization are open.
C. Enable bidirectional synchronization on the Content Library settings to ensure updates are propagated back and forth between vCenter Server A and the subscribed libraries.
D. Manually export the library content from vCenter Server A and import it into the subscribed libraries on vCenter B and C to initialize synchronization.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #9&lt;span class="hx:absolute hx:-mt-20" id="question-9"&gt;&lt;/span&gt;
&lt;a href="#question-9" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is using VMware Aria Automation to automate the provisioning of virtual machines in their VMware Cloud Foundation (VCF) environment. They notice that the deployment requests are failing frequently.
What step should the administrator take in VMware Aria Operations for Logs to diagnose the cause of the failures?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Check the Audit Logs to see if there are any unauthorized access attempts.
B. Review the Alert Definitions to ensure alerts for request failures are configured and enabled.
C. Access the Dashboard page to get an overview of system health and performance metrics.
D. Use the Interactive Analytics feature to search for error messages related to the requests.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #10&lt;span class="hx:absolute hx:-mt-20" id="question-10"&gt;&lt;/span&gt;
&lt;a href="#question-10" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which two steps should an administrator perform to configure the backup of the VMware Cloud Foundation (VCF) SDDC Manager and NSX components to allow them to be recovered in the event of a full site failure? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Backup the NSX Manager configuration by exporting it to an archive file.
B. Configure the backup settings in SDDC Manager.
C. Configure image-based backup for the NSX Manager cluster.
D. Prepare an external SFTP server to store file-based backups.
E. Define a scheduled task in vCenter to create a snapshot of the NSX Edge cluster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #11&lt;span class="hx:absolute hx:-mt-20" id="question-11"&gt;&lt;/span&gt;
&lt;a href="#question-11" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A Cloud Administrator has been tasked with verifying all of the prerequisites are in place prior to deploying VMware Aria Suite Lifecycle. The following information has been provided for the Aria Suite Lifecycle implementation: hostname: lcm domain: vcf.company.com&lt;/p&gt;
&lt;p&gt;IP address: 10.0.0.150 /24 -&lt;/p&gt;
&lt;p&gt;IP gateway: 10.0.0.1 -
Which three items must the Cloud Administrator ensure are available prior to deploying VMware Aria Suite Lifecycle? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Connectivity between Application Virtual Networks, Management Network, and network services (DNS and NTP)
B. A DNS A Record for lcm.vcf.company.com that points to 10.0.0.150
C. The IP address for the Standalone Tier 1 Load Balancer for VMware Aria components is prepared
D. A DNS PTR Record for 10.0.0.1 that points to lcm.vcf.company.com
E. A CA-signed SSL certificate for Aria Suite Lifecycle added to SDDC Manager&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #12&lt;span class="hx:absolute hx:-mt-20" id="question-12"&gt;&lt;/span&gt;
&lt;a href="#question-12" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is configuring a newly provisioned workload domain within a VMware Cloud Foundation (VCF) environment. The workload domain will contain virtual machines hosting applications which are considered business critical, and the administrator wants to ensure that the virtual machines are given priority over other network traffic types.
Which three steps should the administrator perform to achieve this goal? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure a bandwidth resource allocation for the virtual machine traffic type.
B. Enable Network I/O control (NIOC) on the workload domain vSphere Distributed Switch (vDS).
C. Create a new vSphere Distributed Switch (vDS) specifically for virtual machine traffic.
D. Configure dedicated physical network adapters for the ESXi management traffic.
E. Disable bandwidth resource allocations for all other traffic types to ensure virtual machine traffic gets full bandwidth.
F. Configure a new network resource pool to assign shares, limits and reservations for the virtual machine traffic.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #13&lt;span class="hx:absolute hx:-mt-20" id="question-13"&gt;&lt;/span&gt;
&lt;a href="#question-13" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator needs to ensure that all ESXi hosts in a cluster have a consistent configuration.
Which three steps are necessary to achieve this? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Attach the host profile to all hosts in the cluster.
B. Extract the host profile from the configured reference host.
C. Right-click the host profile from the reference host and select duplicate host profile.
D. Configure the desired settings on an ESXi host.
E. Detach the host profile from all hosts in the cluster.
F. Manually configure each host to match the reference host settings.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #14&lt;span class="hx:absolute hx:-mt-20" id="question-14"&gt;&lt;/span&gt;
&lt;a href="#question-14" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is tasked to configure a Content Library to share its contents across multiple vCenter Server instances.
What are the necessary steps and considerations to ensure the library is accessible for the consumption by the other vCenter instances?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Create a Local Content Library on each vCenter Server instance and manually synchronize the content.
B. Create a Subscribed Content Library on each vCenter Server instance without enabling synchronization.
C. create a Local Content Library on a primary vCenter Server instance and enable the &amp;ldquo;Publish&amp;rdquo; option.
D. create a Subscribed Content Library on the primary vCenter instance and enable the &amp;ldquo;Publish&amp;rdquo; option.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #15&lt;span class="hx:absolute hx:-mt-20" id="question-15"&gt;&lt;/span&gt;
&lt;a href="#question-15" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which feature of VMware Data Services Manager enhances security and compliance?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Automated workload migration
B. Network traffic encryption
C. Storage replication
D. Database level authentication&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #16&lt;span class="hx:absolute hx:-mt-20" id="question-16"&gt;&lt;/span&gt;
&lt;a href="#question-16" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is tasked with deploying a new, highly-available application on a VMware Cloud Foundation (VCF)-based private cloud. The new application will include both virtual machines and containers.
Which two components of VCF could the administrator use to complete the task? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. HCX
B. Aria Suite Lifecycle
C. NSX
D. Aria operations
E. vSphere Supervisor&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #17&lt;span class="hx:absolute hx:-mt-20" id="question-17"&gt;&lt;/span&gt;
&lt;a href="#question-17" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What are three prerequisites for deploying an NSX Edge cluster in a VMware Cloud Foundation (VCF) solution? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Set up vSAN storage policies for the Edge VMs.
B. Verify that the NSX host overlay VLAN and NSX Edge overlay VLAN are routed to each other.
C. Create DNS entries for the NSX Edge nodes.
D. Use separate VLAN IDs and subnets for the NSX host overlay and NSX Edge overlay networks.
E. Configure BGP as a dynamic routing protocol on the physical switches.
F. Install Aria Operations and enable Edge Cluster monitoring.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, C, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #18&lt;span class="hx:absolute hx:-mt-20" id="question-18"&gt;&lt;/span&gt;
&lt;a href="#question-18" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What is the primary use case for Aria Operations within VMware Cloud Foundation (VCF)?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. To provide comprehensive monitoring, analytics, and performance management of the cloud infrastructure
B. To automate workload deployments across multiple cloud environments
C. To enable network virtualization and security
D. To manage and analyze log data from various sources&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #19&lt;span class="hx:absolute hx:-mt-20" id="question-19"&gt;&lt;/span&gt;
&lt;a href="#question-19" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is tasked with enabling Workload Management (vSphere Supervisor) on a VMware Cloud Foundation (VCF) workload domain using the SDDC Manager UI.
Which three are prerequisites for enabling Workload Management? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Verify that the vSphere Distributed Switch is configured with sufficient port groups.
B. Verify at least one Content Library is available.
C. Verify all hosts within the selected Sphere clusters have the proper vSphere with Tanzu licensing to support Workload Management.
D. Verify at least one NSX Edge cluster is deployed and available.
E. Verify that the cluster is running vSAN.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, C, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #20&lt;span class="hx:absolute hx:-mt-20" id="question-20"&gt;&lt;/span&gt;
&lt;a href="#question-20" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What three steps are required to commission a new host into the SDDC Manager inventory? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Self-signed certificate regenerated based on FQDN of host.
B. Four NIC ports with a minimum 10 Gbps speed.
C. Delete all disk partitions on HDD/SSD.
D. Update the DNS records and add the host directly to the SDDC Manager appliance using the root credentials.
E. Manually import the host into the vCenter Server inventory and assign it to a cluster.
F. A supported version of ESXi installed on the host.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, C, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #21&lt;span class="hx:absolute hx:-mt-20" id="question-21"&gt;&lt;/span&gt;
&lt;a href="#question-21" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator recently incorrectly deployed a new isolated VI workload domain within an existing VMware Cloud Foundation (VCF) instance.
How can the administrator reconfigure the VI workload domain to share the SSO domain from the management workload domain?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. From the management domain vCenter Server instance, use the rsautil command to add the VI workload domain to the management domain.
B. From the VI workload domain vCenter Server instance, add the management domain SSO and remove the isolated SSO.
C. From the SDDC Manager console, migrate the VI workload domain to the management domain.
D. A new VI workload domain must be created through SDDC Manager.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #22&lt;span class="hx:absolute hx:-mt-20" id="question-22"&gt;&lt;/span&gt;
&lt;a href="#question-22" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Following an internal security audit of the new VMware Cloud Foundation (VCF) instance, the following audit finding was documented for priority remediation:
All users from the custom administrators group could access the Direct Console User Interface (DCUI) on all ESXi hosts within the workload domain. RISK=High, IMPACT=High
The company IT security policy around accessing ESXi servers states the following:
Users within the custom administrators group must access ESXi host configurations from within vCenter Server or the vSphere Web Client only.
Only users within the restricted administrators group must be allowed direct access to ESXi hosts.
Which two actions should the administrator perform on each of the hosts within the workload domain to remediate the security finding? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Disable SSH and the ESXi Shell.
B. Add the custom administrators group to the DCUI.Access advanced system setting.
C. Add the restricted administrators group to the DCUI.Access advanced system setting.
D. Enable Strict Lockdown Mode.
E. Enable Normal Lockdown Mode.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #23&lt;span class="hx:absolute hx:-mt-20" id="question-23"&gt;&lt;/span&gt;
&lt;a href="#question-23" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator has been tasked with creating a view of key performance indicators for their VMware Cloud Foundation (VCF) private cloud and an automated monthly report that shows the capacity consumed by each development team who use the environment.
Which VCF component should the administrator configure to complete their objectives?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. VMware Aria Operations for Logs
B. VMware Aria Operations
C. VMware Aria Operations for Networks
D. VMware Aria Operations for Applications&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #24&lt;span class="hx:absolute hx:-mt-20" id="question-24"&gt;&lt;/span&gt;
&lt;a href="#question-24" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator has deployed a new VI Workload Domain and must deploy a Kubernetes cluster on the vSphere Supervisor.
Which three steps should be followed to successfully deploy the Kubernetes cluster? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure a vSphere Namespace and assign resource quotas.
B. Deploy a vSphere Pod Service.
C. Create a new VM template for the Kubernetes nodes.
D. Deploy an NSX Edge Cluster.
E. Enable Workload Management on the vSphere Cluster within SDDC Manager.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #25&lt;span class="hx:absolute hx:-mt-20" id="question-25"&gt;&lt;/span&gt;
&lt;a href="#question-25" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An organization is using VMware Aria Automation for automating virtual machine deployments. Recently, some deployment requests have been failing. An administrator needs to use Aria Automation to troubleshoot these failures.
Which two steps should be taken? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Disable integrations and re-run deployment.
B. Cheek the request logs for error messages.
C. Disable all automation policies temporarily.
D. Review the provisioning diagrams for patterns of failure.
E. Re-run the failed deployments without any changes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #26&lt;span class="hx:absolute hx:-mt-20" id="question-26"&gt;&lt;/span&gt;
&lt;a href="#question-26" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is responsible for maintaining a VMware Cloud Foundation (VCF) instance. The administrator has been tasked with scaling the CPU and RAM resources of a virtual machine.
Which three configuration limitations must the administrator consider when completing the task? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. To add Memory to a powered on virtual machine, Memory Hot Add must be enabled.
B. To remove Memory to a powered on virtual machine, Memory Hot Add must be enabled.
C. To add vCPUs to a powered on virtual machine CPU Hot Add must be enabled.
D. To enable Memory Hot Add feature, the virtual machine compatibility must be ESXi 7.0 Update 2 or later.
E. To add vCPUs to a powered down virtual machine, CPU Hot Add must be enabled.
F. To enable the CPU Hot Add or Memory Hot Add feature, the virtual machine must be powered off.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, C, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #27&lt;span class="hx:absolute hx:-mt-20" id="question-27"&gt;&lt;/span&gt;
&lt;a href="#question-27" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What is the recommended method for IP address allocation for the management interface of VMware ESXi hosts in a VMware Cloud Foundation (VCF) environment?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Dynamic IP addresses assigned via DHCP without any reservations
B. Dynamic IP addresses assigned via DHCP with a reservation based on MAC address
C. Static IP addresses assigned manually
D. Static IP address assigned using VMware NSX IP Pools&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #28&lt;span class="hx:absolute hx:-mt-20" id="question-28"&gt;&lt;/span&gt;
&lt;a href="#question-28" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is enabling VMware&amp;rsquo;s Virtual Machine Encryption for an existing VMware Cloud Foundation (VCF) Workload Domain in order to meet their organization&amp;rsquo;s compliance regulations.
Which three steps should the administrator take to complete this task? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure a Key Management Server (KMS) and add it to the vCenter.
B. Enable SSH on the ESXi hosts to manage encryption keys.
C. Create an encryption policy in vCenter.
D. Apply the encryption policy to the ESXi hosts.
E. Apply the encryption policy to the existing VMs.
F. Enable the encryption feature on the ESXi hosts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, C, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #29&lt;span class="hx:absolute hx:-mt-20" id="question-29"&gt;&lt;/span&gt;
&lt;a href="#question-29" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator needs to ensure that specific virtual machines within a VMware Cloud Foundation (VCF) environment use storage that can tolerate at least two host failures within a vSAN cluster. Due to financial limitations, the configuration used must prioritize providing the highest level of usable disk space for the datastore.
Which three steps should be performed to meet the requirements? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Reconfigure the existing Default Storage Policy in the vSphere Client.
B. Apply the storage policy to the target VMs.
C. Set Failures to Tolerate to &amp;ldquo;2 failures - RAID-6 (Erasure Coding)&amp;rdquo; in the policy configuration.
D. Create a new VM Storage Policy in the vSphere Client.
E. Set Failures to Tolerate to &amp;ldquo;2 failures - RAID-1 (Mirroring)&amp;rdquo; in the policy configuration.
F. Configure the policy to use thin provisioning.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, C, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #30&lt;span class="hx:absolute hx:-mt-20" id="question-30"&gt;&lt;/span&gt;
&lt;a href="#question-30" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is managing a VMware Cloud Foundation (VCF) environment. To support virtual machine backup using a third-party tool, the administrator has been tasked with assigning a service account (srvbackup01) access to the Production Virtual Machine (VM) folder and all child objects. The company security policy dictates that only the minimum required permissions must be assigned to service accounts to ensure they can function as designed.
Which three actions should the administrator take in the vSphere Client to complete the objective? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Select the necessary privileges for the backup_service role.
B. Assign the backup_service role to the srvbackup01 user on the Production VM folder only.
C. Assign the Administrator role to the srvbackup01 user on the Production VM folder and propagate to all child objects.
D. Create a new Role called backup_service.
E. Assign the backup_service role to the srvbackup01 user on the Production VM folder and propagate to all child objects.
F. Clone the Administrator Role to create the backup_service role.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #31&lt;span class="hx:absolute hx:-mt-20" id="question-31"&gt;&lt;/span&gt;
&lt;a href="#question-31" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A virtual private cloud administrator is regularly tasked to provision and manage new application workloads with dedicated subnets.
Which two capabilities of VMware Cloud Foundation (VCF) can be used to alleviate the workload of the administrator with minimal interaction with the networking team? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure vSAN storage policies for each application.
B. Deploy Aria Automation to enable self-service provisioning.
C. Use vSphere Resource Pools to allocate networking resources to different applications.
D. Use of NSX overlay networks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #32&lt;span class="hx:absolute hx:-mt-20" id="question-32"&gt;&lt;/span&gt;
&lt;a href="#question-32" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;While troubleshooting a vSphere HA c luster issue, an administrator observes that a host is in the Network Isolated state. The host is unable to ping the configured isolation address and cannot access any other vSphere HA agents.
Which step would resolve this issue while minimizing downtime for running virtual machines (VMs)?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Power off all VMs on the isolated host, remove the host from the cluster, and add it back after the network is fixed.
B. Reconfigure the host&amp;rsquo;s HA agent to bypass the isolation check and allow VM operations to continue.
C. Reconfigure the isolation addresses to ensure the host can ping the default gateway or other configured IPs.
D. Restart the vSphere HA services on the isolated host to trigger the election of a new primary agent.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #33&lt;span class="hx:absolute hx:-mt-20" id="question-33"&gt;&lt;/span&gt;
&lt;a href="#question-33" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which step must an administrator take to configure Application Virtual Networks (AVNs) from SDDC Manager while preparing to deploy VMware Aria Suite Lifecycle?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Deploy NSX Edge Cluster.
B. Ensure that an NSX load balancer is available.
C. Enable AVNs in the vCenter Server.
D. Assign AVNs to specific ESXi hosts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #34&lt;span class="hx:absolute hx:-mt-20" id="question-34"&gt;&lt;/span&gt;
&lt;a href="#question-34" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator needs to scale an NSX Edge cluster by adding additional Edge nodes.
Which three steps must be taken before scaling an Edge cluster from SDDC Manager? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Assign a unique management IP for each Edge node.
B. Assign two Tunnel Endpoint (TEP) addresses for each Edge node.
C. Add an additional NSX VDS uplink for each Edge node being added.
D. Verify DNS records have been added for each new Edge node.
E. Place the Edge cluster in maintenance mode prior to expanding.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #35&lt;span class="hx:absolute hx:-mt-20" id="question-35"&gt;&lt;/span&gt;
&lt;a href="#question-35" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An organization is planning to manage a diverse set of databases across multiple VMware Cloud Foundation (VCF) environments using Data Services Manager.
Which three capabilities of Data Services Manager would help the organization managing these databases efficiently? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Centralized monitoring and alerting for all managed databases
B. Automated database migration between on-premises and cloud environments
C. Policy-based backup and recovery for databases
D. Integration with vSAN for optimized storage management
E. Automated database provisioning and deployment&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, C, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #36&lt;span class="hx:absolute hx:-mt-20" id="question-36"&gt;&lt;/span&gt;
&lt;a href="#question-36" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is troubleshooting a high CPU usage issue of the SDDC Manager VM. Access to SDDC Manager UI is exhibiting degraded performance.
What two steps should the administrator take to diagnose the issue? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Reboot the SDDC Manager VM to clear any temporary issues.
B. Login to SDDC Manager using console with root credentials, run the top command to identify any services that may be consuming high %CPU.
C. Upgrade the vSphere version to the latest release.
D. Review the CPU usage of the ESXi management domain hosts to identify any that are overcommitted.
E. Reconfigure the DRS settings to be more aggressive in load balancing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #37&lt;span class="hx:absolute hx:-mt-20" id="question-37"&gt;&lt;/span&gt;
&lt;a href="#question-37" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator needs to perform lifecycle management for their VMware Cloud Foundation (VCF) components, including upgrading SDDC Manager.
Which three steps should be followed to upgrade VCF? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Perform a pre-check to ensure that all components are compatible with the new version.
B. Backup all VMware Cloud Foundation components before starting the upgrade.
C. Use the SDDC Manager UI to initiate the upgrade process.
D. Manually download the update bundles with a secure browser from the VMware website.
E. Disable DRS and HA on all clusters before initiating the upgrade.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #38&lt;span class="hx:absolute hx:-mt-20" id="question-38"&gt;&lt;/span&gt;
&lt;a href="#question-38" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is deploying a new VMware Cloud Foundation (VCF) environment. After uploading the completed Deployment Parameter Workbook, the validation task fails and an error message is displayed within the VMware Cloud Builder GUI.
Which log file can the administrator use to identify the cause of the validation error?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. &lt;code&gt;vcf-bringup-debug.log&lt;/code&gt;
B. &lt;code&gt;sos.log&lt;/code&gt;
C. &lt;code&gt;domainmanager.log&lt;/code&gt;
D. &lt;code&gt;jsongenerator-&amp;lt;timestamp&amp;gt;.log&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #39&lt;span class="hx:absolute hx:-mt-20" id="question-39"&gt;&lt;/span&gt;
&lt;a href="#question-39" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which tool is most appropriate for diagnosing and resolving a disk failure when using VMware vSAN with Deduplication enabled?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. vSphere Client
B. Aria Operations
C. vSphere CLI (esxcli)
D. vSAN Skyline Health&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #40&lt;span class="hx:absolute hx:-mt-20" id="question-40"&gt;&lt;/span&gt;
&lt;a href="#question-40" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is tasked with ensuring the security of network traffic during the migration of virtual machines (VMs) to prevent any potential interception or tampering of data.
What specific feature or configuration should the administrator enable to safeguard the integrity and confidentiality of the network traffic involved in VM migration?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Encrypted vSphere vMotion
B. vSphere Virtual Machine Encryption
C. vSphere High Availability (HA)
D. vSphere Distributed Resource Scheduler (DRS)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #41&lt;span class="hx:absolute hx:-mt-20" id="question-41"&gt;&lt;/span&gt;
&lt;a href="#question-41" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator can set resource limits and container defaults on a vSphere Namespace.
Which three resource limits can be set? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Storage
B. Memory
C. CPU
D. Number of containers
E. Network&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #42&lt;span class="hx:absolute hx:-mt-20" id="question-42"&gt;&lt;/span&gt;
&lt;a href="#question-42" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What are two benefits of enabling workload Management on a vSphere Cluster within a VI Workload Domain using SDDC Manager? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. It allows the deployment of traditional VMs with enhanced performance.
B. It integrates the vSphere supervisor with NSX Networking.
C. It enhances the security of the vSphere cluster.
D. It integrates vSphere with third-party cloud providers.
E. It enables the use of Kubernetes for container orchestration on the vSphere cluster.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #43&lt;span class="hx:absolute hx:-mt-20" id="question-43"&gt;&lt;/span&gt;
&lt;a href="#question-43" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator finds that one of the VMs in the vSphere environment cannot reach its default gateway. The VM is configured with a static IP address, and other VMs on the same port group and VLAN are not experiencing any issues.
What should the administrator check to resolve the issue?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Check the subnet mask configured on the VM.
B. Ensure that the VM&amp;rsquo;s network adapter is set to DHCP.
C. Check if the VM has the correct DNS server settings.
D. Confirm that the DVS port group is configured correctly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #44&lt;span class="hx:absolute hx:-mt-20" id="question-44"&gt;&lt;/span&gt;
&lt;a href="#question-44" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;When setting up a new port group on a Virtual Distributed Switch (VDS), what role does configuring a VLAN ID play in network management and traffic isolation?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. To improve the performance of virtual machines by distributing network traffic across multiple uplinks
B. To logically segment network traffic by assigning the port group to a specific VLAN, ensuring that traffic is isolated
C. To configure storage replication settings for virtual machines connected to the port group
D. To enable the automatic assignment of IP addresses to virtual machines in the port group&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #45&lt;span class="hx:absolute hx:-mt-20" id="question-45"&gt;&lt;/span&gt;
&lt;a href="#question-45" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator has been tasked with adding a new VI workload Domain to an instance of VMware Cloud Foundation (VCF).
The administrator only has two prepared ESXi host servers showing in SDDC Manager.
The new VI Workload Domain must use vSphere Lifecycle Images.
Which three supported principal storage options are available to the administrator when configuring the new VI Workload Domain? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. VSAN
B. vVols
C. iSCSI
D. NFS v3
E. VMFS on FC
F. VMFS on local disk&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #46&lt;span class="hx:absolute hx:-mt-20" id="question-46"&gt;&lt;/span&gt;
&lt;a href="#question-46" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What are the three prerequisites an administrator must meet to deploy VMware Aria Suite Lifecycle using SDDC Manager? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Ensure the Management Domain was deployed using vSphere Lifecycle Manager Images.
B. Ensure the VMware Software Install Bundle for VMware Aria Suite Lifecycle is in the local bundle repository.
C. Ensure that a custom SSL certificate specifying the FQDN of the appliance is available.
D. Ensure that the NTP and DNS settings specified in SDDC Manager are valid for all management components.
E. Ensure that the Application Virtual Networks have been configured.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #47&lt;span class="hx:absolute hx:-mt-20" id="question-47"&gt;&lt;/span&gt;
&lt;a href="#question-47" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A company plans to enhance its DevOps practices by implementing Kubernetes as part of a VMware Cloud Foundation (VCF) environment.
Which three steps must an administrator perform to achieve this integration? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Configure Aria Automation to automate the deployment of Kubernetes clusters.
B. Enable IaaS control plane on existing vSphere clusters.
C. Deploy HCX to migrate existing VMs to Kubernetes.
D. Configure storage policies for Kubernetes cluster namespace consumption.
E. Deploy NSX to manage the networking for Kubernetes clusters.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #48&lt;span class="hx:absolute hx:-mt-20" id="question-48"&gt;&lt;/span&gt;
&lt;a href="#question-48" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator has been tasked with updating the version of VMware Tools on virtual machines that have been migrated into a VMware Cloud Foundation (VCF) instance so that they are compliant with the company&amp;rsquo;s security policies. The following information is shared with the administrator about this task:
The VMs have been migrated from environments running earlier releases of vSphere.
The VMs are spread across multiple clusters within a single workload domain in the VCF instance.
The upgrade must not initiate a reboot of the VMs to avoid downtime to the business.
Which three steps should the administrator perform in order to complete this task? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Select the VI workload domain so that all VMs across all clusters are automatically selected.
B. Use vSphere Lifecycle Manager in the VI workload domain vCenter to initiate the upgrade.
C. Select the cluster hosting the VMs to upgrade.
D. Select the Upgrade to Match Host option.
E. Use SDDC Manager in the management domain to initiate the upgrade.
F. Select the Set Auto Update option and set its value to On.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, D, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #49&lt;span class="hx:absolute hx:-mt-20" id="question-49"&gt;&lt;/span&gt;
&lt;a href="#question-49" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is tasked with deploying a new VMware Cloud Foundation (VCF) instance. The management domain is designed to be created with three virtual distributed switches (VDS) configured as follows:
VDS1 - used for management and vMotion traffic&lt;/p&gt;
&lt;p&gt;VDS2 - used for vSAN traffic -
VDS3 - used for NSX Overlay traffic
What action would the administrator take to deploy the designed configuration?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. A JSON file must be prepared with the defined configuration and used to run the bring-up process.
B. vSphere Distributed Switch Profile 2 must be selected in the VCF Deployment parameter workbook.
C. The design must be changed to ensure vSAN and NSX overlay traffic are on the same VDS.
D. The ESXi hosts have to be configured with twelve physical NICs to ensure redundancy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #50&lt;span class="hx:absolute hx:-mt-20" id="question-50"&gt;&lt;/span&gt;
&lt;a href="#question-50" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which two operations can be completed in the SDDC Manager UI on an NSX Edge cluster after it has been deployed into a workload domain? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Redeploy
B. Expand
C. Sync
D. Delete
E. Shrink&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #51&lt;span class="hx:absolute hx:-mt-20" id="question-51"&gt;&lt;/span&gt;
&lt;a href="#question-51" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator is unable to log in to the SDDC Manager UI on their local workstation. After entering the correct URL, the login page does not load and the administrator is unable to enter their credentials in order to view the SDDC Manager inventory. They confirm that the SDDC Manager appliance responds to a ping command from their local workstation against both its FQDN and IP address.
After checking the VM console of the SDDC Manager appliance in the management vCenter UI, they determine that the operating system is online and they can log in to it with the relevant administrator level accounts.
What two actions could the administrator take whilst logged in to the SDDC Manager VM via the VM console to help identify the root cause of the UI not loading? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Verify that port 80 is open and listening for connections using the command netstat.
B. Perform a restart of the network adapter using the command systemctl restart.
C. Verify the health of the SDDC Manager services using the command sos &amp;ndash;get-vcf-services-summary.
D. Perform a restart of the services using the command systemctl restart.
E. Verify that there is free disk space remaining using the command df -h.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #52&lt;span class="hx:absolute hx:-mt-20" id="question-52"&gt;&lt;/span&gt;
&lt;a href="#question-52" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;A single VM is unable to communicate with other VMs on the same network. An administrator needs to identify and resolve the network connectivity issue.
What three steps should the administrator follow? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Verify that the networking within the VMs guest OS is correct.
B. Restart the VM to reset its network connections.
C. Verify that the virtual network adapter is present and connected.
D. Ensure that the Port Group name(s) associated with the VMs network adapter(s) exists in the vSwitch or VDS and is spelled correctly.
E. Use the ESXi command line to check the status of the VM Kernel adapter.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, C, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #53&lt;span class="hx:absolute hx:-mt-20" id="question-53"&gt;&lt;/span&gt;
&lt;a href="#question-53" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An organization is integrating VMware vCenter with Active Directory (AD) to streamline user authentication. As part of this process, the administrator needs to add AD as an identity source in vCenter.
Which three steps must be performed to successfully add AD as an identity source? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Enter the Domain Name and the credentials of an AD user with a minimum of read-only access to Base DN for users and groups.
B. Select &amp;lsquo;Identity Sources&amp;rsquo; and choose &amp;lsquo;Active Directory Domain&amp;rsquo;.
C. Configure DNS settings on all ESXi hosts to point to the AD DNS servers.
D. Navigate to the vCenter Single Sign-On configuration in the vSphere Client.
E. Create an Active Directory object for the vCenter Server Appliance.
F. Reboot the vCenter to apply the identity source settings.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #54&lt;span class="hx:absolute hx:-mt-20" id="question-54"&gt;&lt;/span&gt;
&lt;a href="#question-54" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Which three tools could identify and assist with troubleshooting a misconfigured vSAN network? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. vCheck
B. Supportability and Serviceability (SoS)
C. Direct Console User Interface (DCUI)
D. esxcli
E. vmkping
F. Ruby vSphere Console (RVC) commands&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D, E, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #55&lt;span class="hx:absolute hx:-mt-20" id="question-55"&gt;&lt;/span&gt;
&lt;a href="#question-55" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;To help troubleshoot an issue with the vSphere Supervisor, an administrator must log into the Supervisor Control Plane VMs.
Which three actions should the administrator take to meet the objective? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Log into the vCenter Server Appliance using SSH.
B. Log into the Supervisor Control Plane VM using the admin user and &lt;code&gt;&amp;lt;password&amp;gt;&lt;/code&gt;.
C. Log into the SDDC Manager appliance using SSH.
D. Log into the Supervisor Control Plane VM using the root user and &lt;code&gt;&amp;lt;password&amp;gt;&lt;/code&gt;.
E. Update the &lt;code&gt;&amp;lt;password&amp;gt;&lt;/code&gt; by running /usr/lib/vmware/auth/bin/chpw admin.
F. Obtain the &lt;code&gt;&amp;lt;password&amp;gt;&lt;/code&gt; by running /usr/lib/vmware-wcp/decryptK8Pwd.py.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, B, F&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #56&lt;span class="hx:absolute hx:-mt-20" id="question-56"&gt;&lt;/span&gt;
&lt;a href="#question-56" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;What option should be selected when placing a vSAN host into maintenance mode to ensure that all data remains accessible throughout the maintenance process while also minimizing the duration of the operation?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Ensure Data Accessibility
B. Ensure Accessibility
C. Full Data Migration
D. No Data Migration&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;B&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #57&lt;span class="hx:absolute hx:-mt-20" id="question-57"&gt;&lt;/span&gt;
&lt;a href="#question-57" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Following an update to the Information Security policy, an administrator has been reviewing the status SSL certificates within the VMware Cloud Foundation (VCF) solution.
The new Information Security Policy states:
All SSL certificates must be generated and signed from the shared Microsoft Certificate Authority (CA).
The administrator has discovered the following:
All Aria Suite Components already use CA-signed Subject Alternate Name (SAN) SSL certificates.
All other VCF-based SSL certificates are either self-signed or generated using the VMware Certificate Authority (VMCA).
Which three steps must the administrator take to ensure the VCF solution remains compliant and managed by SDDC Manager? (Choose three.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. In VMware vCenter, replace the ESXi SSL certificates.
B. Integrate the OpenSSL CA into SDDC Manager.
C. Integrate the Microsoft CA into SDDC Manager.
D. In SDDC Manager, replace the SSL certificates for vCenter, NSX Manager, SDDC Manager and Aria Suite Lifecycle.
E. In Aria Suite Lifecycle, replace the VMware Identity Manager, Aria Automation, Aria Operations and Aria Operations for Logs SSL certificates.
F. In SDDC Manager, replace the SSL certificates for vCenter, ESXi, NSX Manager, SDDC Manager and Aria Suite Lifecycle.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, C, D&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #58&lt;span class="hx:absolute hx:-mt-20" id="question-58"&gt;&lt;/span&gt;
&lt;a href="#question-58" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The administrator of a VMware Cloud Foundation environment notices that log data from multiple components, including vSphere, NSX, and vSAN, is not being collected in Aria Operations for Logs.
What two steps should the administrator perform to resolve this issue? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Reconfigure the log level settings on all vSphere components to ensure detailed logging.
B. Check the network connectivity between the Aria Operations for Logs server and the VMware Cloud Foundation components.
C. Verify that the Aria Operations for Logs license is still valid and active.
D. Increase the storage capacity of the Aria Operations for Logs server to accommodate more log data.
E. Ensure that the syslog configuration on each component is pointing to the correct Aria Operations for Logs server.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;D, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #59&lt;span class="hx:absolute hx:-mt-20" id="question-59"&gt;&lt;/span&gt;
&lt;a href="#question-59" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An organization has 3 data center sites and is implementing a solution to achieve a Recovery Point Objective (RPO) of 0 to ensure continuous availability of storage in the event of a single site failure. The sites are connected via a high bandwidth/low latency link.
Which two VMware Cloud Foundation (VCF) components can be used to support this capability? (Choose two.)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. vSphere
B. Aria Operations
C. NSX
D. vSphere Replication
E. vSAN&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A, E&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Question #60&lt;span class="hx:absolute hx:-mt-20" id="question-60"&gt;&lt;/span&gt;
&lt;a href="#question-60" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;An administrator has deployed the VMware Cloud Builder appliance in preparation for the deployment of a new VMware Cloud Foundation (VCF) environment. While performing the bring-up of the Management Domain, one of the tasks fails. The administrator is unable to identify the root cause of the failure and needs to generate a support bundle to send to VMware support.
Which tool should the administrator use to generate the support bundle for the failed bring-up?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A. Generate support Bundle option on the vCenter server Management Interface
B. Generate Support Bundle option on the vSphere Host Client Interface
C. Supportability and Serviceability (SoS) Utility on the VMware Cloud Builder appliance
D. Supportability and Serviceability (SoS) Utility on the SDDC Manager appliance&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here&amp;rsquo;s why:&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Create Ubuntu Template on Proxmox</title><link>https://blog.kubeantony.com/archive/virtualization/create-ubuntu-template-on-proxmox/</link><pubDate>Wed, 10 Jul 2024 14:26:54 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/create-ubuntu-template-on-proxmox/</guid><description>
&lt;h2&gt;Ubuntu Server 24.04&lt;span class="hx:absolute hx:-mt-20" id="ubuntu-server-2404"&gt;&lt;/span&gt;
&lt;a href="#ubuntu-server-2404" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. SSH login Proxmox node
$ ssh root@192.168.61.11
# 2. 下載 Ubuntu Server 24.04 image
$ wget https://cloud-images.ubuntu.com/noble/20240702/noble-server-cloudimg-amd64.img
# 3. Customize the image
$ apt install -y libguestfs-tools
$ virt-customize --install net-tools,sudo -a noble-server-cloudimg-amd64.img
# 4. 建立虛擬主機, 並設定網路
$ vmid=&amp;#34;9003&amp;#34;
$ qm create &amp;#34;$vmid&amp;#34; --name us2404 --memory 8192 --net0 virtio,bridge=vmbr0
# 5. 匯入虛擬主機硬碟檔, 設定使用 SCSI 介面連接 虛擬硬碟檔
$ qm importdisk &amp;#34;$vmid&amp;#34; noble-server-cloudimg-amd64.img local-lvm
$ qm set &amp;#34;$vmid&amp;#34; --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-&amp;#34;$vmid&amp;#34;-disk-0
# 6. 加入 Cloud Init 功能
$ qm set &amp;#34;$vmid&amp;#34; --ide2 local-lvm:cloudinit
# 7. 撰寫 cloud-init User data 設定檔
$ mkdir -p /var/lib/vz/snippets/
$ nano /var/lib/vz/snippets/user&amp;#34;$vmid&amp;#34;.yml
#cloud-config
hostname: alpine
package_update: true
packages:
- nano
write_files:
- path: /etc/resolv.conf
permissions: &amp;#34;0644&amp;#34;
owner: root
content: |
nameserver 8.8.8.8
users:
- name: bigred
no_user_group: true
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
plain_text_passwd: &amp;#39;bigred&amp;#39;
homedir: /home/bigred
shell: /bin/bash
ssh_pwauth: True
# 8. 撰寫 cloud-init Network data 設定檔
$ nano /var/lib/vz/snippets/network&amp;#34;$vmid&amp;#34;.yml
version: 1
config:
- type: physical
name: ens18
subnets:
- type: static
address: &amp;#39;192.168.61.31&amp;#39;
netmask: &amp;#39;255.255.255.0&amp;#39;
gateway: &amp;#39;192.168.61.2&amp;#39;
# 9. 設定 VM 套用設定檔
$ qm set &amp;#34;$vmid&amp;#34; --cicustom &amp;#34;user=local:snippets/user&amp;#34;$vmid&amp;#34;.yml,network=local:snippets/network&amp;#34;$vmid&amp;#34;.yml&amp;#34;
# 10. 改變硬碟大小
$ qm resize &amp;#34;$vmid&amp;#34; scsi0 100G
# 11. 設定開機硬碟
$ qm set &amp;#34;$vmid&amp;#34;--boot c --bootdisk scsi0
# 12. 設定成 Template
# qm template &amp;#34;$vmid&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Ubuntu Server 22.04&lt;span class="hx:absolute hx:-mt-20" id="ubuntu-server-2204"&gt;&lt;/span&gt;
&lt;a href="#ubuntu-server-2204" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. SSH login Proxmox node
$ ssh root@192.168.61.11
# 2. 下載 Ubuntu Server 22.04 image
$ wget https://cloud-images.ubuntu.com/jammy/20240705/jammy-server-cloudimg-amd64.img
# 3. Customize the image
$ apt install -y libguestfs-tools
$ virt-customize --install net-tools,sudo -a jammy-server-cloudimg-amd64.img
# 4. 建立虛擬主機, 並設定網路
$ vmid=&amp;#34;9003&amp;#34;
$ qm create &amp;#34;$vmid&amp;#34; --name us2204 --memory 8192 --net0 virtio,bridge=vmbr0
# 5. 匯入虛擬主機硬碟檔, 設定使用 SCSI 介面連接 虛擬硬碟檔
$ qm importdisk &amp;#34;$vmid&amp;#34; jammy-server-cloudimg-amd64.img local-lvm
$ qm set &amp;#34;$vmid&amp;#34; --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-&amp;#34;$vmid&amp;#34;-disk-0
# 6. 加入 Cloud Init 功能
$ qm set &amp;#34;$vmid&amp;#34; --ide2 local-lvm:cloudinit
# 7. 撰寫 cloud-init User data 設定檔
$ mkdir -p /var/lib/vz/snippets/
$ nano /var/lib/vz/snippets/user&amp;#34;$vmid&amp;#34;.yml
#cloud-config
hostname: alpine
package_update: true
packages:
- nano
write_files:
- path: /etc/resolv.conf
permissions: &amp;#34;0644&amp;#34;
owner: root
content: |
nameserver 8.8.8.8
users:
- name: bigred
no_user_group: true
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
plain_text_passwd: &amp;#39;bigred&amp;#39;
homedir: /home/bigred
shell: /bin/bash
ssh_pwauth: True
# 8. 撰寫 cloud-init Network data 設定檔
$ nano /var/lib/vz/snippets/network&amp;#34;$vmid&amp;#34;.yml
version: 1
config:
- type: physical
name: ens18
subnets:
- type: static
address: &amp;#39;192.168.61.31&amp;#39;
netmask: &amp;#39;255.255.255.0&amp;#39;
gateway: &amp;#39;192.168.61.2&amp;#39;
# 9. 設定 VM 套用設定檔
$ qm set &amp;#34;$vmid&amp;#34; --cicustom &amp;#34;user=local:snippets/user&amp;#34;$vmid&amp;#34;.yml,network=local:snippets/network&amp;#34;$vmid&amp;#34;.yml&amp;#34;
# 10. 改變硬碟大小
$ qm resize &amp;#34;$vmid&amp;#34; scsi0 100G
# 11. 設定開機硬碟
$ qm set &amp;#34;$vmid&amp;#34;--boot c --bootdisk scsi0
# 12. 設定成 Template
# qm template &amp;#34;$vmid&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Remove and Rejoin a node on Proxmox Cluster</title><link>https://blog.kubeantony.com/archive/virtualization/remove-and-rejoin-a-node-on-proxmox-cluster/</link><pubDate>Sun, 23 Jun 2024 03:26:46 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/remove-and-rejoin-a-node-on-proxmox-cluster/</guid><description>
&lt;h2&gt;情境描述&lt;span class="hx:absolute hx:-mt-20" id="情境描述"&gt;&lt;/span&gt;
&lt;a href="#%e6%83%85%e5%a2%83%e6%8f%8f%e8%bf%b0" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;如果直接把叢集中每一台 node 的 IP 或 Hostname 改掉，導致整個叢集的 node 之間互相失連，然後又遇到 &lt;code&gt;/etc/pve/corosync.conf&lt;/code&gt; 完全無法修改，請根據以下步驟進行故障還原&lt;/p&gt;
&lt;h2&gt;1. 將叢集中所有其他的 node 從 corosync 中移除&lt;span class="hx:absolute hx:-mt-20" id="1-將叢集中所有其他的-node-從-corosync-中移除"&gt;&lt;/span&gt;
&lt;a href="#1-%e5%b0%87%e5%8f%a2%e9%9b%86%e4%b8%ad%e6%89%80%e6%9c%89%e5%85%b6%e4%bb%96%e7%9a%84-node-%e5%be%9e-corosync-%e4%b8%ad%e7%a7%bb%e9%99%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. SSH 連到第一台 node
$ ssh root@p1
# 2. Start your pve filesystem into local mode:
$ systemctl stop corosync pve-cluster
$ pmxcfs -l
# 3. Edit your corosync on a newly created file:
## 這裡只保留自己這台 node 的資訊
## totem.config_version 版號要 &amp;#43;1
$ nano correct_corosync.conf
logging {
debug: off
to_syslog: yes
}
nodelist {
node {
name: p1
nodeid: 1
quorum_votes: 1
ring0_addr: 192.168.37.50
}
}
quorum {
provider: corosync_votequorum
}
totem {
cluster_name: topgun
config_version: 8
interface {
linknumber: 0
}
ip_version: ipv4-6
link_mode: passive
secauth: on
version: 2
}
# 4. pull your new corosync configuration over your previous one
$ cp correct_corosync.conf /etc/pve/corosync.conf
$ cp correct_corosync.conf /etc/corosync/corosync.conf
# 5. Exit the local mode pve filesystem:
$ killall pmxcfs
# 6. Restart the services:
$ systemctl start pve-cluster corosync
# 7. 把叢集中其他節點的資料夾移除
$ rm -rf /etc/pve/nodes/{p2,p3,p4,p5}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;2. Separate a Node Without Reinstalling&lt;span class="hx:absolute hx:-mt-20" id="2-separate-a-node-without-reinstalling"&gt;&lt;/span&gt;
&lt;a href="#2-separate-a-node-without-reinstalling" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. First, stop the corosync and pve-cluster services on the node:
$ systemctl stop pve-cluster corosync
# 2. Start the cluster file system again in local mode:
$ pmxcfs -l
[main] notice: resolved node name &amp;#39;p2&amp;#39; to &amp;#39;192.168.37.51&amp;#39; for default node IP address
[main] notice: forcing local mode (although corosync.conf exists)
# 3. Delete the corosync configuration files:
$ rm /etc/pve/corosync.conf &amp;amp;&amp;amp; \
rm -r /etc/corosync/*
# 4. You can now start the file system again as a normal service:
$ killall pmxcfs
$ systemctl start pve-cluster
# 5. The node is now separated from the cluster. You can deleted it from any remaining node of the cluster with:
$ pvecm delnode oldnode
# 6. If the command fails due to a loss of quorum in the remaining node, you can set the expected votes to 1 as a workaround:
$ pvecm expected 1
# 7. And then repeat the pvecm delnode command.
# 8. Now switch back to the separated node and delete all the remaining cluster files on it. This ensures that the node can be added to another cluster again without problems.
$ rm /var/lib/corosync/*
# 9. As the configuration files from the other nodes are still in the cluster file system, you may want to clean those up too. After making absolutely sure that you have the correct node name, you can simply remove the entire directory recursively from /etc/pve/nodes/NODENAME
## 先備份
$ cp -r /etc/pve/nodes /root
$ rm -rf /etc/pve/nodes/*
# 10. 確認網卡設定符合預期
$ cat /etc/network/interfaces
# 11. 確認 /etc/hosts 設定正確
$ cat /etc/hosts
# 12. 重啟 node
$ reboot&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;3. Rejoin node to proxmox cluster&lt;span class="hx:absolute hx:-mt-20" id="3-rejoin-node-to-proxmox-cluster"&gt;&lt;/span&gt;
&lt;a href="#3-rejoin-node-to-proxmox-cluster" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. 確認沒有 Failed 的服務
$ systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
0 loaded units listed.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Join Node to Cluster via GUI&lt;span class="hx:absolute hx:-mt-20" id="join-node-to-cluster-via-gui"&gt;&lt;/span&gt;
&lt;a href="#join-node-to-cluster-via-gui" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Log in to the web interface on an existing cluster node. Under &lt;strong&gt;Datacenter&lt;/strong&gt; → &lt;strong&gt;Cluster&lt;/strong&gt;, click the &lt;strong&gt;Join Information&lt;/strong&gt; button at the top. Then, click on the button &lt;strong&gt;Copy Information&lt;/strong&gt;. Alternatively, copy the string from the Information field manually.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/ry5B6WHU0.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/BkBwT-HI0.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Next, log in to the web interface on the node you want to add. Under &lt;strong&gt;Datacenter&lt;/strong&gt; → &lt;strong&gt;Cluster&lt;/strong&gt;, click on &lt;strong&gt;Join Cluster&lt;/strong&gt;. Fill in the Information field with the Join Information text you copied earlier. Most settings required for joining the cluster will be filled out automatically. For security reasons, the cluster password has to be entered manually.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.kubeantony.com/images/hackmd-uploads/HJx2a-SLC.png" alt="image" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;將虛擬機器的設定檔放回指定目錄區&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ cp /root/nodes/$(hostname)/qemu-server/* /etc/pve/nodes/$(hostname)/qemu-server&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;如果有換 Hostname 要複製舊的主機節點的設定檔到新的 Hostname 的目錄區底下，舉例 :
Hsotname 從 p2 改成 p3，那麼命令就要改成&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;cp /root/nodes/p2/qemu-server/* /etc/pve/nodes/$(hostname)/qemu-server&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/blockquote&gt;</description></item><item><title>Create VM with Terraform in Proxmox Cluster</title><link>https://blog.kubeantony.com/archive/virtualization/create-vm-with-terraform-in-proxmox-cluster/</link><pubDate>Sat, 25 May 2024 16:42:18 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/create-vm-with-terraform-in-proxmox-cluster/</guid><description>
&lt;h2&gt;1. 環境準備&lt;span class="hx:absolute hx:-mt-20" id="1-環境準備"&gt;&lt;/span&gt;
&lt;a href="#1-%e7%92%b0%e5%a2%83%e6%ba%96%e5%82%99" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1.1. 製作 Alpine Cloud-init VM Template&lt;span class="hx:absolute hx:-mt-20" id="11-製作-alpine-cloud-init-vm-template"&gt;&lt;/span&gt;
&lt;a href="#11-%e8%a3%bd%e4%bd%9c-alpine-cloud-init-vm-template" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. 下載 alpine cloud init 硬碟檔
$ wget https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/cloud/nocloud_alpine-3.19.1-x86_64-bios-cloudinit-r0.qcow2
# 2. 安裝必要套件
$ apt update; apt install -y libguestfs-tools
# 3. 在 Alpine cloud init 硬碟檔安裝 qemu-guest-agent、bash、sudo 套件
$ virt-customize --install qemu-guest-agent,bash,sudo -a nocloud_alpine-3.19.1-x86_64-bios-cloudinit-r0.qcow2
# 4. 建立 Alpine 虛擬主機
$ vmid=&amp;#34;9000&amp;#34;
$ qm create &amp;#34;$vmid&amp;#34; --name alp-cloudinit-v3.19.1 --memory 4096 --sockets 1 --cores 4 --net0 virtio,bridge=vmbr0
# 5. 匯入 alpine cloud init 硬碟檔,
$ qm importdisk &amp;#34;$vmid&amp;#34; nocloud_alpine-3.19.1-x86_64-bios-cloudinit-r0.qcow2 local-lvm
# 6. 設定使用 SCSI 介面連接 虛擬硬碟檔
$ qm set &amp;#34;$vmid&amp;#34; --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-&amp;#34;$vmid&amp;#34;-disk-0
# 7. 改變硬碟大小
$ qm resize &amp;#34;$vmid&amp;#34; scsi0 50G
# 8. 加入 Cloud Init 功能
$ qm set &amp;#34;$vmid&amp;#34; --ide2 local-lvm:cloudinit
# 9. Set boot device
$ qm set &amp;#34;$vmid&amp;#34; --boot c --bootdisk scsi0
# 10. Enable serial device
$ qm set &amp;#34;$vmid&amp;#34; --serial0 socket --vga serial0
# 11. 撰寫 cloud-init User data 設定檔
$ mkdir -p /var/lib/vz/snippets/
$ nano /var/lib/vz/snippets/user&amp;#34;$vmid&amp;#34;.yml
#cloud-config
hostname: alpine
package_update: true
packages:
- nano
write_files:
- path: /etc/resolv.conf
permissions: &amp;#34;0644&amp;#34;
owner: root
content: |
nameserver 8.8.8.8
users:
# - default
- name: bigred
# groups: bigred
no_user_group: true
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
plain_text_passwd: &amp;#39;bigred&amp;#39;
homedir: /home/bigred
shell: /bin/bash
# ssh_authorized_keys:
# -
ssh_pwauth: True
#bootcmd:
# - echo -e &amp;#34;bigred\nbigred&amp;#34; | adduser -s /bin/bash bigred
# - echo -e &amp;#34;rancher\nrancher&amp;#34; | adduser -s /bin/bash rancher
# - echo -e &amp;#34;bigred\nbigred&amp;#34; | passwd root
# 12. 撰寫 cloud-init Network data 設定檔
$ nano /var/lib/vz/snippets/network&amp;#34;$vmid&amp;#34;.yml
version: 1
config:
- type: physical
name: eth0
subnets:
- type: static
address: &amp;#39;192.168.61.21&amp;#39;
netmask: &amp;#39;255.255.255.0&amp;#39;
gateway: &amp;#39;192.168.61.2&amp;#39;
# 12. 設定 VM 套用設定檔
$ qm set &amp;#34;$vmid&amp;#34; --cicustom &amp;#34;user=local:snippets/user&amp;#34;$vmid&amp;#34;.yml,network=local:snippets/network&amp;#34;$vmid&amp;#34;.yml&amp;#34;
# 13. test
$ qm start &amp;#34;$vmid&amp;#34;
$ ssh bigred@192.168.61.21
Welcome to Alpine!
...
$ exit
$ qm stop &amp;#34;$vmid&amp;#34;
# 14. 將 VM 製作成 Template
$ qm template &amp;#34;$vmid&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;1.2. 使用 API keys 認證&lt;span class="hx:absolute hx:-mt-20" id="12-使用-api-keys-認證"&gt;&lt;/span&gt;
&lt;a href="#12-%e4%bd%bf%e7%94%a8-api-keys-%e8%aa%8d%e8%ad%89" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. 創建一個名為 tfuser 的使用者
$ pveum user add terraform@pve
# 2. 創建一個名為 Terraform 的新角色，並賦予這個角色一系列與虛擬機管理和數據存儲管理相關的權限。這些權限允許用戶使用該角色來創建、配置、克隆、監控和管理虛擬機，以及管理數據存儲空間
$ pveum role add Terraform -privs &amp;#34;Datastore.AllocateSpace Datastore.Audit Pool.Allocate Sys.Audit Sys.Console Sys.Modify VM.Allocate VM.Audit VM.Clone VM.Config.CDROM VM.Config.Cloudinit VM.Config.CPU VM.Config.Disk VM.Config.HWType VM.Config.Memory VM.Config.Network VM.Config.Options VM.Migrate VM.Monitor VM.PowerMgmt SDN.Use&amp;#34;
# 3. 將 TerraformProv 角色分配給 tfuser，讓它擁有相應的權限。
$ pveum aclmod / -user terraform@pve -role Terraform
# 4. 產生 Terraform 要使用的 API Token
$ pveum user token add terraform@pve provider --privsep=0
┌──────────────┬──────────────────────────────────────┐
│ key │ value │
╞══════════════╪══════════════════════════════════════╡
│ full-tokenid │ terraform@pve!provider │
├──────────────┼──────────────────────────────────────┤
│ info │ {&amp;#34;privsep&amp;#34;:&amp;#34;0&amp;#34;} │
├──────────────┼──────────────────────────────────────┤
│ value │ 1fb0b04e-5673-4d5c-b580-ae602c718d89 │
└──────────────┴──────────────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;要儲存 Token Secrt，因為之後無法取得它。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;1.3. 安裝 Terraform&lt;span class="hx:absolute hx:-mt-20" id="13-安裝-terraform"&gt;&lt;/span&gt;
&lt;a href="#13-%e5%ae%89%e8%a3%9d-terraform" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ apt-get update &amp;amp;&amp;amp; apt-get install -y gnupg software-properties-common
$ wget -O- https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
$ echo &amp;#34;deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main&amp;#34; | \
tee /etc/apt/sources.list.d/hashicorp.list
$ apt update &amp;amp;&amp;amp; apt install -y terraform&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;2. 建立 Terraform 設定檔&lt;span class="hx:absolute hx:-mt-20" id="2-建立-terraform-設定檔"&gt;&lt;/span&gt;
&lt;a href="#2-%e5%bb%ba%e7%ab%8b-terraform-%e8%a8%ad%e5%ae%9a%e6%aa%94" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 1. 建立儲存設定檔的工作目錄
$ mkdir terraform &amp;amp;&amp;amp; cd terraform
# 2. 產生 backend config
$ cat &amp;lt;&amp;lt;EOF &amp;gt; backend.tf
terraform {
required_providers {
proxmox = {
source = &amp;#34;telmate/proxmox&amp;#34;
version = &amp;#34;3.0.1-rc2&amp;#34;
}
}
backend &amp;#34;local&amp;#34; {
}
}
EOF
# 3. 產生 provider config
$ cat &amp;lt;&amp;lt;EOF &amp;gt; provider.tf
provider &amp;#34;proxmox&amp;#34; {
pm_api_url = &amp;#34;https://192.168.61.11:8006/api2/json&amp;#34;
# api token id is in the form of: &amp;lt;username&amp;gt;@pam!&amp;lt;tokenId&amp;gt;
pm_api_token_id = &amp;#34;terraform@pve!provider&amp;#34;
# this is the full secret wrapped in quotes.
pm_api_token_secret = var.PROXMOX_API_SECRET
pm_tls_insecure = true
# debug log
# pm_log_enable = true
# pm_log_file = &amp;#34;terraform-plugin-proxmox.log&amp;#34;
# pm_debug = true
# pm_log_levels = {
# _default = &amp;#34;debug&amp;#34;
# _capturelog = &amp;#34;&amp;#34;
# }
}
EOF
# 4. 產生變數設定檔
$ cat &amp;lt;&amp;lt;EOF &amp;gt; vars.tf
variable &amp;#34;PROXMOX_API_SECRET&amp;#34; {
type = string
}
variable &amp;#34;ssh_key&amp;#34; {
default = &amp;#34;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCa5vPXuVVZOQJw&amp;#43;mvQizMqOY&amp;#43;sJryVg/yPQHHq1NfLVZREbjUHvIMJcTVzEVpy6oO/v6pQ4wYbgUQqPmCP/Np/VvX6YBhdnhc99V8Jn9H99QhmXHVfrG3GgBQ5scupP5VUaPZ372gVsidu63uNyDvnSwZ0cAXUxvB3hANQBH0eJ13/zVKBkWVGQTd/eQJBQx5sxpwXW4sBcPaYdpt&amp;#43;Njtc31GqxwgSzTO9HAHp1aSDq4SA3VEjUNg7/ysW/MwuuslZBsz0wmi55nBa9dkHG1ao72c9viVWc&amp;#43;fz&amp;#43;nLjMRq6QDUxJd2TjQH4k7QexibDXCZydxac2tMRKRo3ukrdSs1TzjcnUdWtTnFM&amp;#43;wDEkWnObagkp9feRg5&amp;#43;7RWh&amp;#43;3qc2zq1/OCEMqGd6Gu17VUxWK4L3QEq&amp;#43;k13vgphuzQpziRiolh8ETvSM0EXajuHj5RoJQKAEhfURvFgH&amp;#43;qa5nUw8DTjtR2gfkevKXOJBTDT9GauTItZJi03fQhVAng1blP1d8OkD&amp;#43;yItHthiylBYW&amp;#43;UdMT/HCgc9JtkDzjtmfRH2HvDZnFJ1O46EX74wycEs7Lgyeu3vHIYC&amp;#43;AP7/XprT9jIT5UHo3MOJ4vZwP0OcFhqg0x&amp;#43;8ptjzWRtn1SubcNRsYlJlc59gqAPSyrsAtYL5FGohgGokxlRX8hDjUhcLmknFQhiw== root@pve&amp;#34;
}
variable &amp;#34;proxmox_host&amp;#34; {
default = &amp;#34;pve&amp;#34;
}
variable &amp;#34;template_name&amp;#34; {
default = &amp;#34;alp-cloudinit-v3.19.1&amp;#34;
}
EOF
# 5. 產生 Terraform VM 設定檔 main.tf
$ nano main.tf
resource &amp;#34;proxmox_vm_qemu&amp;#34; &amp;#34;ckad&amp;#34; {
count = 1
name = &amp;#34;alp-${count.index &amp;#43; 1}&amp;#34;
target_node = var.proxmox_host
vmid = &amp;#34;101${count.index &amp;#43; 1}&amp;#34;
clone = var.template_name
os_type = &amp;#34;cloud-init&amp;#34;
cpu = &amp;#34;host&amp;#34;
cores = 4
sockets = 1
memory = 4096
scsihw = &amp;#34;virtio-scsi-pci&amp;#34;
bootdisk = &amp;#34;scsi0&amp;#34;
disks {
scsi {
scsi0 {
disk {
size = &amp;#34;50G&amp;#34;
storage = &amp;#34;local-lvm&amp;#34;
}
}
}
ide {
ide3 {
cloudinit {
storage = &amp;#34;local-lvm&amp;#34;
}
}
}
}
network {
model = &amp;#34;virtio&amp;#34;
bridge = &amp;#34;vmbr0&amp;#34;
tag = -1
firewall = false
link_down = false
}
ipconfig0 = &amp;#34;ip=192.168.61.2${count.index &amp;#43; 1}/22,gw=192.168.61.2&amp;#34;
ciuser = &amp;#34;terraform&amp;#34;
sshkeys = &amp;lt;&amp;lt;EOF
${var.ssh_key}
EOF
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;2.1. 檢查目錄結構&lt;span class="hx:absolute hx:-mt-20" id="21-檢查目錄結構"&gt;&lt;/span&gt;
&lt;a href="#21-%e6%aa%a2%e6%9f%a5%e7%9b%ae%e9%8c%84%e7%b5%90%e6%a7%8b" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ tree ../terraform
../terraform
├── backend.tf
├── main.tf
├── provider.tf
└── vars.tf
1 directory, 4 files&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;3. 建立 VM&lt;span class="hx:absolute hx:-mt-20" id="3-建立-vm"&gt;&lt;/span&gt;
&lt;a href="#3-%e5%bb%ba%e7%ab%8b-vm" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ export PROXMOX_API_SECRET=&amp;#34;1fb0b04e-5673-4d5c-b580-ae602c718d89&amp;#34;
# inicialise the terraform modules
$ terraform init --upgrade
# generate a terraform plan
$ terraform plan -out ckad.tfplan
# deploy the VMs
$ terraform apply -parallelism=1 -auto-approve ckad.tfplan
# cleanup
$ terraform plan -destroy -out ckad.tfplan
$ terraform apply &amp;#34;ckad.tfplan&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;4. 參考文章&lt;span class="hx:absolute hx:-mt-20" id="4-參考文章"&gt;&lt;/span&gt;
&lt;a href="#4-%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://registry.terraform.io/providers/Telmate/proxmox/latest/docs/guides/cloud_init"target="_blank" rel="noopener"&gt;Cloud Init Guide - Terraform Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Shrink the VM Disk File on Proxmox</title><link>https://blog.kubeantony.com/archive/virtualization/shrink-the-vm-disk-file-on-proxmox/</link><pubDate>Sun, 19 May 2024 06:12:46 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/shrink-the-vm-disk-file-on-proxmox/</guid><description>
&lt;h2&gt;1. Get Volume ID&lt;span class="hx:absolute hx:-mt-20" id="1-get-volume-id"&gt;&lt;/span&gt;
&lt;a href="#1-get-volume-id" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ pvesm list local-lvm --vmid 534
Volid Format Type Size VMID
local-lvm:vm-534-cloudinit raw images 4194304 534
local-lvm:vm-534-disk-0 raw images 107374182400 534&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;2. Get the path to the disk&lt;span class="hx:absolute hx:-mt-20" id="2-get-the-path-to-the-disk"&gt;&lt;/span&gt;
&lt;a href="#2-get-the-path-to-the-disk" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ pvesm path local-lvm:vm-534-disk-0
/dev/pve/vm-534-disk-0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;3. Create a Folder&lt;span class="hx:absolute hx:-mt-20" id="3-create-a-folder"&gt;&lt;/span&gt;
&lt;a href="#3-create-a-folder" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ mkdir ub2204&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;3. Shrink the Disk File&lt;span class="hx:absolute hx:-mt-20" id="3-shrink-the-disk-file"&gt;&lt;/span&gt;
&lt;a href="#3-shrink-the-disk-file" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ qemu-img convert -p -f raw -O qcow2 /dev/pve/vm-534-disk-0 /root/ub2204/ub2204.qcow2
(100.00/100%)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;4. Check&lt;span class="hx:absolute hx:-mt-20" id="4-check"&gt;&lt;/span&gt;
&lt;a href="#4-check" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ ls -lh ub2204/
total 12G
-rw-r--r-- 1 root root 12G May 19 13:14 ub2204.qcow2
$ qm create 535 --name ubtest2 --memory 12288 --cores 4 --net0 virtio,bridge=vmbr0
$ qm importdisk 535 ~/ub2204/ub2204.qcow2 local-lvm
$ qm set 535 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-535-disk-0
$ qm set 535 --ide2 local-lvm:cloudinit
$ pvesm list local-lvm --vmid 535
Volid Format Type Size VMID
local-lvm:vm-535-cloudinit raw images 4194304 535
local-lvm:vm-535-disk-0 raw images 107374182400 535
$ qm set 535 --boot c --bootdisk scsi0
$ nano /var/lib/vz/snippets/user535.yml
#cloud-config
hostname: ub2204
package_update: true
packages:
- nano
write_files:
- path: /etc/resolv.conf
permissions: 0644
owner: root
content: |
nameserver 8.8.8.8
system_info:
default_user:
name: bigred
groups: bigred
lock_passwd: false
sudo: ALL=(ALL) NOPASSWD:ALL
plain_text_passwd: &amp;#39;bigred&amp;#39;
homedir: /home/bigred
shell: /bin/bash
ssh_pwauth: True
# - bootcmd will run on every boot
#bootcmd:
# - echo &amp;#34;hi andy&amp;#34; &amp;gt; /home/andy/test
$ nano /var/lib/vz/snippets/network535.yml
version: 1
config:
- type: physical
name: ens18
subnets:
- type: static
address: &amp;#39;192.168.33.99&amp;#39;
netmask: &amp;#39;255.255.255.0&amp;#39;
gateway: &amp;#39;192.168.33.254&amp;#39;
$ qm set 535 --cicustom &amp;#34;user=local:snippets/user535.yml,network=local:snippets/network535.yml&amp;#34;
update VM 535: -cicustom user=local:snippets/user535.yml,network=local:snippets/network535.yml
$ qm start 535&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>清除 VMWare Player 虛擬主機清單</title><link>https://blog.kubeantony.com/archive/virtualization/%E6%B8%85%E9%99%A4-vmware-player-%E8%99%9B%E6%93%AC%E4%B8%BB%E6%A9%9F%E6%B8%85%E5%96%AE/</link><pubDate>Mon, 18 Dec 2023 06:44:24 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/%E6%B8%85%E9%99%A4-vmware-player-%E8%99%9B%E6%93%AC%E4%B8%BB%E6%A9%9F%E6%B8%85%E5%96%AE/</guid><description>
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ type &amp;#34;c:\Documents and Settings\%USERNAME%\Application Data\VMWare\preferences.ini&amp;#34; | findstr /v pref.mruVM &amp;gt; myvm.ini &amp;amp;&amp;amp; copy /A /Y myvm.ini &amp;#34;c:\Documents and Settings\%USERNAME%\Application Data\VMWare\preferences.ini&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>2023 Windows &amp; VMware IaC 開發及使用手冊</title><link>https://blog.kubeantony.com/archive/virtualization/2023-windows-vmware-iac-%E9%96%8B%E7%99%BC%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8A/</link><pubDate>Mon, 24 Apr 2023 14:18:10 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/2023-windows-vmware-iac-%E9%96%8B%E7%99%BC%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8A/</guid><description>
&lt;style&gt;
.indent-title-1{
margin-left: 1em;
}
.indent-title-2{
margin-left: 2em;
}
.indent-title-3{
margin-left: 3em;
}
&lt;/style&gt;
&lt;h2&gt;緣由&lt;span class="hx:absolute hx:-mt-20" id="緣由"&gt;&lt;/span&gt;
&lt;a href="#%e7%b7%a3%e7%94%b1" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;       要&lt;strong&gt;手動部屬&lt;/strong&gt;多台虛擬主機時，有高機率造成 &lt;strong&gt;Human Error&lt;/strong&gt; ，會&lt;strong&gt;產生大量時間成本&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;       虛擬化技術中，一個資料夾代表一台電腦，要設定每一台虛擬主機的 hostname, IP 位址, 名稱解析檔&amp;hellip;等，此時容易發生 Human Error。&lt;/p&gt;
&lt;p&gt;       當每一台虛擬主機手動做好以上設定時，要將每一台虛擬主機先壓縮，此時必須坐在電腦前面，手動將每一台虛擬主機都壓縮，壓縮完後，再手動將每一個壓縮檔，派送到對應的實體 Windows 電腦，再手動將每一台虛擬主機的壓縮檔解壓縮，最後再進到每一台虛擬主機的目錄，將虛擬主機啟動。&lt;/p&gt;
&lt;p&gt;       以上動作，如果沒有事先規劃好，壓縮檔的檔名，要放在哪個目錄，哪一台虛擬機要派送到哪一台實體 Windows 電腦，要解壓縮到哪一個目錄，當叢集需要用到的 虛擬主機數量越大時，會造成管理上的不方便。&lt;/p&gt;
&lt;p&gt;       當以上動作完成，將已派送到對應 Windows 主機裡的虛擬主機都啟動後，又發現與當初規劃的規格不符，此時又要跳回第一步，會耗用大量時間成本。&lt;/p&gt;
&lt;h2&gt;認識 IaC&lt;span class="hx:absolute hx:-mt-20" id="認識-iac"&gt;&lt;/span&gt;
&lt;a href="#%e8%aa%8d%e8%ad%98-iac" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;伺服器環境的手動配置給 IT 專業人員帶來了一些挑戰，例如，由於不斷增加的複雜性和對 IT 基礎架構的相關需求。&lt;/p&gt;
&lt;p&gt;Infrastructure as Code，中文翻為 &amp;ldquo;基礎架構程式碼&amp;rdquo; ，提供了一種替代方法，將基礎架構的提供、配置與管理方式自動化。&lt;/p&gt;
&lt;p&gt;Infrastructure 以實體比喻的話，就是機房裡的 Server&lt;/p&gt;
&lt;p&gt;Iac 分為兩種方法，分別是 Declarative (聲明式) 和 Imperative (宣告式)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;聲明式主要說明基礎系統架構要完成甚麼目標、需要的資源或任何狀態&lt;/li&gt;
&lt;li&gt;宣告式定義了實現基礎系統架構所需的特定命令，並以正確的順序執行這些命令。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;執行它的&lt;strong&gt;好處&lt;/strong&gt;不僅可以&lt;strong&gt;降低 Human Error&lt;/strong&gt; 、&lt;strong&gt;縮短建置系統的時間&lt;/strong&gt;，還可以&lt;strong&gt;確保每次都建立出一模一樣的基礎架構&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;舉例，在 &lt;code&gt;CNT.2023.v4.6&lt;/code&gt; 的套件包裡面的 &lt;code&gt;docker.bat&lt;/code&gt;, &lt;code&gt;k8s.bat&lt;/code&gt;, &lt;code&gt;dt.bat&lt;/code&gt; …等批次檔案，都能快速建立起，對應的基礎架構。&lt;/p&gt;
&lt;p&gt;註解：IaC 技術幫我們從落地雲主機自動產生以及複製虛擬主機，並派送至多台不同的實體 Windows 10 主機&lt;/p&gt;
&lt;p&gt;參考文章連結 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.novatec-gmbh.de/en/blog/understanding-infrastructure-as-code-iac-in-less-than-10-minutes/"target="_blank" rel="noopener"&gt;Understanding Infrastructure as Code (IaC) in less than 10 minutes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.trendmicro.com/zh_tw/what-is/cloud-security/infrastructure-as-code.html"target="_blank" rel="noopener"&gt;何謂基礎架構程式碼 (IaC)？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.redhat.com/en/topics/automation/what-is-infrastructure-as-code-iac"target="_blank" rel="noopener"&gt;What is Infrastructure as Code (IaC)?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1&gt;&lt;font color=red&gt;Windows &amp;amp; VMware IaC 平台設計&lt;/font&gt;&lt;/h1&gt;&lt;h2&gt;&lt;font color=blue&gt;平台目標&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="平台目標"&gt;&lt;/span&gt;
&lt;a href="#%e5%b9%b3%e5%8f%b0%e7%9b%ae%e6%a8%99" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;&lt;strong&gt;自動化建置與管理分散型叢集系統基礎架構&lt;/strong&gt;&lt;span class="hx:absolute hx:-mt-20" id="自動化建置與管理分散型叢集系統基礎架構"&gt;&lt;/span&gt;
&lt;a href="#%e8%87%aa%e5%8b%95%e5%8c%96%e5%bb%ba%e7%bd%ae%e8%88%87%e7%ae%a1%e7%90%86%e5%88%86%e6%95%a3%e5%9e%8b%e5%8f%a2%e9%9b%86%e7%b3%bb%e7%b5%b1%e5%9f%ba%e7%a4%8e%e6%9e%b6%e6%a7%8b" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;以 Kubernetes 架構範例 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一台 Master 主機&lt;/li&gt;
&lt;li&gt;三台 Worker 主機&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以 Hadoop 架構範例 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一台 Admin 機器&lt;/li&gt;
&lt;li&gt;兩台 Master 機器
&lt;ul&gt;
&lt;li&gt;M1 跑 Name Node, Secondary Name Node&lt;/li&gt;
&lt;li&gt;M2 跑 Resource Manager, Jobhistory Server&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;三台 Worker 機器
&lt;ul&gt;
&lt;li&gt;每一台機器都會跑 Data Node, Node Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;font color=blue&gt;重要操作步驟&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="重要操作步驟"&gt;&lt;/span&gt;
&lt;a href="#%e9%87%8d%e8%a6%81%e6%93%8d%e4%bd%9c%e6%ad%a5%e9%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;設計叢集架構 (&lt;code&gt;mactohost&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;產生虛擬電腦資料夾&lt;/li&gt;
&lt;li&gt;壓縮虛擬電腦資料夾&lt;/li&gt;
&lt;li&gt;派送虛擬電腦資料夾&lt;/li&gt;
&lt;li&gt;解壓縮所有虛擬主機壓縮檔&lt;/li&gt;
&lt;li&gt;啟動與檢視所有虛擬主機&lt;/li&gt;
&lt;li&gt;關閉所有虛擬主機&lt;/li&gt;
&lt;li&gt;備份與還原所有虛擬主機&lt;/li&gt;
&lt;li&gt;清除所有虛擬主機&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;font color=blue&gt;實體電腦硬體規格&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="實體電腦硬體規格"&gt;&lt;/span&gt;
&lt;a href="#%e5%af%a6%e9%ab%94%e9%9b%bb%e8%85%a6%e7%a1%ac%e9%ab%94%e8%a6%8f%e6%a0%bc" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;多台實體 Windows 10 電腦&lt;/li&gt;
&lt;li&gt;記憶體至少 24 G&lt;/li&gt;
&lt;li&gt;CPU: 4 C / 2 HT 以上&lt;/li&gt;
&lt;li&gt;須為靜態 IPv4 的 IP 位址&lt;/li&gt;
&lt;li&gt;每台實體 Windows 10 電腦會分別跑一台或多台不同的虛擬電腦&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;font color=blue&gt;虛擬電腦硬體規格&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="虛擬電腦硬體規格"&gt;&lt;/span&gt;
&lt;a href="#%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6%e7%a1%ac%e9%ab%94%e8%a6%8f%e6%a0%bc" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Linux 作業系統&lt;/li&gt;
&lt;li&gt;記憶體 : 依建置叢集需求設定&lt;/li&gt;
&lt;li&gt;CPU : 依建置叢集需求設定&lt;/li&gt;
&lt;li&gt;網路模式 : bridge&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;font color=blue&gt;虛擬電腦網路設定&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="虛擬電腦網路設定"&gt;&lt;/span&gt;
&lt;a href="#%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6%e7%b6%b2%e8%b7%af%e8%a8%ad%e5%ae%9a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;根據叢集的大小來規劃 IP 位址、 Subnetmask 以及 Default Gateway&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;&lt;font color=red&gt;開始建置 C1 Cluster (1M3W)&lt;/font&gt;&lt;/h1&gt;&lt;h2&gt;&lt;font color=blue&gt;建置叢集系統前準備&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="建置叢集系統前準備"&gt;&lt;/span&gt;
&lt;a href="#%e5%bb%ba%e7%bd%ae%e5%8f%a2%e9%9b%86%e7%b3%bb%e7%b5%b1%e5%89%8d%e6%ba%96%e5%82%99" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;關閉防火牆&lt;/strong&gt;
&lt;img src="https://i.imgur.com/dFF9CmH.png" alt="" loading="lazy" /&gt;
&lt;img src="https://i.imgur.com/rG9lAlg.png" alt="" loading="lazy" /&gt;
&lt;img src="https://i.imgur.com/DP0whdG.png" alt="" loading="lazy" /&gt;
&lt;img src="https://i.imgur.com/13RxLl3.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;確認實體 Windows 10 主機之間可用 &lt;code&gt;SSH&lt;/code&gt; 連接&lt;/strong&gt;
&lt;strong&gt;測試命令&lt;/strong&gt; :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; ssh bigred@&amp;lt;要派送的實體 Windows 10 電腦 的 IP 位址&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;無法連線，請用滑鼠右鍵點選 Windows Powershell 圖示，選擇&amp;quot;以系統管理員身分執行&amp;quot;，並執行以下命令&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;檢查 OpenSSH 目前的狀態&lt;/strong&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;PS &amp;gt; Get-WindowsCapability -Online | Where-Object Name -like &amp;#39;OpenSSH*&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
如果 OpenSSH Server 沒有安裝，命令應返回以下輸出 :
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安裝 OpenSSH Server 命令&lt;/strong&gt; :
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;PS &amp;gt; Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
螢幕輸出 :
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Path :
Online : True
RestartNeeded : False&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;啟動 sshd 服務命令&lt;/strong&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;PS &amp;gt; Start-Service sshd&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;將 sshd 服務設為開機自動啟動&lt;/strong&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;PS &amp;gt; Set-Service -Name sshd -StartupType &amp;#39;Automatic&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;連線要派送虛擬主機壓縮檔的實體 Windows 10 電腦 的 IP 位址 測試&lt;/strong&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; ssh bigred@&amp;lt;要派送的實體 Windows 10 電腦 的 IP 位址&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[註] &lt;a
href="https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell#install-openssh-for-windows"target="_blank" rel="noopener"&gt;Install OpenSSH Server on Windows 10 官網連結&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;將連接 Windows 實體主機 使用者的密碼存入 &lt;code&gt;passwd&lt;/code&gt; 檔案&lt;/strong&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad %USERPROFILE%\CNT.2023.v4.6\C1-1M3W\passwd&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;將連接 模板 虛擬主機 使用者的密碼存入 &lt;code&gt;passwd_vm&lt;/code&gt; 檔案&lt;/strong&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad %USERPROFILE%\CNT.2023.v4.6\C1-1M3W\passwd_vm&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;請執行 VMware Player 這軟體以下設定&lt;/strong&gt;
步驟一 : &lt;code&gt;Player&lt;/code&gt; &amp;gt; &lt;code&gt;File&lt;/code&gt; &amp;gt; &lt;code&gt;Preferences...&lt;/code&gt;
步驟二 : In the &amp;ldquo;&lt;code&gt;Software updates&lt;/code&gt;&amp;rdquo; group &amp;gt; uncheck the &amp;ldquo;&lt;code&gt;Check for software components as needed&lt;/code&gt;&amp;rdquo; option.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;確認被遠端控制的實體 Windows 主機，開放讓 psexec 遠端連接權限
用系統管理員身份打開 CMD，並執行以下命令&lt;/strong&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[註] 1. 機碼修改後，需重啟電腦
       2. 如有安裝 F-Secure，請關閉 F-Secure 防火牆
參考文章連結 : &lt;a
href="http://pejslin.blogspot.com/2019/11/pstools-windows-10.html"target="_blank" rel="noopener"&gt;PsTools 於 Windows 10 的環境設定&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;確認 Windows 主機上當前的使用者家目錄下 ssh 的私鑰 &lt;code&gt;%USERPROFILE%\.ssh\id_rsa&lt;/code&gt; 權限是否太開放，
&lt;img src="https://i.imgur.com/4az6V2n.png" alt="" loading="lazy" /&gt;&lt;br&gt;
如果在群組或其他使用者這個欄位下，有其他人，那麼請執行以下命令 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; cd %USERPROFILE%\CNT.2023.v4.6\C1-1M3W &amp;amp;&amp;amp; sshsetup.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;SSH key Setup ok !&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/wgqDyZb.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;1. 設計 c1 叢集架構&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="1-設計-c1-叢集架構"&gt;&lt;/span&gt;
&lt;a href="#1-%e8%a8%ad%e8%a8%88-c1-%e5%8f%a2%e9%9b%86%e6%9e%b6%e6%a7%8b" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;&lt;div class="indent-title-2"&gt;設定 c1 叢集架構檔 - &lt;code&gt;mactohost&lt;/code&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="設定-c1-叢集架構檔---mactohost"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-c1-%e5%8f%a2%e9%9b%86%e6%9e%b6%e6%a7%8b%e6%aa%94---mactohost" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;在 Windows 中，打開 CMD ，執行以下命令&lt;/p&gt;
&lt;p&gt;切換至工作目錄&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; cd CNT.2023.v4.6\C1-3M3W&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;編輯 &lt;code&gt;c1mactohost&lt;/code&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad c1mactohost&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檔案內容 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# Default Cluster
00:00 x1 none
00:01 x2 VMware
00:02 x3 VMware
00:03 a1 admin
00:04 m1 master
00:05 m2 master
00:06 m3 master
00:07 w1 worker
00:08 w2 worker
00:09 w3 worker
# K8S c1 Cluster ALP.K8S
10:f0 c1a1 admin
10:f1 c1m1 master c1m1.241.zip c1/alp.c1m1 120.96.143.170
10:f2 c1m2 master
10:f3 c1m3 master
10:f4 c1e1 etcd
10:f5 c1w1 worker c1w1.245.zip c1/alp.c1w1 120.96.143.170
10:f6 c1w2 worker c1w2.246.zip c1/alp.c1w2 120.96.143.171
10:f7 c1w3 worker c1w3.247.zip c1/alp.c1w3 120.96.143.171
10:f8 c1w4 worker
10:f9 c1w5 worker&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;&lt;strong&gt;欄位說明 (用 空格 做切割)&lt;/strong&gt; :&lt;span class="hx:absolute hx:-mt-20" id="欄位說明-用-空格-做切割-"&gt;&lt;/span&gt;
&lt;a href="#%e6%ac%84%e4%bd%8d%e8%aa%aa%e6%98%8e-%e7%94%a8-%e7%a9%ba%e6%a0%bc-%e5%81%9a%e5%88%87%e5%89%b2-" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;先單獨看第 12 行內容，
&lt;pre&gt;# K8S &lt;font color=red&gt;c1&lt;/font&gt; Cluster &lt;font color=red&gt;ALP.K8S&lt;/font&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;第三欄 &lt;font color=red&gt;&lt;code&gt;c1&lt;/code&gt;&lt;/font&gt; 會與 &lt;code&gt;CNT.2023.V4.6\C1-1A3M\c1mactohost&lt;/code&gt; 這個檔案的前兩個字 &lt;code&gt;c1&lt;/code&gt; 比較，所以不能亂設定&lt;/li&gt;
&lt;li&gt;第五欄 &lt;font color=red&gt;&lt;code&gt;ALP.K8S&lt;/code&gt;&lt;/font&gt; 設定 模板機的目錄名稱
&lt;ul&gt;
&lt;li&gt;模板機必須放在 &lt;code&gt;%USERPROFILE%\CNT.2023.v4.6\&lt;/code&gt;目錄下&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第一欄為 設定 VM 主機 的 Mac Address 最後兩個位元 (byte)
&lt;ul&gt;
&lt;li&gt;用冒號分隔的格式 :
前半部是 c1 = 10, c2 = 20&amp;hellip; 依此類推
&lt;strong&gt;後半部是 VM 的 IP 位址尾數換算為 16 進位&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;舉例 :
假設現在要設定的是 c1 叢集裡面 IP 位址尾數 &lt;code&gt;.210&lt;/code&gt; 的 VM，
依照上述規則，得到的答案 : &lt;code&gt;10:d2&lt;/code&gt;
&lt;strong&gt;Note:&lt;/strong&gt;
    &lt;strong&gt;1. 16 進位中的英文需設為小寫&lt;/strong&gt;
    &lt;strong&gt;2. 不能設為 : &lt;code&gt;10:xx&lt;/code&gt; ，會導致虛擬機器的 &lt;code&gt;/etc/hosts&lt;/code&gt; 無法正常解析 !
    3. 在此檔案中的任何一台 VM 的 Mac Address 不可重複&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第二欄為 設定 VM 主機名稱
&lt;ul&gt;
&lt;li&gt;格式 : 叢集名稱 + mactohost 第三欄位的第一個字 + 序號(從 1 開始)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第三欄為 各 VM 的角色扮演&lt;/li&gt;
&lt;li&gt;第四欄為 VM 目錄壓縮檔名
&lt;ul&gt;
&lt;li&gt;格式 : VM 主機名稱 + VM IP 位址的尾數 + 壓縮檔的附檔名 (.zip)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第五欄為 VM 存放的目錄名稱
&lt;ul&gt;
&lt;li&gt;格式 : &lt;code&gt;叢集名稱/us.主機名稱&lt;/code&gt; (us = Ubuntu Server 的縮寫)&lt;/li&gt;
&lt;li&gt;格式 : &lt;code&gt;叢集名稱/alp.主機名稱&lt;/code&gt; (alp = Alpine Linux 的縮寫)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第六欄為 VM 要分配到哪一台實體電腦的 IP 位址&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;2. 建立 c1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="2-建立-c1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#2-%e5%bb%ba%e7%ab%8b-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;create.bat 程式概述 ： 在落地雲主機的 &lt;code&gt;C:\Users\bigred\CNT.2023.v4.6\C1-1M3W&lt;/code&gt; 目錄下，做出 c1 的資料夾，並在 c1 目錄下建立 4 台虛擬機
&lt;strong&gt;[重要] 根據實體電腦的記憶體來修改 vmcreate.bat 中 RSMMAX 變數直的大小&lt;/strong&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 設定 Cluster Name
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set mactohost=%%y
)
for /f &amp;#34;tokens=3 delims= &amp;#34; %%z in (&amp;#39;type %mactohost% ^| more &amp;#43;11 ^| findstr &amp;#34;#&amp;#34;&amp;#39;) do (
set CN=%%z
)
REM 判斷 Cluster Name 有沒有設定錯誤
if NOT %mactohost:~0,2% == %CN% (
echo &amp;#34;Cluster Name Error !&amp;#34;
GOTO:eof
)
if exist %CN%\ (
echo &amp;#34;%CN% Folder existed !&amp;#34;
GOTO:eof
)
REM 設定 模板機所在目錄名稱 和 模板機的 vmx 檔案位置 變數
for /f &amp;#34;skip=1 tokens=5 delims= &amp;#34; %%a in (&amp;#39;type %mactohost% ^| findstr Cluster&amp;#39;) do (
set vmfolder=%%a
for /f &amp;#34;tokens=1&amp;#34; %%g in (&amp;#39;dir /S /B ..\%%a\ ^| findstr vmx$&amp;#39;) do (
set vmx=%%g
)
)
REM 將 c*mactohost 中 實體 Windows 主機的 IP 匯入 ip.txt 檔案中
if exist ip.txt (del ip.txt)
for /f &amp;#34;skip=12 tokens=6 delims= &amp;#34; %%y in (%mactohost%) do (
echo %%y &amp;gt;&amp;gt; ip.txt
)
REM 判斷要派送的主機 22 port 有沒有開, psexec 功能是否正常
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=1 delims= &amp;#34; %%h in (&amp;#39;type ip.txt ^| sort.exe /unique&amp;#39;) do (
for /f &amp;#34;tokens=1&amp;#34; %%p in (&amp;#39;powershell -command &amp;#34;&amp;amp; {(New-Object System.Net.Sockets.TcpClient).ConnectAsync(&amp;#39;%%h&amp;#39;, 22).Wait(100)}&amp;#34;&amp;#39;) do (
if %%p == False echo &amp;#34;%%h SSH Error&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
REM 設定本機 IP 變數
for /f &amp;#34;delims=[] tokens=2&amp;#34; %%e in (&amp;#39;ping -4 -n 1 %ComputerName% ^| findstr [&amp;#39;) do (
set HostIP=%%e
)
if not defined HostIP &amp;#34;echo !HostIP! should manual configuration in %~nx0&amp;#34;
if not !HostIP! == %%h (
psexec -accepteula -nobanner \\%%h -s &amp;#34;hostname&amp;#34; &amp;gt; nul 2&amp;gt; nul
)
if !ERRORLEVEL! NEQ 0 (
echo &amp;#34;%%h psexec Error&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
)
del ip.txt 2&amp;gt; nul &amp;gt; nul
REM 判斷 VM 使用的 IP 目前有無被占用
for /f &amp;#34;skip=12 tokens=4,6 delims= &amp;#34; %%a in (%mactohost%) do (
for /f &amp;#34;tokens=1-3 delims=.&amp;#34; %%x in (&amp;#39;echo %%b&amp;#39;) do (
for /f &amp;#34;tokens=2 delims=.&amp;#34; %%i in (&amp;#39;echo %%a&amp;#39;) do (
ping -n 1 %%x.%%y.%%z.%%i | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt;nul
if !ERRORLEVEL! EQU 0 echo &amp;#34;%%x.%%y.%%z.%%i is already being used.&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
)
)
)
REM 判斷 10 進位轉 16 進位有沒有算錯
for /f &amp;#34;tokens=1,2 delims=.&amp;#34; %%k in (&amp;#39;type %mactohost% ^| findstr zip&amp;#39;) do (
for /f &amp;#34;tokens=2 delims=:&amp;#34; %%s in (&amp;#34;%%k&amp;#34;) do (
for /f &amp;#34;tokens=1&amp;#34; %%o in (&amp;#34;%%s&amp;#34;) do (
set &amp;#34;h=%%o&amp;#34;
set &amp;#34;DEC=%%l&amp;#34;
cmd /C exit !DEC!
set &amp;#34;HEX=!=ExitCode!&amp;#34;
for /F &amp;#34;tokens=* delims=0&amp;#34; %%Z in (&amp;#34;!HEX!&amp;#34;) do (
if /I !DEC! LSS 16 (
set &amp;#34;HEX=0%%Z&amp;#34;
for /F &amp;#34;delims=&amp;#34; %%r in (&amp;#39;powershell -command &amp;#34; &amp;#39;!HEX!&amp;#39;.ToLower() &amp;#34;&amp;#39;) do (
set &amp;#34;SHEX=%%r&amp;#34;
if NOT &amp;#34;!h!&amp;#34; EQU &amp;#34;!SHEX!&amp;#34; echo The hexadecimal representation of !DEC! is !SHEX!, not !h!. &amp;amp;&amp;amp; GOTO:eof
)
) else (
set &amp;#34;HEX=%%Z&amp;#34;
for /F &amp;#34;delims=&amp;#34; %%r in (&amp;#39;powershell -command &amp;#34; &amp;#39;!HEX!&amp;#39;.ToLower() &amp;#34;&amp;#39;) do (
set &amp;#34;SHEX=%%r&amp;#34;
if NOT &amp;#34;!h!&amp;#34; EQU &amp;#34;!SHEX!&amp;#34; echo The hexadecimal representation of !DEC! is !SHEX!, not !h!. &amp;amp;&amp;amp; GOTO:eof
)
)
)
)
)
)
REM 設定 VM 可用記憶體範圍
powershell -Command &amp;#34;(Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /8Mb&amp;#34; &amp;gt; max.txt
powershell -Command &amp;#34;(Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /8Mb&amp;#34; &amp;gt; min.txt
set /P MAX=&amp;lt;max.txt
set /P MIN=&amp;lt;min.txt
for /f &amp;#34;tokens=2 delims==&amp;#34; %%a in (&amp;#39;type %vmx% ^| findstr memsize&amp;#39;) do (
set mem=%%a
)
set RSMMAX=&amp;#39;memsize = \&amp;#34;%mem:~2,-1%\&amp;#34;&amp;#39;, &amp;#39;memsize = \&amp;#34;%MAX%\&amp;#34;&amp;#39;
set RSMMIN=&amp;#39;memsize = \&amp;#34;%mem:~2,-1%\&amp;#34;&amp;#39;, &amp;#39;memsize = \&amp;#34;%MIN%\&amp;#34;&amp;#39;
set RSADR1=&amp;#39;ethernet0.generatedAddressOffset = \&amp;#34;0\&amp;#34;&amp;#39;
set RSADR2=&amp;#39;ethernet0.addressType = \&amp;#34;generated\&amp;#34;&amp;#39; , &amp;#39;ethernet0.addressType = \&amp;#34;static\&amp;#34;&amp;#39;
set RSTYPE=&amp;#39;ethernet0.connectionType = \&amp;#34;nat\&amp;#34;&amp;#39; , &amp;#39;ethernet0.connectionType = \&amp;#34;bridge\&amp;#34;&amp;#39;
for %%i in (vmfolder vmx mem) do (
if not defined %%i (
echo %%i not defined &amp;amp;&amp;amp; GOTO:eof
)
)
REM 上載 mactohosts 至 模板 虛擬主機
&amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; start &amp;#34;%vmx%&amp;#34; &amp;gt; nul
timeout /t 60 &amp;gt; nul
&amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; getGuestIPAddress &amp;#34;%vmx%&amp;#34; &amp;gt; admip.txt
set /P admip=&amp;lt;admip.txt
echo y | pscp -pwfile &amp;#34;passwd_vm&amp;#34; &amp;#34;.\%CN%mactohost&amp;#34; bigred@%admip%:/home/bigred/bin/mactohost 2&amp;gt; nul &amp;gt; nul
if %ERRORLEVEL% EQU 0 echo &amp;#34;%CN%mactohost scp ok&amp;#34;
echo y | pscp -pwfile &amp;#34;passwd_vm&amp;#34; bigred@%admip%:/home/bigred/.ssh/* %USERPROFILE%\.ssh\ 2&amp;gt; nul &amp;gt; nul
if %ERRORLEVEL% EQU 0 echo &amp;#34;%admip% .ssh/* scp ok&amp;#34;
del %USERPROFILE%\.ssh\known_hosts 2&amp;gt; nul
del %USERPROFILE%\.ssh\known_hosts.old 2&amp;gt; nul
type %vmx% | findstr Ubuntu &amp;gt; nul 2&amp;gt; nul
if %ERRORLEVEL% NEQ 0 (
ssh -o &amp;#34;ConnectTimeout=5&amp;#34; -o &amp;#34;StrictHostKeyChecking=no&amp;#34; bigred@%admip% &amp;#34;sudo apk update; sudo apk upgrade&amp;#34; &amp;gt; nul 2&amp;gt;nul
if !ERRORLEVEL! EQU 0 echo &amp;#34;System upgrade ok&amp;#34;
) else (
ssh -o &amp;#34;ConnectTimeout=5&amp;#34; -o &amp;#34;StrictHostKeyChecking=no&amp;#34; bigred@%admip% &amp;#34;sudo apt update; sudo apt -y upgrade; sudo apt -y autoremove&amp;#34; &amp;gt; nul 2&amp;gt;nul
if !ERRORLEVEL! EQU 0 echo &amp;#34;System upgrade ok&amp;#34;
)
&amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; stop &amp;#34;%vmx%&amp;#34; &amp;gt; nul
timeout /t 60 &amp;gt; nul
REM 設定模板機 displayName 變數
for /f &amp;#34;tokens=2 delims==&amp;#34; %%a in (&amp;#39;type %vmx% ^| findstr displayName&amp;#39;) do (
set odn=%%a
)
REM 設定模板機 mac address 變數
for /f &amp;#34;tokens=2 delims==&amp;#34; %%a in (&amp;#39;type %vmx% ^| findstr &amp;#34;ethernet0.generatedAddress&amp;#34; ^| findstr &amp;#34;:&amp;#34;&amp;#39;) do (
set vmac=%%a
)
for %%j in (odn vmac) do (
if not defined %%j (
echo %%j not defined &amp;amp;&amp;amp; GOTO:eof
)
)
REM 建立 Cluster 的所有 VM
if exist %mactohost% (
if not exist %CN%\ (
mkdir %CN% &amp;gt; nul
if %ERRORLEVEL% EQU 0 (
for /f &amp;#34;tokens=1-6 delims= &amp;#34; %%a in (&amp;#39;findstr zip %mactohost%&amp;#39;) do (
set x=%%~nxe
set RS=&amp;#39;displayName = \&amp;#34;%odn:~2,-1%\&amp;#34;&amp;#39;, &amp;#39;displayName = \&amp;#34;!x!\&amp;#34;&amp;#39;
set y=%%a
set RSMAC=&amp;#39;ethernet0.generatedAddress = \&amp;#34;%vmac:~2,-1%\&amp;#34;&amp;#39; , &amp;#39;ethernet0.address = \&amp;#34;00:50:56:ab:!y!\&amp;#34;&amp;#39;
mkdir %CN%\!x! &amp;gt; nul
xcopy /E /Y ..\%vmfolder% %CN%\!x!\ &amp;gt; nul
for /f &amp;#34;tokens=1&amp;#34; %%p in (&amp;#39;dir %CN%\!x! /B /S ^| findstr vmx$&amp;#39;) do set nvmx=%%p
powershell -Command &amp;#34;(gc !nvmx!) -replace &amp;#34;!RS!&amp;#34; -replace &amp;#34;!RSMAC!&amp;#34; -replace &amp;#34;%RSMMAX%&amp;#34; -replace &amp;#34;%RSTYPE%&amp;#34; -replace &amp;#34;%RSADR1%&amp;#34; -replace &amp;#34;%RSADR2%&amp;#34; | Out-File -Encoding &amp;#34;UTF8&amp;#34; vm.temp&amp;#34;
del /Q !nvmx!
copy /Y vm.temp !nvmx! &amp;gt; nul
if !ERRORLEVEL! EQU 0 echo &amp;#34;%CN%\!x!\ (%MAX%) ok&amp;#34;
)
del *.txt &amp;gt; nul
del vm.temp &amp;gt; nul
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行建立 c1 叢集命令&lt;span class="hx:absolute hx:-mt-20" id="執行建立-c1-叢集命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e5%bb%ba%e7%ab%8b-c1-%e5%8f%a2%e9%9b%86%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在執行命令前，請先確定是否已完成 &lt;a
href="https://hackmd.io/NyMWv5u5Rlm-ip-9CHi3Tg?both#%E5%8F%A2%E9%9B%86%E7%B3%BB%E7%B5%B1%E6%BA%96%E5%82%99"target="_blank" rel="noopener"&gt;叢集系統準備&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在 Windows 工作目錄 &lt;code&gt;CNT.2023.v4.6\c1-1M3W&lt;/code&gt; 下，執行程式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmcreate.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;c1mactohost scp ok&amp;#34;
&amp;#34;192.168.61.131 .ssh/* scp ok&amp;#34;
&amp;#34;System upgrade ok&amp;#34;
&amp;#34;c1\alp.c1m1\ (4096) ok&amp;#34;
&amp;#34;c1\alp.c1w1\ (4096) ok&amp;#34;
&amp;#34;c1\alp.c1w2\ (4096) ok&amp;#34;
&amp;#34;c1\alp.c1w3\ (4096) ok&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[註] 如遇到需要輸入密碼，請參考以下連結 :
       &lt;a
href="https://superuser.com/questions/1296024/windows-ssh-permissions-for-private-key-are-too-open"target="_blank" rel="noopener"&gt;Windows SSH: Permissions for &amp;lsquo;private-key&amp;rsquo; are too open&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;3. 壓縮 c1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="3-壓縮-c1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#3-%e5%a3%93%e7%b8%ae-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;zip.bat 程式概述 : 此程式使用 7z 作為虛擬主機目錄的壓縮命令&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 設定 Cluster Name
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 在 mactohost 中抓取壓縮時需要的字串
if exist %CN:~0,2%zip.txt (del %CN:~0,2%zip.txt &amp;gt; nul)
for /f &amp;#34;tokens=3,* delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do echo %%b | findstr zip &amp;gt;&amp;gt; %CN:~0,2%zip.txt
REM 透過 For 迴圈，逐行代變數壓縮 VM 所在的資料夾
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=1,2 delims= &amp;#34; %%a in (%CN:~0,2%zip.txt) do (
7z\7z -mx1 a %CN:~0,2%\%%a %%b &amp;gt; nul
if !ERRORLEVEL! EQU 0 (echo &amp;#34;%%a ok&amp;#34;)
)
del %CN:~0,2%zip.txt &amp;gt; nul&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行壓縮程式&lt;span class="hx:absolute hx:-mt-20" id="執行壓縮程式"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e5%a3%93%e7%b8%ae%e7%a8%8b%e5%bc%8f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmzip.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;c1m1.141.zip ok&amp;#34;
&amp;#34;c1w1.145.zip ok&amp;#34;
&amp;#34;c1w2.146.zip ok&amp;#34;
&amp;#34;c1w3.147.zip ok&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;4. 派送 c1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="4-派送-c1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#4-%e6%b4%be%e9%80%81-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;scp.bat 概述 : 使用 pscp.exe 命令，將 c1 叢集每一台虛擬主機的壓縮檔派送到 mactohost 中設定對應的各台實體 Windows 主機&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 判斷叢集名稱
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 設定本機 IP 變數
for /f &amp;#34;delims=[] tokens=2&amp;#34; %%e in (&amp;#39;ping -4 -n 1 %ComputerName% ^| findstr [&amp;#39;) do (
set HostIP=%%e
)
REM 抓取在 d*mactohost 中，每一台虛擬主機的相關資訊，並將資料逐行匯入 d*scp.txt
if exist %CN:~0,2%scp.txt (del %CN:~0,2%scp.txt &amp;gt; nul)
for /f &amp;#34;tokens=1* delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do echo %%b | findstr zip &amp;gt;&amp;gt; %CN:~0,2%scp.txt
REM 將每一台虛擬主機的壓縮檔透過 pscp 命令，派送至對應的實體 Windows 主機的使用者家目錄
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=3,5 delims= &amp;#34; %%a in (%CN:~0,2%scp.txt) do (
if %%b == %HostIP% (
xcopy /Y %CN:~0,2%\%%a %USERPROFILE%\ &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%a to %%b ok&amp;#34;
) else (
echo &amp;#34;%%a to %%b failed&amp;#34;
)
) else (
echo y | pscp -scp -q -pwfile passwd &amp;#34;%CN:~0,2%\%%a&amp;#34; %USERNAME%@%%b:&amp;#34;%%a&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%a to %%b ok&amp;#34;
) else (
echo &amp;#34;%%a to %%b failed&amp;#34;
)
)
)
del %CN:~0,2%scp.txt &amp;gt; nul&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行程式&lt;span class="hx:absolute hx:-mt-20" id="執行程式"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e7%a8%8b%e5%bc%8f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmscp.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;c1m1.141.zip to 120.96.143.152 ok&amp;#34;
&amp;#34;c1w1.145.zip to 120.96.143.152 ok&amp;#34;
&amp;#34;c1w2.146.zip to 120.96.143.153 ok&amp;#34;
&amp;#34;c1w3.147.zip to 120.96.143.153 ok&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;5. 解壓縮所有虛擬主機壓縮檔至落地雲主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="5-解壓縮所有虛擬主機壓縮檔至落地雲主機"&gt;&lt;/span&gt;
&lt;a href="#5-%e8%a7%a3%e5%a3%93%e7%b8%ae%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%a3%93%e7%b8%ae%e6%aa%94%e8%87%b3%e8%90%bd%e5%9c%b0%e9%9b%b2%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;unzip.bat 程式概述 : 本程式在本機使用 7z 將 虛擬主機的壓縮檔解壓縮，遠端的主機使用 Windows Powershell 的 Expand-Archive 命令&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 判斷叢集名稱
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 設定本機 IP 變數
for /f &amp;#34;delims=[] tokens=2&amp;#34; %%a in (&amp;#39;ping -4 -n 1 %ComputerName% ^| findstr [&amp;#39;) do (
set HostIP=%%a
)
REM 解壓縮在本地或遠端的虛擬主機壓縮檔
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
if %%c == %HostIP% (
setlocal EnableDelayedExpansion
&amp;#34;%ProgramFiles%\7-Zip\7z&amp;#34; &amp;#34;x&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a&amp;#34; &amp;#34;-oC:\Users\%USERNAME%&amp;#34; &amp;gt; nul 2&amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb unzip ok !&amp;#34;
) else (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb unzip Failed !&amp;#34;
)
setlocal DisableDelayedExpansion
) else (
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
psexec -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Remove-Item&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; &amp;#34;-Recurse&amp;#34; 2&amp;gt; nul
psexec -accepteula -nobanner \\%%c -s &amp;#34;powershell&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Expand-Archive&amp;#34; &amp;#34;-LiteralPath&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a&amp;#34; &amp;#34;-DestinationPath&amp;#34; &amp;#34;C:\Users\%USERNAME%&amp;#34; 2&amp;gt; nul
) else (
psexec -accepteula -nobanner \\%%c -s &amp;#34;powershell&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Expand-Archive&amp;#34; &amp;#34;-LiteralPath&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a&amp;#34; &amp;#34;-DestinationPath&amp;#34; &amp;#34;C:\Users\%USERNAME%&amp;#34; 2&amp;gt; nul
)
)
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb unzip ok !&amp;#34;
) else (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb unzip Failed !&amp;#34;
)
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[註] &lt;code&gt;%%~nxb&lt;/code&gt;，在範例中 &lt;code&gt;%%b&lt;/code&gt; 為包含目錄的檔案名稱 : &lt;code&gt;c1/alp.c1w1&lt;/code&gt;，
&lt;code&gt;%%~nb&lt;/code&gt; - 顯示 &lt;code&gt;alp&lt;/code&gt; (&lt;code&gt;%%b&lt;/code&gt; 的 檔名)
&lt;code&gt;%%~xb&lt;/code&gt; - 顯示 &lt;code&gt;.c1w1&lt;/code&gt; ( &lt;code&gt;%%b&lt;/code&gt; 的副檔名，包含 &lt;code&gt;.&lt;/code&gt;)&lt;/p&gt;
&lt;h3&gt;執行解壓縮程式&lt;span class="hx:absolute hx:-mt-20" id="執行解壓縮程式"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e8%a7%a3%e5%a3%93%e7%b8%ae%e7%a8%8b%e5%bc%8f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmunzip.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.152 c1\alp.c1m1 unzip ok !&amp;#34;
&amp;#34;120.96.143.152 c1\alp.c1w1 unzip ok !&amp;#34;
&amp;#34;120.96.143.153 c1\alp.c1w2 unzip ok !&amp;#34;
&amp;#34;120.96.143.153 c1\alp.c1w3 unzip ok !&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;6. 啟動與檢視 c1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="6-啟動與檢視-c1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#6-%e5%95%9f%e5%8b%95%e8%88%87%e6%aa%a2%e8%a6%96-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;start.bat 程式概述 : 使用 VMware 的 vmrun 命令，配合 psexec 命令將 遠端 Windows 實體主機中的 虛擬主機啟動&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 判斷叢集名稱
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 設定本機 IP 變數
for /f &amp;#34;delims=[] tokens=2&amp;#34; %%a in (&amp;#39;ping -4 -n 1 %ComputerName% ^| findstr [&amp;#39;) do (
set HostIP=%%a
)
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1&amp;#34; %%k in (&amp;#39;dir %USERPROFILE%\%CN:~0,2% /S /B ^| findstr vmx$&amp;#39;) do (
for /f &amp;#34;tokens=5,* delims=\&amp;#34; %%l in (&amp;#34;%%k&amp;#34;) do (
set hostvmx=%%m
)
)
for /f &amp;#34;tokens=1&amp;#34; %%x in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%a -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Get-ChildItem&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;%USERPROFILE%\%CN:~0,2%&amp;#34; &amp;#34;-Name&amp;#34; &amp;#34;-Recurse&amp;#34; &amp;#34;-Force&amp;#34; ^2^&amp;gt;nul ^| findstr vmx$&amp;#39;) do (
for /f &amp;#34;tokens=1,* delims=\&amp;#34; %%y in (&amp;#34;%%x&amp;#34;) do (
set remotevmx=%%z
)
)
)
REM 啟動每一台虛擬主機
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
if %%c == %HostIP% (
&amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; start &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb\%hostvmx%&amp;#34; nogui 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%CN:~0,2%\%%~nxb started&amp;#34;
) else (
echo &amp;#34;%CN:~0,2%\%%~nxb failed&amp;#34;
)
timeout /t 5 &amp;gt; nul
) else (
psexec \\%%c -accepteula -nobanner -s &amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; &amp;#34;start&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb\%remotevmx%&amp;#34; &amp;#34;nogui&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%CN:~0,2%\%%~nxb started&amp;#34;
) else (
echo &amp;#34;%CN:~0,2%\%%~nxb failed&amp;#34;
)
timeout /t 5 &amp;gt; nul
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;1. 執行啟動 c1 叢集所有虛擬主機命令&lt;span class="hx:absolute hx:-mt-20" id="1-執行啟動-c1-叢集所有虛擬主機命令"&gt;&lt;/span&gt;
&lt;a href="#1-%e5%9f%b7%e8%a1%8c%e5%95%9f%e5%8b%95-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmstart.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;c1\alp.c1m1 started&amp;#34;
&amp;#34;c1\alp.c1w1 started&amp;#34;
&amp;#34;c1\alp.c1w2 started&amp;#34;
&amp;#34;c1\alp.c1w3 started&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;2. 在 Windows 檢視已開啟的虛擬電腦&lt;span class="hx:absolute hx:-mt-20" id="2-在-windows-檢視已開啟的虛擬電腦"&gt;&lt;/span&gt;
&lt;a href="#2-%e5%9c%a8-windows-%e6%aa%a2%e8%a6%96%e5%b7%b2%e9%96%8b%e5%95%9f%e7%9a%84%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;list.bat 程式概述 : 透過 ssh 遠端對虛擬主機執行命令，並檢視 虛擬主機的狀態&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 判斷叢集名稱
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 先用 ping 命令，檢測每一台虛擬主機網路，有回應則用 ssh 命令遠端對虛擬主機執行命令
for /f &amp;#34;skip=12 tokens=4,6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1-3 delims=.&amp;#34; %%x in (&amp;#39;echo %%b&amp;#39;) do (
for /f &amp;#34;tokens=2 delims=.&amp;#34; %%i in (&amp;#39;echo %%a&amp;#39;) do (
ping -n 2 &amp;#34;%%x.%%y.%%z.%%i&amp;#34; | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt; nul
if errorlevel 1 (
echo &amp;#34;%%x.%%y.%%z.%%i not running&amp;#34;
) else (
ssh -o &amp;#34;ConnectTimeout=5&amp;#34; -o &amp;#34;StrictHostKeyChecking=no&amp;#34; bigred@&amp;#34;%%x.%%y.%%z.%%i&amp;#34; &amp;#34;n=$(hostname;hostname -i); echo $n running&amp;#34; 2&amp;gt; nul
)
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行檢測命令&lt;span class="hx:absolute hx:-mt-20" id="執行檢測命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e6%aa%a2%e6%b8%ac%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmlist.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;c1m1 120.96.143.141 running
c1w1 120.96.143.145 running
c1w2 120.96.143.146 running
c1w3 120.96.143.147 running&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[註] 如將 VM 開機後，遇到類似以下錯誤訊息&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;`8f: value too great for base (error token is &amp;#34;8f&amp;#34;)`&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;請將 &lt;code&gt;/home/bigred/bin/chnameip&lt;/code&gt; 程式中原本的 51 行命令 &lt;code&gt;ip=$((16#$v))&lt;/code&gt; ，修改為 &lt;code&gt;ip=$(printf &amp;quot;%d\n&amp;quot; 0x&amp;quot;$v&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;7. 關閉 c1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="7-關閉-c1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#7-%e9%97%9c%e9%96%89-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;stop.bat 程式概述 : 利用 ssh 遠端對虛擬主機執行 sudo poweroff 的命令，將虛擬主機關閉&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 判斷叢集名稱
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 利用 ssh 遠端對每一台虛擬主機執行關機命令
setlocal EnableDelayedExpansion
for /f &amp;#34;skip=12 tokens=4,6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1-3 delims=.&amp;#34; %%x in (&amp;#39;echo %%b&amp;#39;) do (
for /f &amp;#34;tokens=2 delims=.&amp;#34; %%i in (&amp;#39;echo %%a&amp;#39;) do (
ping -n 2 &amp;#34;%%x.%%y.%%z.%%i&amp;#34; | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt; nul
if errorlevel 1 (
echo &amp;#34;%%x.%%y.%%z.%%i not running&amp;#34;
) else (
ssh -o &amp;#34;ConnectTimeout=5&amp;#34; -o &amp;#34;StrictHostKeyChecking=no&amp;#34; bigred@&amp;#34;%%x.%%y.%%z.%%i&amp;#34; &amp;#34;sudo poweroff; exit&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%x.%%y.%%z.%%i stoped&amp;#34;
) else (
if !ERRORLEVEL! EQU -1 echo &amp;#34;%%x.%%y.%%z.%%i stoped&amp;#34;
)
)
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行關機 c1 叢集所有虛擬主機 命令&lt;span class="hx:absolute hx:-mt-20" id="執行關機-c1-叢集所有虛擬主機-命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e9%97%9c%e6%a9%9f-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f-%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmstop.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.141 stoped&amp;#34;
&amp;#34;120.96.143.145 stoped&amp;#34;
&amp;#34;120.96.143.146 stoped&amp;#34;
&amp;#34;120.96.143.147 stoped&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;8. 備份與還原 c1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="8-備份與還原-c1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#8-%e5%82%99%e4%bb%bd%e8%88%87%e9%82%84%e5%8e%9f-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;backup.bat 程式概述 : 如果虛擬主機在本機，會透過 7z 壓縮，如果在遠端，會配合 psexec 命令，壓縮遠端的虛擬主機&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 判斷叢集名稱
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 設定本機 IP 變數
for /f &amp;#34;delims=[] tokens=2&amp;#34; %%e in (&amp;#39;ping -4 -n 1 %ComputerName% ^| findstr [&amp;#39;) do (
set HostIP=%%e
)
REM 先用 ping 命令，檢測每一台虛擬主機是否已關機
setlocal EnableDelayedExpansion
for /f &amp;#34;skip=12 tokens=4,6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1-3 delims=.&amp;#34; %%x in (&amp;#39;echo %%b&amp;#39;) do (
for /f &amp;#34;tokens=1,2 delims=.&amp;#34; %%i in (&amp;#39;echo %%a&amp;#39;) do (
ping -n 2 &amp;#34;%%x.%%y.%%z.%%j&amp;#34; | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! == 0 (
echo &amp;#34;Please Execute vmstop.bat&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
)
)
)
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
if %%c == %HostIP% (
if not exist &amp;#34;%USERPROFILE%\7-Zip&amp;#34; (
xcopy /E /Y &amp;#34;.\7z&amp;#34; &amp;#34;%USERPROFILE%\7-Zip\&amp;#34; &amp;gt; nul
)
&amp;#34;%USERPROFILE%\7-Zip\7z&amp;#34; -mx1 a &amp;#34;C:\Users\%USERNAME%\%%a.bak&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%b&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%c %%a.bak backup ok !&amp;#34;
) else (
echo &amp;#34;%%c %%a.bak backup failed !&amp;#34;
)
) else (
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;%USERPROFILE%\7-Zip&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == False (
echo y | pscp -scp -pwfile passwd -q -r &amp;#34;.\7z&amp;#34; %USERNAME%@%%c:&amp;#34;%USERPROFILE%\7-Zip\&amp;#34;
)
)
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
psexec -accepteula -nobanner \\%%c -s &amp;#34;%USERPROFILE%\7-Zip\7z&amp;#34; &amp;#34;-mx1&amp;#34; &amp;#34;a&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a.bak&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%b&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%c %%a.bak backup ok !&amp;#34;
) else (
echo &amp;#34;%%c %%a.bak backup failed !&amp;#34;
)
) else (
echo &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb VM folder not found !&amp;#34;
GOTO:eof
)
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行備份 c1 叢集所有虛擬主機 命令&lt;span class="hx:absolute hx:-mt-20" id="執行備份-c1-叢集所有虛擬主機-命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e5%82%99%e4%bb%bd-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f-%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmbackup.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.152 c1m1.141.zip.bak backup ok &amp;#34;
&amp;#34;120.96.143.152 c1w1.145.zip.bak backup ok &amp;#34;
&amp;#34;120.96.143.153 c1w2.146.zip.bak backup ok &amp;#34;
&amp;#34;120.96.143.153 c1w3.147.zip.bak backup ok &amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行失敗的螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;Please Execute vmstop.bat&amp;#34; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;可能原因 : 只要有一台 c1 cluster VM 沒關，就會噴出此錯誤訊息&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[註] 新的備份檔會直接覆蓋掉舊的備份檔&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;執行還原 c1 叢集所有虛擬主機命令&lt;span class="hx:absolute hx:-mt-20" id="執行還原-c1-叢集所有虛擬主機命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e9%82%84%e5%8e%9f-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;restore.bat 程式概述 : 如果虛擬主機在本機，會透過 7z 解壓縮，如果在遠端，會配合 psexec 命令，解壓縮遠端的虛擬主機&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 判斷叢集名稱
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 設定本機 IP 變數
for /f &amp;#34;delims=[] tokens=2&amp;#34; %%e in (&amp;#39;ping -4 -n 1 %ComputerName% ^| findstr [&amp;#39;) do (
set HostIP=%%e
)
REM 先用 ping 命令，檢測每一台虛擬主機是否已關機
setlocal EnableDelayedExpansion
for /f &amp;#34;skip=12 tokens=4,6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1-3 delims=.&amp;#34; %%x in (&amp;#39;echo %%b&amp;#39;) do (
for /f &amp;#34;tokens=1,2 delims=.&amp;#34; %%i in (&amp;#39;echo %%a&amp;#39;) do (
ping -n 2 &amp;#34;%%x.%%y.%%z.%%j&amp;#34; | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! == 0 (
echo &amp;#34;Please Execute vmstop.bat&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
)
)
)
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
if %%c == %HostIP% (
if exist &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; (
RD /S /Q &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; &amp;gt; nul 2&amp;gt; nul
&amp;#34;%USERPROFILE%\7-Zip\7z&amp;#34; x &amp;#34;C:\Users\%USERNAME%\%%a.bak&amp;#34; &amp;#34;-oC:\Users\%USERNAME%\%CN:~0,2%&amp;#34; &amp;gt; nul 2&amp;gt; nul
) else (
&amp;#34;%USERPROFILE%\7-Zip\7z&amp;#34; x &amp;#34;C:\Users\%USERNAME%\%%a.bak&amp;#34; &amp;#34;-oC:\Users\%USERNAME%\%CN:~0,2%&amp;#34; &amp;gt; nul 2&amp;gt; nul
)
if exist &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb restore ok !&amp;#34;
) else (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb restore Failed !&amp;#34;
)
) else (
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
psexec -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Remove-Item&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; &amp;#34;-Recurse&amp;#34; 2&amp;gt; nul
psexec -accepteula -nobanner \\%%c -s &amp;#34;%USERPROFILE%\7-Zip\7z&amp;#34; &amp;#34;x&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a.bak&amp;#34; &amp;#34;-oC:\Users\%USERNAME%\%CN:~0,2%&amp;#34; &amp;gt; nul 2&amp;gt; nul
) else (
psexec -accepteula -nobanner \\%%c -s &amp;#34;%USERPROFILE%\7-Zip\7z&amp;#34; &amp;#34;x&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a.bak&amp;#34; &amp;#34;-oC:\Users\%USERNAME%\%CN:~0,2%&amp;#34; &amp;gt; nul 2&amp;gt; nul
)
)
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb restore ok !&amp;#34;
) else (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb restore Failed !&amp;#34;
)
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmrestore.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.152 c1\alp.c1m1 restore ok &amp;#34;
&amp;#34;120.96.143.152 c1\alp.c1w1 restore ok &amp;#34;
&amp;#34;120.96.143.153 c1\alp.c1w2 restore ok &amp;#34;
&amp;#34;120.96.143.153 c1\alp.c1w3 restore ok &amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行失敗的螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;Please Execute vmstop.bat&amp;#34; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;可能原因 : 只要有一台 c1 cluster VM 沒關，就會噴出此錯誤訊息&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;9. 清除 c1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="9-清除-c1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#9-%e6%b8%85%e9%99%a4-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;del.bat 程式概述 : 如果虛擬主機在本地，會利用 Windows Powershell 的 Remove-Item 命令，刪除 c1 叢集所有虛擬主機、壓縮檔、本地的 c1 目錄，如果虛擬主機在遠端，會利用 Remove-Item 命令 配合 psexec 命令刪除&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 設定 Cluster Name
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 設定本機 IP 變數
for /f &amp;#34;delims=[] tokens=2&amp;#34; %%a in (&amp;#39;ping -4 -n 1 %ComputerName% ^| findstr [&amp;#39;) do (
set HostIP=%%a
)
REM 判斷是否已備份
for /f &amp;#34;tokens=4-6 delims= &amp;#34; %%a in (&amp;#39;type %CN:~0,2%mactohost ^| findstr zip&amp;#39;) do (
if %%c == %HostIP% (
if not exist %HOMEPATH%\%%a.bak (
echo &amp;#34;Please Execute vmbackup.bat first&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
) else (
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a.bak&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == False (
echo &amp;#34;Please Execute vmbackup.bat first&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
)
)
)
REM 先用 ping 命令，檢測每一台虛擬主機是否已關機
setlocal EnableDelayedExpansion
for /f &amp;#34;skip=12 tokens=4,6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1-3 delims=.&amp;#34; %%x in (&amp;#39;echo %%b&amp;#39;) do (
for /f &amp;#34;tokens=1,2 delims=.&amp;#34; %%i in (&amp;#39;echo %%a&amp;#39;) do (
ping -n 2 &amp;#34;%%x.%%y.%%z.%%j&amp;#34; | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! == 0 (
echo &amp;#34;Please Execute vmstop.bat&amp;#34; &amp;amp;&amp;amp; GOTO:eof
)
)
)
)
REM 將 d*mactohost 中 實體 Windows 主機的 IP 匯入 ip.txt 檔案中
if exist ip.txt (del ip.txt)
for /f &amp;#34;skip=12 tokens=6 delims= &amp;#34; %%y in (%CN:~0,2%mactohost) do echo %%y &amp;gt;&amp;gt; ip.txt
REM 刪除 ip.txt 檔案中每一台實體 Windows 電腦 使用者家目錄中以叢集為名稱的目錄
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=1 delims= &amp;#34; %%x in (&amp;#39;type ip.txt ^| sort.exe /unique&amp;#39;) do (
if %%x == %HostIP% (
&amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; -Command Remove-Item C:\Users\%USERNAME%\%CN:~0,2% -Recurse 2&amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%x %CN:~0,2% folder deleted !&amp;#34;
) else (
echo &amp;#34;%%x %CN:~0,2% folder does not exist !&amp;#34;
)
) else (
psexec -accepteula -nobanner \\%%x -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Remove-Item&amp;#34; &amp;#34;C:\Users\%USERNAME%\%CN:~0,2%&amp;#34; &amp;#34;-Recurse&amp;#34; 2&amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%x %CN:~0,2% folder deleted !&amp;#34;
) else (
echo &amp;#34;%%x %CN:~0,2% folder does not exist !&amp;#34;
)
)
)
REM 刪除在本地或遠端的虛擬主機壓縮檔
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
if %%c == %HostIP% (
&amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; -Command Remove-Item C:\Users\%USERNAME%\%%a 2&amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%c %%a deleted !&amp;#34;
) else (
echo &amp;#34;%%c %%a does not exist !&amp;#34;
)
) else (
psexec -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Remove-Item&amp;#34; &amp;#34;C:\Users\%USERNAME%\%%a&amp;#34; 2&amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%c %%a deleted !&amp;#34;
) else (
echo &amp;#34;%%c %%a does not exist !&amp;#34;
)
)
)
del ip.txt 2&amp;gt; nul &amp;gt; nul
REM 刪除執行程式所在的目錄 (例如 : %USERPROFILE%\CNT.2023.v4.6\D9-1A2M3W\) 中的 d9 目錄
&amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; -Command Remove-Item %CN:~0,2% -Recurse 2&amp;gt; nul
if %ERRORLEVEL% == 0 (
echo &amp;#34;%HostIP% %CD%\%CN:~0,2% folder deleted !&amp;#34;
) else (
echo &amp;#34;%HostIP% %CD%\%CN:~0,2% folder does not exist !&amp;#34;
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行清除 c1 叢集所有虛擬主機命令&lt;span class="hx:absolute hx:-mt-20" id="執行清除-c1-叢集所有虛擬主機命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e6%b8%85%e9%99%a4-c1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; vmdel.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.152 c1 folder deleted &amp;#34;
&amp;#34;120.96.143.153 c1 folder deleted &amp;#34;
&amp;#34;120.96.143.152 c1m1.141.zip deleted &amp;#34;
&amp;#34;120.96.143.152 c1w1.145.zip deleted &amp;#34;
&amp;#34;120.96.143.153 c1w2.146.zip deleted &amp;#34;
&amp;#34;120.96.143.153 c1w3.147.zip deleted &amp;#34;
&amp;#34;120.96.143.170 C:\Users\bigred\CNT.2023.v4.6\C1-1M3W\c1 folder deleted &amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行失敗的螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;Please Execute vmbackup.bat first&amp;#34; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;可能原因 : 程式一開始會檢查每一台 VM 對應的實體 Windows 主機的使用者家目錄，有無 &lt;code&gt;*.bak&lt;/code&gt; 的備份檔，只要少一個備份檔，此程式就會噴出此錯誤訊息&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[註] 會保留在本地或遠端實體主機的虛擬主機備份 (&lt;code&gt;*.bak&lt;/code&gt;) 檔&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1&gt;&lt;font color=red&gt;IaC 平臺 開發關鍵技術 &lt;/font&gt;&lt;/h1&gt;&lt;h2&gt;&lt;font color=blue&gt;技術重點 1 - Windows batch script - 透過 &lt;code&gt;FOR&lt;/code&gt; 命令可以將文字檔中的欄位資料取出&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="技術重點-1---windows-batch-script---透過-for-命令可以將文字檔中的欄位資料取出"&gt;&lt;/span&gt;
&lt;a href="#%e6%8a%80%e8%a1%93%e9%87%8d%e9%bb%9e-1---windows-batch-script---%e9%80%8f%e9%81%8e-for-%e5%91%bd%e4%bb%a4%e5%8f%af%e4%bb%a5%e5%b0%87%e6%96%87%e5%ad%97%e6%aa%94%e4%b8%ad%e7%9a%84%e6%ac%84%e4%bd%8d%e8%b3%87%e6%96%99%e5%8f%96%e5%87%ba" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-1"&gt;
&lt;p&gt;:star: 首先要注意 ! 如果要在批次程式中使用 &lt;code&gt;FOR&lt;/code&gt; 命令，請指定 &lt;font color=red&gt;&lt;code&gt;%%variable&lt;/code&gt;&lt;/font&gt;，而不要指定&lt;font color=red&gt;&lt;code&gt;%variable&lt;/code&gt;&lt;/font&gt;。變數名稱有大小寫的區分，所以 &lt;font color=red&gt;&lt;code&gt;%i&lt;/code&gt;&lt;/font&gt; 不同於 &lt;font color=red&gt;&lt;code&gt;%I&lt;/code&gt;&lt;/font&gt;。&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;逐行讀取文字檔的 &lt;code&gt;for /F&lt;/code&gt; 迴圈&lt;span class="hx:absolute hx:-mt-20" id="逐行讀取文字檔的-for-f-迴圈"&gt;&lt;/span&gt;
&lt;a href="#%e9%80%90%e8%a1%8c%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%aa%94%e7%9a%84-for-f-%e8%bf%b4%e5%9c%88" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-1"&gt;
&lt;p&gt;&lt;code&gt;/f&lt;/code&gt; ，可以對 for 迴圈傳入的檔案、字串或命令，進行解析，以下為讀取檔案的範例 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;for /f &amp;#34;tokens=3,* delims= &amp;#34; %%a in (c1mactohost) do echo %%b&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;概述：逐行讀取 &lt;code&gt;k1mactohost&lt;/code&gt; 檔案的內容，然後依照分隔符號 (空格) 將檔案內容的值分別設為指定的變數，再將指定的變數內容輸出在螢幕上。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tokens=x,y,m-n&lt;/code&gt; 用來決定一次要取出幾個欄位，第一個欄位會存放在第一個自動變數，第二個欄位會存放在第二個自動變數裡，依此類推。在範例中為&lt;code&gt;tokens=3,*&lt;/code&gt;，代表將第三個欄位的值存放在變數 &lt;code&gt;a&lt;/code&gt; ，其他剩餘欄位的值會放在變數 &lt;code&gt;b&lt;/code&gt;
註: &lt;code&gt;x, x, m, n&lt;/code&gt; 都為數字，只是 &lt;code&gt;m-n&lt;/code&gt; 是一種特別的表示法，代表一個解析欄位的範圍。例如 &lt;code&gt;tokens=2-4&lt;/code&gt; 就代表取得第2、第 3 與第 4 個欄位的值並分別塞指定的變數裡&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delims=xxx&lt;/code&gt; 用來決定欄位的分隔符號，預設為&lt;code&gt;空格與 TAB 符號&lt;/code&gt;，並可自訂多個符號。在範例中，將欄位的分隔符號設為空格
註: &lt;code&gt;xxx&lt;/code&gt; 代表多個字元，如果要同時設定小數點 &lt;code&gt;.&lt;/code&gt; 與逗號 &lt;code&gt;,&lt;/code&gt; 就要輸入&lt;code&gt;delims=.,&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3&gt;練習&lt;span class="hx:absolute hx:-mt-20" id="練習"&gt;&lt;/span&gt;
&lt;a href="#%e7%b7%b4%e7%bf%92" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-1"&gt;
&lt;p&gt;啟動一個文字檔 tip.txt&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad tip.txt &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;內容是&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;10:6e d8a5 120.96.143.22
10:6f d8a6 120.96.143.22&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;寫一隻程式 （tip.bat）用冒號分割顯示以下的結果：&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;6e
6f&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;答案：&lt;/p&gt;
&lt;p&gt;先編輯一個批次檔&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ notepad tip.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;內容是&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1 delims= &amp;#34; %%a in (tip.txt) do echo %%a &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;將 a 變數匯入一個檔案&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1 delims= &amp;#34; %%a in (tip.txt) do echo %%a &amp;gt;&amp;gt; t1.txt
for /f &amp;#34;tokens=2 delims=:&amp;#34; %%b in (t1.txt) do echo %%b&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行批次檔&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ tip.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;6e
6f&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;另一種答案，雙迴圈&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1 delims= &amp;#34; %%a in (tip.txt) do (
for /f &amp;#34;tokens=1,2 delims=:&amp;#34; %%b in (&amp;#39;echo %%a&amp;#39;) do echo %%b %%c
) &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;甚麼是 &lt;code&gt;@echo off&lt;/code&gt; ?&lt;span class="hx:absolute hx:-mt-20" id="甚麼是-echo-off-"&gt;&lt;/span&gt;
&lt;a href="#%e7%94%9a%e9%ba%bc%e6%98%af-echo-off-" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-1"&gt;
&lt;h4&gt;認識 echo on&lt;span class="hx:absolute hx:-mt-20" id="認識-echo-on"&gt;&lt;/span&gt;
&lt;a href="#%e8%aa%8d%e8%ad%98-echo-on" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div class="indent-title-1"&gt;
&lt;p&gt;在 Windows batch script 中，預設是 &lt;code&gt;echo on&lt;/code&gt;，當 Windows 電腦在執行批次程式中的每一行命令時，會先顯示其解析後的結果，才會再顯示執行後的結果&lt;/p&gt;
&lt;p&gt;範例 :&lt;/p&gt;
&lt;p&gt;編輯一個 test.bat 批次檔&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad test.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檔案內容&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;set a=b
echo %a%&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行程式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; test.bat &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt;set a=b
&amp;gt;echo b
b&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;可以看到它在執行程式中的每一行命令時，會先顯示其解析後的結果，才會再顯示執行後的結果&lt;/p&gt;
&lt;/div&gt;
&lt;h4&gt;認識 @echo off&lt;span class="hx:absolute hx:-mt-20" id="認識-echo-off"&gt;&lt;/span&gt;
&lt;a href="#%e8%aa%8d%e8%ad%98-echo-off" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;div class="indent-title-1"&gt;
&lt;p&gt;&lt;code&gt;@echo off&lt;/code&gt; 可以分為兩個部分，最前面的 &lt;code&gt;@&lt;/code&gt; 和 後面的&lt;code&gt;echo off&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@&lt;/code&gt; 是針對特定命令，讓它不要顯示被解析後的結果，直接顯示命令執行後的結果&lt;/li&gt;
&lt;li&gt;&lt;code&gt;echo off&lt;/code&gt; 通常會被加在 Windows 批次檔的最上面，它的作用是，&lt;strong&gt;程式在執行時，只顯示命令執行結果&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 &lt;code&gt;@echo off&lt;/code&gt; ，它會不顯示自己被解析後的結果，且程式的每一行命令在執行時，只顯示命令執行結果。&lt;/p&gt;
&lt;p&gt;延續上一個範例 :&lt;/p&gt;
&lt;p&gt;編輯 test.bat 批次檔&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad test.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檔案內容的最上面新增 &lt;code&gt;@echo off&lt;/code&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
set a=b
echo %a%&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行程式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; test.bat &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;b&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;甚麼是 setlocal EnableDelayedExpansion ?&lt;span class="hx:absolute hx:-mt-20" id="甚麼是-setlocal-enabledelayedexpansion-"&gt;&lt;/span&gt;
&lt;a href="#%e7%94%9a%e9%ba%bc%e6%98%af-setlocal-enabledelayedexpansion-" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-1"&gt;
&lt;p&gt;在了解 甚麼是 setlocal EnableDelayedExpansion 之前，先來看看以下一段批次程式的內容&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;set VAR=before
if &amp;#34;%VAR%&amp;#34; == &amp;#34;before&amp;#34; (
set VAR=after
if &amp;#34;%VAR%&amp;#34; == &amp;#34;after&amp;#34; @echo &amp;#34;If you see this, it worked&amp;#34;
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;看完以後您覺得執行這隻程式的結果會顯示 &lt;code&gt;&amp;quot;If you see this, it worked&amp;quot;&lt;/code&gt; 這段字串嗎?&lt;/p&gt;
&lt;p&gt;來看看程式執行結果&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; set VAR=before
&amp;gt; if &amp;#34;before&amp;#34; == &amp;#34;before&amp;#34; (
set VAR=after
if &amp;#34;before&amp;#34; == &amp;#34;after&amp;#34;
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;在預設情況下，每行命令被執行之前，變數擴展成值，只會發生一次，即使你在 if 的括號之中，把它分成兩行。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;通過 SETLOCAL EnableDelayedExpansion 命令打開 延遲擴展可以讓批次檔中的變數，&lt;strong&gt;在執行時擴展變成值，而不是在命令被解析的時後&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;使用 FOR 迴圈 或是 if 括號表達式等循環命令，延遲擴展將允許您始終讀取變數的當前值&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;現在我們在程式的最上面加上 &lt;code&gt;SETLOCAL EnableDelayedExpansion&lt;/code&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad test.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檔案內容&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;SETLOCAL EnableDelayedExpansion
set VAR=before
if &amp;#34;%VAR%&amp;#34; == &amp;#34;before&amp;#34; (
set VAR=after
if &amp;#34;%VAR%&amp;#34; == &amp;#34;after&amp;#34; @echo &amp;#34;If you see this, it worked&amp;#34;
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行程式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; test.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt;test.bat
&amp;gt;SETLOCAL EnableDelayedExpansion
&amp;gt;set VAR=before
&amp;gt;if &amp;#34;before&amp;#34; == &amp;#34;before&amp;#34; (
set VAR=after
if &amp;#34;before&amp;#34; == &amp;#34;after&amp;#34;
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;奇怪 ??? 為甚麼還是沒有在螢幕上輸出 &amp;ldquo;If you see this, it worked&amp;rdquo; 這段字串 ?&lt;/p&gt;
&lt;p&gt;答案是因為 :
要讓延遲擴展生效，必須使用&lt;code&gt;!variable_name!&lt;/code&gt;，在變數的前後都加驚嘆號，來立即讀取變數的值。&lt;/p&gt;
&lt;p&gt;修改程式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad test.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;編輯程式內容，將 第二個 &lt;code&gt;%VAR%&lt;/code&gt; 改成 &lt;code&gt;!VAR!&lt;/code&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
SETLOCAL EnableDelayedExpansion
set VAR=before
if &amp;#34;%VAR%&amp;#34; == &amp;#34;before&amp;#34; (
set VAR=after
if &amp;#34;!VAR!&amp;#34; == &amp;#34;after&amp;#34; @echo &amp;#34;If you see this, it worked&amp;#34;
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行程式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; test.bat &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;If you see this, it worked&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;成功 ~&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;參考文章&lt;span class="hx:absolute hx:-mt-20" id="參考文章"&gt;&lt;/span&gt;
&lt;a href="#%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;a
href="https://blog.miniasp.com/post/2010/09/24/How-to-parse-text-from-file-or-command-using-Batch"target="_blank" rel="noopener"&gt;如何利用批次檔(Batch)讀取指令執行的結果或文字檔案內容&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://peterju.gitbooks.io/cmddoc/content/loop.html"target="_blank" rel="noopener"&gt;for 迴圈&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://ss64.com/nt/delayedexpansion.html"target="_blank" rel="noopener"&gt;延遲變數展開 (EnableDelayedExpansion)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;font color=blue&gt;技術重點 2 - Windows 遠端啟動 VMware 虛擬電腦&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="技術重點-2---windows-遠端啟動-vmware-虛擬電腦"&gt;&lt;/span&gt;
&lt;a href="#%e6%8a%80%e8%a1%93%e9%87%8d%e9%bb%9e-2---windows-%e9%81%a0%e7%ab%af%e5%95%9f%e5%8b%95-vmware-%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 使用 psexec 必須使用此設定&lt;span class="hx:absolute hx:-mt-20" id="1-使用-psexec-必須使用此設定"&gt;&lt;/span&gt;
&lt;a href="#1-%e4%bd%bf%e7%94%a8-psexec-%e5%bf%85%e9%a0%88%e4%bd%bf%e7%94%a8%e6%ad%a4%e8%a8%ad%e5%ae%9a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-2"&gt;
&lt;p&gt;開放遠端連線權限，用系統管理員身份打開 CMD，並執行以下命令&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[註] 1. 機碼修改後，需重啟電腦
       2. 如有安裝 F-Secure，請關閉 F-Secure 防火牆
參考文章連結 : &lt;a
href="http://pejslin.blogspot.com/2019/11/pstools-windows-10.html"target="_blank" rel="noopener"&gt;PsTools 於 Windows 10 的環境設定&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;2. 執行 &lt;code&gt;psexec&lt;/code&gt; 簡易命令&lt;span class="hx:absolute hx:-mt-20" id="2-執行-psexec-簡易命令"&gt;&lt;/span&gt;
&lt;a href="#2-%e5%9f%b7%e8%a1%8c-psexec-%e7%b0%a1%e6%98%93%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-2"&gt;
&lt;p&gt;打開 CMD ，切換到 &lt;code&gt;CNT.2023.v4.5\D9-1A2M3W&lt;/code&gt;工作目錄，執行以下測試命令&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;psexec \\192.168.39.55 -s &amp;#34;hostname&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;PsExec v2.4 - Execute processes remotely
Copyright (C) 2001-2022 Mark Russinovich
Sysinternals - www.sysinternals.com
DESKTOP-VNDI6BN
hostname exited on 192.168.39.55 with error code 0.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;3. 啟動虛擬機器&lt;span class="hx:absolute hx:-mt-20" id="3-啟動虛擬機器"&gt;&lt;/span&gt;
&lt;a href="#3-%e5%95%9f%e5%8b%95%e8%99%9b%e6%93%ac%e6%a9%9f%e5%99%a8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-2"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ psexec \\120.96.143.3 -s -d &amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; &amp;#34;start&amp;#34; &amp;#34;C:\Users\bigred\alp.k1a1\alpine64.vmwarevm\alpine64.vmx&amp;#34; &amp;#34;nogui&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;參數解釋 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-s&lt;/code&gt;，遠端執行的命令將會由 System account 執行&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-d&lt;/code&gt;，我們連線的實體主機即使斷線，所執行的命令不會因此中斷。您無法獲得任何退出代碼或輸出，因為遠程 PsExec 服務只是啟動程序，將新程序 ID 告知原始 PsExec 程序，而不再關心新程序的作用。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[stackoverflow 參考文章] &lt;a
href="https://stackoverflow.com/questions/48981961/what-does-psexec-s-do"target="_blank" rel="noopener"&gt;What does psexec -s do?&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;4. 如何知道執行 &lt;code&gt;psexec&lt;/code&gt; 成功&lt;span class="hx:absolute hx:-mt-20" id="4-如何知道執行-psexec-成功"&gt;&lt;/span&gt;
&lt;a href="#4-%e5%a6%82%e4%bd%95%e7%9f%a5%e9%81%93%e5%9f%b7%e8%a1%8c-psexec-%e6%88%90%e5%8a%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-2"&gt;
&lt;p&gt;打開工作管理員，確認有沒有以下的顯示&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/yWEHf8A.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;5. 關閉虛擬機器&lt;span class="hx:absolute hx:-mt-20" id="5-關閉虛擬機器"&gt;&lt;/span&gt;
&lt;a href="#5-%e9%97%9c%e9%96%89%e8%99%9b%e6%93%ac%e6%a9%9f%e5%99%a8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-2"&gt;
&lt;p&gt;方法一 : 直接下命令&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;psexec \\120.96.143.5 -s -d &amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; &amp;#34;stop&amp;#34; &amp;#34;C:\Users\bigred\alp.k1w3\alpine64.vmwarevm\alpine64.vmx&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;方法二 : 使用工作管理員在 vmware-vmx.exe 按右鍵結束工作&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/GjGVrhL.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;將 &lt;code&gt;*.lck&lt;/code&gt;檔和類型是 &lt;code&gt;VMEM檔案&lt;/code&gt; 的三個檔案刪掉&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/92cfxEy.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;psexec 參考連結&lt;span class="hx:absolute hx:-mt-20" id="psexec-參考連結"&gt;&lt;/span&gt;
&lt;a href="#psexec-%e5%8f%83%e8%80%83%e9%80%a3%e7%b5%90" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://adamtheautomator.com/psexec/"target="_blank" rel="noopener"&gt;Everything You Wanted to know About Psexec&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;font color=blue&gt;技術參考連結&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="技術參考連結"&gt;&lt;/span&gt;
&lt;a href="#%e6%8a%80%e8%a1%93%e5%8f%83%e8%80%83%e9%80%a3%e7%b5%90" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.archive/compress-archive?view=powershell-7.3"target="_blank" rel="noopener"&gt;Compress-Archive - Microsoft 官網連結&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.novatec-gmbh.de/en/blog/understanding-infrastructure-as-code-iac-in-less-than-10-minutes/"target="_blank" rel="noopener"&gt;Understanding Infrastructure as Code (IaC) in less than 10 minutes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://learn.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.3"target="_blank" rel="noopener"&gt;Running Remote Commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://theitbros.com/using-psexec-to-run-commands-remotely/"target="_blank" rel="noopener"&gt;Using PsExec to Run Commands Remotely&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>2023 Windows &amp; VMware IaC 開發及使用手冊</title><link>https://blog.kubeantony.com/archive/virtualization/2023-windows-vmware-iac-%E9%96%8B%E7%99%BC%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8A-1/</link><pubDate>Wed, 22 Feb 2023 16:02:50 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/2023-windows-vmware-iac-%E9%96%8B%E7%99%BC%E5%8F%8A%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8A-1/</guid><description>
&lt;style&gt;
.indent-title-1{
margin-left: 1em;
}
.indent-title-2{
margin-left: 2em;
}
.indent-title-3{
margin-left: 3em;
}
&lt;/style&gt;
&lt;h2&gt;認識 IaC&lt;span class="hx:absolute hx:-mt-20" id="認識-iac"&gt;&lt;/span&gt;
&lt;a href="#%e8%aa%8d%e8%ad%98-iac" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;伺服器環境的手動配置給 IT 專業人員帶來了一些挑戰，例如，由於不斷增加的複雜性和對 IT 基礎架構的相關需求。&lt;/p&gt;
&lt;p&gt;Infrastructure as Code，中文翻為 &amp;ldquo;基礎架構程式碼&amp;rdquo; ，提供了一種替代方法，將基礎架構的提供、配置與管理方式自動化。&lt;/p&gt;
&lt;p&gt;Iac 分為兩種方法，分別是 Declarative (聲明式) 和 Imperative (宣告式)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;聲明式主要說明基礎系統架構要完成甚麼目標、需要的資源或任何狀態&lt;/li&gt;
&lt;li&gt;宣告式定義了實現基礎系統架構所需的特定命令，並以正確的順序執行這些命令。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;執行它的好處不僅可以降低 Human Error 、縮短建置系統的時間，還可以確保每次都建立出一模一樣的基礎架構。&lt;/p&gt;
&lt;p&gt;舉例，在 &lt;code&gt;CNT.2023.v4.5&lt;/code&gt; 的套件包裡面的 &lt;code&gt;docker.bat&lt;/code&gt;, &lt;code&gt;k8s.bat&lt;/code&gt;, &lt;code&gt;dt.bat&lt;/code&gt; …等批次檔案，都能快速建立起，對應的基礎架構。&lt;/p&gt;
&lt;p&gt;註解：IaC 技術幫我們從落地雲主機自動產生以及複製虛擬主機&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;參考文章連結 1 : &lt;a
href="https://www.trendmicro.com/zh_tw/what-is/cloud-security/infrastructure-as-code.html"target="_blank" rel="noopener"&gt;何謂基礎架構程式碼 (IaC)？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;參考文章連結 2 : &lt;a
href="https://www.redhat.com/en/topics/automation/what-is-infrastructure-as-code-iac"target="_blank" rel="noopener"&gt;What is Infrastructure as Code (IaC)?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;參考文章連結 3 : &lt;a
href="https://www.novatec-gmbh.de/en/blog/understanding-infrastructure-as-code-iac-in-less-than-10-minutes/"target="_blank" rel="noopener"&gt;Understanding Infrastructure as Code (IaC) in less than 10 minutes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1&gt;&lt;font color=red&gt;Windows &amp;amp; VMware IaC 平台設計&lt;/font&gt;&lt;/h1&gt;&lt;h2&gt;&lt;font color=blue&gt;平台目標&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="平台目標"&gt;&lt;/span&gt;
&lt;a href="#%e5%b9%b3%e5%8f%b0%e7%9b%ae%e6%a8%99" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;建置分散型 K8S 叢集系統架構，有 1M 2W，或是 3M 3W&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;&lt;font color=blue&gt;重要操作步驟&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="重要操作步驟"&gt;&lt;/span&gt;
&lt;a href="#%e9%87%8d%e8%a6%81%e6%93%8d%e4%bd%9c%e6%ad%a5%e9%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;K8S 叢集系統準備&lt;/li&gt;
&lt;li&gt;設計叢集架構 (&lt;code&gt;mactohost&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;產生虛擬電腦資料夾&lt;/li&gt;
&lt;li&gt;壓縮虛擬電腦資料夾&lt;/li&gt;
&lt;li&gt;派送虛擬電腦資料夾&lt;/li&gt;
&lt;li&gt;解壓縮所有虛擬主機壓縮檔&lt;/li&gt;
&lt;li&gt;啟動與檢視所有虛擬主機&lt;/li&gt;
&lt;li&gt;關閉所有虛擬主機&lt;/li&gt;
&lt;li&gt;備份與還原所有虛擬主機&lt;/li&gt;
&lt;li&gt;清除所有虛擬主機&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;font color=blue&gt;實體電腦硬體規格&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="實體電腦硬體規格"&gt;&lt;/span&gt;
&lt;a href="#%e5%af%a6%e9%ab%94%e9%9b%bb%e8%85%a6%e7%a1%ac%e9%ab%94%e8%a6%8f%e6%a0%bc" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;多台實體 Windows 電腦&lt;/li&gt;
&lt;li&gt;記憶體至少 24 G&lt;/li&gt;
&lt;li&gt;CPU: 4 C / 2 HT&lt;/li&gt;
&lt;li&gt;須為靜態 IPv4 的 IP 位址&lt;/li&gt;
&lt;li&gt;每台實體 Windows 10 電腦會分別跑兩台不同的虛擬電腦&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;font color=blue&gt;虛擬電腦硬體規格&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="虛擬電腦硬體規格"&gt;&lt;/span&gt;
&lt;a href="#%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6%e7%a1%ac%e9%ab%94%e8%a6%8f%e6%a0%bc" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Alpine Linux 3.17.1 : 6 台&lt;/li&gt;
&lt;li&gt;記憶體 : 實體 Windows 電腦總記憶體(GB) / 3&lt;/li&gt;
&lt;li&gt;CPU : 2 vCPU&lt;/li&gt;
&lt;li&gt;網路模式 : bridge&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;font color=blue&gt;虛擬電腦網路設定&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="虛擬電腦網路設定"&gt;&lt;/span&gt;
&lt;a href="#%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6%e7%b6%b2%e8%b7%af%e8%a8%ad%e5%ae%9a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;根據叢集的大小來規劃 IP 位址、 Subnetmask 以及 Default Gateway&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;&lt;font color=red&gt;開始建置 k1 Cluster (1A1M4W)&lt;/font&gt;&lt;/h1&gt;&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;1. K8S 叢集系統準備&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="1-k8s-叢集系統準備"&gt;&lt;/span&gt;
&lt;a href="#1-k8s-%e5%8f%a2%e9%9b%86%e7%b3%bb%e7%b5%b1%e6%ba%96%e5%82%99" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-2"&gt;
&lt;ol&gt;
&lt;li&gt;確認實體 Windows 10 主機之間可用 &lt;code&gt;SSH&lt;/code&gt; 連接
&lt;strong&gt;測試命令&lt;/strong&gt; :
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; ssh student@&amp;lt;附近好同學的實體 Windows 10 電腦 的 IP 位址&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;如果無法連線，請用系統管理員執行 powershell，並執行以下命令
&lt;strong&gt;執行以下命令，檢查 OpenSSH 目前的狀態&lt;/strong&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Get-WindowsCapability -Online | Where-Object Name -like &amp;#39;OpenSSH*&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
如果 OpenSSH Server 沒有安裝，命令應返回以下輸出 :
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安裝 OpenSSH Server 命令&lt;/strong&gt; :
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
螢幕輸出 :
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Path :
Online : True
RestartNeeded : False&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;啟動 sshd 服務命令&lt;/strong&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType &amp;#39;Automatic&amp;#39;
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name &amp;#34;OpenSSH-Server-In-TCP&amp;#34; -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output &amp;#34;Firewall Rule &amp;#39;OpenSSH-Server-In-TCP&amp;#39; does not exist, creating it...&amp;#34;
New-NetFirewallRule -Name &amp;#39;OpenSSH-Server-In-TCP&amp;#39; -DisplayName &amp;#39;OpenSSH Server (sshd)&amp;#39; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output &amp;#34;Firewall rule &amp;#39;OpenSSH-Server-In-TCP&amp;#39; has been created and exists.&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;連線附近好同學的實體 Windows 10 電腦 的 IP 位址 測試&lt;/strong&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; ssh student@&amp;lt;附近好同學的實體 Windows 10 電腦 的 IP 位址&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell#install-openssh-for-windows"target="_blank" rel="noopener"&gt;Install OpenSSH Server on Windows 10 官網連結&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;將連接 Windows 的帳號密碼存入 &lt;code&gt;passwd&lt;/code&gt; 檔案
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad %USERPROFILE%\CNT.2023.v4.5\K1-1A1M4W\passwd&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;將連接 Alpine Linux 的帳號密碼存入 &lt;code&gt;passwd_alp&lt;/code&gt; 檔案
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad %USERPROFILE%\CNT.2023.v4.5\K1-1A1M4W\passwd_alp&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;VMware Player 這軟體一定要做以下設定, 否則 建立 虛擬主機的目錄會殘溜目錄
4-1. &lt;code&gt;Player&lt;/code&gt; &amp;gt; &lt;code&gt;File&lt;/code&gt; &amp;gt; &lt;code&gt;Preferences...&lt;/code&gt;
4-2. In the &amp;ldquo;&lt;code&gt;Software updates&lt;/code&gt;&amp;rdquo; group &amp;gt; uncheck the &amp;ldquo;&lt;code&gt;Check for software components as needed&lt;/code&gt;&amp;rdquo; option.&lt;/li&gt;
&lt;li&gt;Windows 主機需安裝 7z&lt;/li&gt;
&lt;li&gt;確認被遠端控制的實體 Windows 主機，開放遠端登入權限 (&lt;font color=red&gt;需用管理員身分打開 CMD 執行以下命令&lt;/font&gt;)
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
注意 ! 機碼修改後，需重啟電腦 !&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;2. 設計 k1 叢集架構&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="2-設計-k1-叢集架構"&gt;&lt;/span&gt;
&lt;a href="#2-%e8%a8%ad%e8%a8%88-k1-%e5%8f%a2%e9%9b%86%e6%9e%b6%e6%a7%8b" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;&lt;div class="indent-title-2"&gt;設定 k1 叢集架構檔 - &lt;code&gt;mactohost&lt;/code&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="設定-k1-叢集架構檔---mactohost"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9a-k1-%e5%8f%a2%e9%9b%86%e6%9e%b6%e6%a7%8b%e6%aa%94---mactohost" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;在 Windows 中，打開 CMD ，執行以下命令&lt;/p&gt;
&lt;p&gt;切換至工作目錄&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; cd CNT.2023.v4.5\K1-1A1M4W&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;編輯 &lt;code&gt;mactohost&lt;/code&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; notepad k1mactohost&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檔案內容 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# Default Cluster
00:00 x1 none
00:01 x2 VMware
00:02 x3 VMware
00:03 a1 admin
00:04 m1 master
00:05 m2 master
00:06 m3 master
00:07 w1 worker
00:08 w2 worker
00:09 w3 worker
# K8S k1 Cluster
10:d2 k1a1 admin k1a1.210.zip k1/alp.k1a1 192.168.39.55
10:d3 k1m1 master k1m1.211.zip k1/alp.k1m1 192.168.39.55
10:d4 k1m2 master
10:d5 k1m3 master
10:d6 k1e1 etcd
10:d7 k1w1 worker k1w1.215.zip k1/alp.k1w1 192.168.39.55
10:d8 k1w2 worker k1w2.216.zip k1/alp.k1w2 192.168.39.55
10:d9 k1w3 worker k1w3.217.zip k1/alp.k1w3 192.168.39.55
10:da k1w4 worker k1w4.218.zip k1/alp.k1w4 192.168.39.55
10:db k1w5 worker&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;欄位說明 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第一欄為 設定 VM 主機 的 Mac Address 最後兩個位元 (byte)
&lt;ul&gt;
&lt;li&gt;用冒號分隔的格式 :
前半部是 k1 = 10, k2 = 20&amp;hellip; 依此類推
後半部是 VM 的 IP 位址尾數換算為 16 進位&lt;/li&gt;
&lt;li&gt;舉例 :
假設現在要設定的是 k1 叢集裡面 IP 位址尾數 &lt;code&gt;.210&lt;/code&gt; 的 VM，
依照上述規則，得到的答案 : &lt;code&gt;10:d2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第二欄為 設定 VM 主機名稱
&lt;ul&gt;
&lt;li&gt;格式 : 叢集名稱 + mactohost 第三欄位的第一個字 + 序號(從 1 開始)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第三欄為 各 VM 的角色扮演&lt;/li&gt;
&lt;li&gt;第四欄為 VM 目錄壓縮檔名
&lt;ul&gt;
&lt;li&gt;格式 : VM 主機名稱 + VM IP 位址的尾數 + 壓縮檔的附檔名 (.zip)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第五欄為 VM 存放的目錄名稱
&lt;ul&gt;
&lt;li&gt;格式 : &lt;code&gt;叢集名稱/alp.主機名稱&lt;/code&gt; (alp = Alpine Linux的縮寫)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第六欄為 VM 要分配到哪一台實體電腦的 IP 位址&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;3. 建立 k1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="3-建立-k1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#3-%e5%bb%ba%e7%ab%8b-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;p&gt;k1create 程式概述 ： 在落地雲主機的 &lt;code&gt;C:\Users\bigred\CNT.2023.v4.5\K3-1A1M4W&lt;/code&gt; 目錄下，做出 k1 的資料夾，並在 k1 目錄下建立 6 台虛擬機&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 設定 Cluster Name
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir %CD% /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CLUSTERNAME=%%y
)
for /f &amp;#34;tokens=3 delims= &amp;#34; %%z in (&amp;#39;type %CLUSTERNAME:~0,2%mactohost ^| more &amp;#43;11 ^| findstr &amp;#34;#&amp;#34;&amp;#39;) do (
set CN=%%z
)
Rem/||(
判斷 Cluster Name 有沒有設定錯誤
- %Variable:~0,2%
是取變數值的前兩個字
- GOTO:eof
在不定義標籤的情況下將控制傳送到當前批次檔的末端，此時，批次檔會自行退出。
)
if NOT %CLUSTERNAME:~0,2% == %CN% (
echo &amp;#34;Cluster Name Error !&amp;#34;
GOTO:eof
)
REM 判斷在當前目錄下是否存在 %CN% (有可能是 k1 或 k2 或是 k*)目錄
if exist %CN%\ (
echo &amp;#34;%CN% Folder existed !&amp;#34;
GOTO:eof
)
REM 設定 VM 可用記憶體範圍
powershell -Command &amp;#34;(Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /3Mb&amp;#34; &amp;gt; max.txt
powershell -Command &amp;#34;(Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /8Mb&amp;#34; &amp;gt; min.txt
set /P MAX=&amp;lt;max.txt
set /P MIN=&amp;lt;min.txt
set RSMMAX=&amp;#39;memsize = \&amp;#34;4096\&amp;#34;&amp;#39;, &amp;#39;memsize = \&amp;#34;%MAX%\&amp;#34;&amp;#39;
set RSMMIN=&amp;#39;memsize = \&amp;#34;4096\&amp;#34;&amp;#39;, &amp;#39;memsize = \&amp;#34;%MIN%\&amp;#34;&amp;#39;
REM 修改 VM 的 MAC Address 必要設定
set RSADR1=&amp;#39;ethernet0.generatedAddressOffset = \&amp;#34;0\&amp;#34;&amp;#39;
set RSADR2=&amp;#39;ethernet0.addressType = \&amp;#34;generated\&amp;#34;&amp;#39; , &amp;#39;ethernet0.addressType = \&amp;#34;static\&amp;#34;&amp;#39;
REM 將 VM 網路模式設為 bridge 橋接模式
set RSTYPE=&amp;#39;ethernet0.connectionType = \&amp;#34;nat\&amp;#34;&amp;#39; , &amp;#39;ethernet0.connectionType = \&amp;#34;bridge\&amp;#34;&amp;#39;
REM 啟動 ALP.K8S 虛擬主機
&amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; start &amp;#34;%USERPROFILE%\CNT.2023.v4.5\ALP.K8S\alpine64.vmwarevm\alpine64.vmx&amp;#34; &amp;gt; nul
timeout /t 60 &amp;gt; nul
Rem/||(
抓 ALP.K8S 虛擬主機的 IP 位址，將命令執行結果重導到 admip.txt 這個檔案中
- 透過 set /P 將 admip.txt 檔案中第一行的內容，設為 admip 變數的值
- 檔案中的第二行以下，包含第二行的內容，都會被丟棄
)
&amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; getGuestIPAddress &amp;#34;%USERPROFILE%\CNT.2023.v4.5\ALP.K8S\alpine64.vmwarevm\alpine64.vmx&amp;#34; &amp;gt; admip.txt
set /P admip=&amp;lt;admip.txt
Rem/||(
上載 mactohosts 至 ALP.K8S 虛擬主機
- 變數 ERRORLEVEL 為上一行命令執行完後回傳的值 ^(exit code^)，0 代表執行成功。
- EQU ^(Equal To^)執行數字比較，如果需要字符串比較，使用 == 比較運算符。
- USERPROFILE 變數為顯示當前使用者的家目錄，例如 : C:\USERS\bigred
)
echo y | pscp -pwfile &amp;#34;passwd_alp&amp;#34; &amp;#34;.\%CN%mactohost&amp;#34; bigred@%admip%:/home/bigred/bin/mactohost 2&amp;gt; nul &amp;gt; nul
if %ERRORLEVEL% EQU 0 echo &amp;#34;%CN%mactohost scp ok&amp;#34;
echo y | pscp -pwfile &amp;#34;passwd_alp&amp;#34; bigred@%admip%:/home/bigred/.ssh/* %USERPROFILE%\.ssh\ 2&amp;gt; nul &amp;gt; nul
if %ERRORLEVEL% EQU 0 echo &amp;#34;%admip% .ssh/* scp ok&amp;#34;
del %USERPROFILE%\.ssh\known_hosts 2&amp;gt; nul
del %USERPROFILE%\.ssh\known_hosts.old 2&amp;gt; nul
ssh -o &amp;#34;ConnectTimeout=5&amp;#34; -o &amp;#34;StrictHostKeyChecking=no&amp;#34; bigred@%admip% &amp;#34;sudo apk update; sudo apk upgrade&amp;#34; 2&amp;gt; nul &amp;gt; nul
if %ERRORLEVEL% EQU 0 echo &amp;#34;System upgrade ok&amp;#34;
&amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; stop &amp;#34;%USERPROFILE%\CNT.2023.v4.5\ALP.K8S\alpine64.vmwarevm\alpine64.vmx&amp;#34; &amp;gt; nul
timeout /t 60 &amp;gt; nul
Rem/||(
建立所有 K8S Cluster 的 VM
- SETLOCAL ENABLEDELAYEDEXPANSION 為 啟用變數延遲展開
- 意思是 變數會在執行時才會展開變成它的值，而不是在解析時就變成值
- 要延遲展開的變數格式由 %var% 更改為 !var!
- gc 為 powershell 的命令，用來顯示檔案內容，-replace 參數主要是替換一個文字檔中的字串
- Out-File 將輸出傳到一個檔案， -Encoding 參數將輸出轉換為指定格式
)
setlocal EnableDelayedExpansion
if exist %CN%mactohost (
if not exist %CN%\ (
mkdir %CN% &amp;gt; nul
if %ERRORLEVEL% EQU 0 (
for /f &amp;#34;tokens=1-6 delims= &amp;#34; %%a in (&amp;#39;findstr 120 %CN%mactohost&amp;#39;) do (
set x=%%~nxe
set RS=&amp;#39;displayName = \&amp;#34;ALP.K8S\&amp;#34;&amp;#39;, &amp;#39;displayName = \&amp;#34;!x!\&amp;#34;&amp;#39;
set y=%%a
set RSMAC=&amp;#39;ethernet0.generatedAddress = \&amp;#34;00:0c:29:.*\&amp;#34;&amp;#39; , &amp;#39;ethernet0.address = \&amp;#34;00:50:56:ab:!y!\&amp;#34;&amp;#39;
mkdir %CN%\!x! &amp;gt; nul
xcopy /E /Y %USERPROFILE%\CNT.2023.v4.5\ALP.K8S %CN%\!x!\ &amp;gt; nul
powershell -Command &amp;#34;(gc %CN%\!x!\alpine64.vmwarevm\alpine64.vmx) -replace &amp;#34;!RS!&amp;#34; -replace &amp;#34;!RSMAC!&amp;#34; -replace &amp;#34;%RSMMAX%&amp;#34; -replace &amp;#34;%RSTYPE%&amp;#34; -replace &amp;#34;%RSADR1%&amp;#34; -replace &amp;#34;%RSADR2%&amp;#34; | Out-File -Encoding &amp;#34;UTF8&amp;#34; vm.temp&amp;#34;
del /Q %CN%\!x!\alpine64.vmwarevm\alpine64.vmx
copy /Y vm.temp %CN%\!x!\alpine64.vmwarevm\alpine64.vmx &amp;gt; nul
if !ERRORLEVEL! EQU 0 echo &amp;#34;%CN%\!x!\ (%MAX%) ok&amp;#34;
)
del *.txt &amp;gt; nul
del vm.temp &amp;gt; nul
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行建立 K1 叢集命令&lt;span class="hx:absolute hx:-mt-20" id="執行建立-k1-叢集命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e5%bb%ba%e7%ab%8b-k1-%e5%8f%a2%e9%9b%86%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在 Windows 工作目錄 &lt;code&gt;CNT.2023.v4.5\K1-1A1M4W&lt;/code&gt; 下，執行程式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; create.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;k1mactohost scp ok&amp;#34;
&amp;#34;192.168.179.129 .ssh/* scp ok&amp;#34;
&amp;#34;System upgrade ok&amp;#34;
&amp;#34;k1\alp.k1a1\ (8192) ok&amp;#34;
&amp;#34;k1\alp.k1m1\ (8192) ok&amp;#34;
&amp;#34;k1\alp.k1w1\ (8192) ok&amp;#34;
&amp;#34;k1\alp.k1w2\ (8192) ok&amp;#34;
&amp;#34;k1\alp.k1w3\ (8192) ok&amp;#34;
&amp;#34;k1\alp.k1w4\ (8192) ok&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;[重要] 根據實體電腦的記憶體來修改 k1create.bat 中 RSMMAX 變數直的大小&lt;/strong&gt;
[註] 如遇到需要輸入密碼，請參考以下連結 :
       &lt;a
href="https://superuser.com/questions/1296024/windows-ssh-permissions-for-private-key-are-too-open"target="_blank" rel="noopener"&gt;Windows SSH: Permissions for &amp;lsquo;private-key&amp;rsquo; are too open&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;4. 壓縮 k1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="4-壓縮-k1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#4-%e5%a3%93%e7%b8%ae-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
REM 設定 Cluster Name
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM 在 mactohost 中抓取壓縮時需要的字串
if exist %CN:~0,2%zip.txt (del %CN:~0,2%zip.txt &amp;gt; nul)
for /f &amp;#34;tokens=3,* delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do echo %%b | findstr zip &amp;gt;&amp;gt; %CN:~0,2%zip.txt
REM 透過 For 迴圈，逐行代變數，壓縮 VM 所在的資料夾
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=1,2 delims= &amp;#34; %%a in (%CN:~0,2%zip.txt) do (
7z\7z -mx1 a %CN:~0,2%\%%a %%b &amp;gt; nul
if !ERRORLEVEL! EQU 0 (echo &amp;#34;%%a ok&amp;#34;)
)
del %CN:~0,2%zip.txt &amp;gt; nul&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行壓縮程式&lt;span class="hx:absolute hx:-mt-20" id="執行壓縮程式"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e5%a3%93%e7%b8%ae%e7%a8%8b%e5%bc%8f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; zip.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;k1a1.50.zip ok&amp;#34;
&amp;#34;k1m1.51.zip ok&amp;#34;
&amp;#34;k1w1.55.zip ok&amp;#34;
&amp;#34;k1w2.56.zip ok&amp;#34;
&amp;#34;k1w3.57.zip ok&amp;#34;
&amp;#34;k1w4.58.zip ok&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;5. 派送 k1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="5-派送-k1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#5-%e6%b4%be%e9%80%81-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
if exist %CN:~0,2%scp.txt (del %CN:~0,2%scp.txt &amp;gt; nul)
for /f &amp;#34;tokens=1* delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do echo %%b | findstr zip &amp;gt;&amp;gt; %CN:~0,2%scp.txt
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=3,5 delims= &amp;#34; %%a in (%CN:~0,2%scp.txt) do (
echo y | pscp -scp -pwfile passwd &amp;#34;%CN:~0,2%\%%a&amp;#34; bigred@%%b:&amp;#34;%%a&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%a to %%b ok&amp;#34;
) else (
echo &amp;#34;%%a to %%b failed&amp;#34;
)
)
del %CN:~0,2%scp.txt &amp;gt; nul&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行程式&lt;span class="hx:absolute hx:-mt-20" id="執行程式"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e7%a8%8b%e5%bc%8f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; scp.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;k1a1.50.zip to 120.96.143.3 ok&amp;#34;
&amp;#34;k1m1.51.zip to 120.96.143.3 ok&amp;#34;
&amp;#34;k1w1.55.zip to 120.96.143.4 ok&amp;#34;
&amp;#34;k1w2.56.zip to 120.96.143.4 ok&amp;#34;
&amp;#34;k1w3.57.zip to 120.96.143.5 ok&amp;#34;
&amp;#34;k1w4.58.zip to 120.96.143.5 ok&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;6. 解壓縮所有虛擬主機壓縮檔至落地雲主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="6-解壓縮所有虛擬主機壓縮檔至落地雲主機"&gt;&lt;/span&gt;
&lt;a href="#6-%e8%a7%a3%e5%a3%93%e7%b8%ae%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%a3%93%e7%b8%ae%e6%aa%94%e8%87%b3%e8%90%bd%e5%9c%b0%e9%9b%b2%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\bigred\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
psexec -accepteula -nobanner \\%%c -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Remove-Item&amp;#34; &amp;#34;C:\Users\bigred\%CN:~0,2%\%%~nxb&amp;#34; &amp;#34;-Recurse&amp;#34; 2&amp;gt; nul
psexec -accepteula -nobanner \\%%c -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s &amp;#34;powershell&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Expand-Archive&amp;#34; &amp;#34;-LiteralPath&amp;#34; &amp;#34;C:\Users\bigred\%%a&amp;#34; &amp;#34;-DestinationPath&amp;#34; &amp;#34;C:\Users\bigred&amp;#34; 2&amp;gt; nul
) else (
psexec -accepteula -nobanner \\%%c -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s &amp;#34;powershell&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Expand-Archive&amp;#34; &amp;#34;-LiteralPath&amp;#34; &amp;#34;C:\Users\bigred\%%a&amp;#34; &amp;#34;-DestinationPath&amp;#34; &amp;#34;C:\Users\bigred&amp;#34; 2&amp;gt; nul
)
)
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\bigred\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb unzip ok !&amp;#34;
) else (
echo &amp;#34;%%c %CN:~0,2%\%%~nxb unzip Failed !&amp;#34;
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[註] &lt;code&gt;%%~nxb&lt;/code&gt;，在範例中 &lt;code&gt;%%b&lt;/code&gt; 為包含目錄的檔案名稱 : &lt;code&gt;k1/alp.k1w1&lt;/code&gt;，
&lt;code&gt;%%~nb&lt;/code&gt; - 顯示 &lt;code&gt;alp&lt;/code&gt; (&lt;code&gt;%%b&lt;/code&gt; 的 檔名)
&lt;code&gt;%%~xb&lt;/code&gt; - 顯示 &lt;code&gt;.k1w1&lt;/code&gt; ( &lt;code&gt;%%b&lt;/code&gt; 的副檔名，包含 &lt;code&gt;.&lt;/code&gt;)&lt;/p&gt;
&lt;h3&gt;執行解壓縮程式&lt;span class="hx:absolute hx:-mt-20" id="執行解壓縮程式"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e8%a7%a3%e5%a3%93%e7%b8%ae%e7%a8%8b%e5%bc%8f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; unzip.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.3 k1\alp.k1a1 unzip ok !&amp;#34;
&amp;#34;120.96.143.3 k1\alp.k1m1 unzip ok !&amp;#34;
&amp;#34;120.96.143.4 k1\alp.k1w1 unzip ok !&amp;#34;
&amp;#34;120.96.143.4 k1\alp.k1w2 unzip ok !&amp;#34;
&amp;#34;120.96.143.5 k1\alp.k1w3 unzip ok !&amp;#34;
&amp;#34;120.96.143.5 k1\alp.k1w4 unzip ok !&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;7. 啟動與檢視 k1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="7-啟動與檢視-k1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#7-%e5%95%9f%e5%8b%95%e8%88%87%e6%aa%a2%e8%a6%96-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
setlocal EnableDelayedExpansion
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
psexec \\%%c -accepteula -nobanner -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s &amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; &amp;#34;start&amp;#34; &amp;#34;C:\Users\bigred\%CN:~0,2%\%%~nxb\alpine64.vmwarevm\alpine64.vmx&amp;#34; &amp;#34;nogui&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%CN:~0,2%\%%~nxb started&amp;#34;
) else (
echo &amp;#34;%CN:~0,2%\%%~nxb failed&amp;#34;
)
timeout /t 5 &amp;gt; nul
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;1. 執行啟動 k1 叢集所有虛擬主機命令&lt;span class="hx:absolute hx:-mt-20" id="1-執行啟動-k1-叢集所有虛擬主機命令"&gt;&lt;/span&gt;
&lt;a href="#1-%e5%9f%b7%e8%a1%8c%e5%95%9f%e5%8b%95-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; start.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;k1\alp.k1a1 started&amp;#34;
&amp;#34;k1\alp.k1m1 started&amp;#34;
&amp;#34;k1\alp.k1w1 started&amp;#34;
&amp;#34;k1\alp.k1w2 started&amp;#34;
&amp;#34;k1\alp.k1w3 started&amp;#34;
&amp;#34;k1\alp.k1w4 started&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;2. 在 Windows 檢測已開啟的虛擬電腦&lt;span class="hx:absolute hx:-mt-20" id="2-在-windows-檢測已開啟的虛擬電腦"&gt;&lt;/span&gt;
&lt;a href="#2-%e5%9c%a8-windows-%e6%aa%a2%e6%b8%ac%e5%b7%b2%e9%96%8b%e5%95%9f%e7%9a%84%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
if exist %CN:~0,2%listp.txt (del %CN:~0,2%list.txt &amp;gt; nul)
for /f &amp;#34;tokens=1* delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do echo %%a %%b | findstr zip &amp;gt;&amp;gt; %CN:~0,2%list.txt
for /f &amp;#34;tokens=1,2 delims= &amp;#34; %%a in (%CN:~0,2%list.txt) do (
for /f &amp;#34;tokens=1,2 delims=:&amp;#34; %%i in (&amp;#34;%%a&amp;#34;) do (
ping -n 2 &amp;#34;120.96.143.0x%%j&amp;#34; | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt; nul
if errorlevel 1 (
echo &amp;#34;%%b not running&amp;#34;
) else (
ssh -o &amp;#34;ConnectTimeout=5&amp;#34; -o &amp;#34;StrictHostKeyChecking=no&amp;#34; bigred@&amp;#34;120.96.143.0x%%j&amp;#34; &amp;#34;n=$(hostname;hostname -i); echo $n running&amp;#34; 2&amp;gt; nul
)
)
)
del *.txt &amp;gt; nul&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行檢測命令&lt;span class="hx:absolute hx:-mt-20" id="執行檢測命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e6%aa%a2%e6%b8%ac%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; list.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;k1a1 120.96.143.50 running
k1m1 120.96.143.51 running
k1w1 120.96.143.55 running
k1w2 120.96.143.56 running
k1w3 120.96.143.57 running
k1w4 120.96.143.58 running&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;8. 關閉 k1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="8-關閉-k1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#8-%e9%97%9c%e9%96%89-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
if exist %CN:~0,2%stop.txt (del %CN:~0,2%stop.txt &amp;gt; nul)
for /f &amp;#34;tokens=1* delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do echo %%a %%b | findstr zip &amp;gt;&amp;gt; %CN:~0,2%stop.txt
for /f &amp;#34;delims= &amp;#34; %%a in (%CN:~0,2%stop.txt) do (
for /f &amp;#34;tokens=1,2 delims=:&amp;#34; %%i in (&amp;#34;%%a&amp;#34;) do (
ping -n 2 &amp;#34;120.96.143.0x%%j&amp;#34; | find &amp;#34;TTL&amp;#34; 2&amp;gt; nul &amp;gt; nul
if errorlevel 1 (
echo &amp;#34;120.96.143.0x%%j not running&amp;#34;
) else (
ssh -o &amp;#34;ConnectTimeout=5&amp;#34; -o &amp;#34;StrictHostKeyChecking=no&amp;#34; bigred@&amp;#34;120.96.143.0x%%j&amp;#34; &amp;#34;sudo poweroff; exit&amp;#34; 2&amp;gt; nul &amp;gt; nul
if ERRORLEVEL 0 echo &amp;#34;120.96.143.0x%%j stoped&amp;#34;
)
)
)
del *.txt &amp;gt; nul&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行關機 k1 叢集所有虛擬主機 命令&lt;span class="hx:absolute hx:-mt-20" id="執行關機-k1-叢集所有虛擬主機-命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e9%97%9c%e6%a9%9f-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f-%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; stop.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.0x32 stoped&amp;#34;
&amp;#34;120.96.143.0x33 stoped&amp;#34;
&amp;#34;120.96.143.0x37 stoped&amp;#34;
&amp;#34;120.96.143.0x38 stoped&amp;#34;
&amp;#34;120.96.143.0x39 stoped&amp;#34;
&amp;#34;120.96.143.0x3a stoped&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;9. 備份與還原 k1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="9-備份與還原-k1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#9-%e5%82%99%e4%bb%bd%e8%88%87%e9%82%84%e5%8e%9f-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
SET /P an=&amp;#34;Would you want to stop all %CN:~0,2% Cluster VM (do/done)&amp;#34;
if %an% == do (
CALL %CN:~0,2%stop.bat
CALL :backup
GOTO:eof
) else (
CALL :backup
GOTO:eof
)
:backup
setlocal EnableDelayedExpansion
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
for /f &amp;#34;tokens=1 delims= &amp;#34; %%i in (&amp;#39;PsExec.exe -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Test-Path&amp;#34; &amp;#34;-Path&amp;#34; &amp;#34;C:\Users\bigred\%CN:~0,2%\%%~nxb&amp;#34; ^2^&amp;gt;nul&amp;#39;) do (
if %%i == True (
psexec -accepteula -nobanner \\%%c -s &amp;#34;%ProgramFiles%\7-Zip\7z&amp;#34; &amp;#34;-mx1&amp;#34; &amp;#34;a&amp;#34; &amp;#34;C:\Users\bigred\%%a.bak&amp;#34; &amp;#34;C:\Users\bigred\%%b&amp;#34; 2&amp;gt; nul &amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%a.bak backup ok !&amp;#34;
) else (
echo &amp;#34;%%a.bak backup failed !&amp;#34;
)
) else (
echo &amp;#34;VM folder not found !&amp;#34;
GOTO:eof
)
)
)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行備份 k1 叢集所有虛擬主機 命令&lt;span class="hx:absolute hx:-mt-20" id="執行備份-k1-叢集所有虛擬主機-命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e5%82%99%e4%bb%bd-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f-%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; backup.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt; Would you want to stop all k1 Cluster VM (do/done)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;回答 &lt;code&gt;do&lt;/code&gt; &amp;ndash;&amp;gt; 會先將 k1 叢集的所有虛擬主機關機後再備份&lt;/p&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;120.96.143.0x32 stoped&amp;#34;
&amp;#34;120.96.143.0x33 stoped&amp;#34;
&amp;#34;120.96.143.0x37 stoped&amp;#34;
&amp;#34;120.96.143.0x38 stoped&amp;#34;
&amp;#34;120.96.143.0x39 stoped&amp;#34;
&amp;#34;120.96.143.0x3a stoped&amp;#34;
&amp;#34;k1a1.50.zip.bak backup ok !&amp;#34;
&amp;#34;k1m1.51.zip.bak backup ok !&amp;#34;
&amp;#34;k1w1.55.zip.bak backup ok !&amp;#34;
&amp;#34;k1w2.56.zip.bak backup ok !&amp;#34;
&amp;#34;k1w3.57.zip.bak backup ok !&amp;#34;
&amp;#34;k1w4.58.zip.bak backup ok !&amp;#34; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;回答 &lt;code&gt;done&lt;/code&gt; &amp;ndash;&amp;gt; 會直接開始備份 k1 叢集所有虛擬主機&lt;/p&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;#34;k1a1.50.zip.bak backup ok !&amp;#34;
&amp;#34;k1m1.51.zip.bak backup ok !&amp;#34;
&amp;#34;k1w1.55.zip.bak backup ok !&amp;#34;
&amp;#34;k1w2.56.zip.bak backup ok !&amp;#34;
&amp;#34;k1w3.57.zip.bak backup ok !&amp;#34;
&amp;#34;k1w4.58.zip.bak backup ok !&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;[註] 新的備份檔會直接覆蓋掉舊的備份檔&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;執行還原 k1 叢集所有虛擬主機命令&lt;span class="hx:absolute hx:-mt-20" id="執行還原-k1-叢集所有虛擬主機命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e9%82%84%e5%8e%9f-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; restore.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行命令後，會先問要不要先關機，要就回答 &lt;code&gt;do&lt;/code&gt; 不要就回答 &lt;code&gt;done&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Would you want to stop all k1 Cluster VM (do/done)done
&amp;#34;120.96.143.3 k1\alp.k1a1 restore ok !&amp;#34;
&amp;#34;120.96.143.3 k1\alp.k1m1 restore ok !&amp;#34;
&amp;#34;120.96.143.4 k1\alp.k1w1 restore ok !&amp;#34;
&amp;#34;120.96.143.4 k1\alp.k1w2 restore ok !&amp;#34;
&amp;#34;120.96.143.5 k1\alp.k1w3 restore ok !&amp;#34;
&amp;#34;120.96.143.5 k1\alp.k1w4 restore ok !&amp;#34; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;div class="indent-title-1"&gt;&lt;font color=blue&gt;10. 清除 k1 叢集所有虛擬主機&lt;/font&gt;&lt;/div&gt;&lt;span class="hx:absolute hx:-mt-20" id="10-清除-k1-叢集所有虛擬主機"&gt;&lt;/span&gt;
&lt;a href="#10-%e6%b8%85%e9%99%a4-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="indent-title-3"&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1&amp;#34; %%y in (&amp;#39;dir /B ^| findstr &amp;#34;mactohost&amp;#34;&amp;#39;) do (
set CN=%%y
)
REM del all include k1* exclude *.bak
SET /P an=&amp;#34;Would you want to stop all %CN:~0,2% Cluster VM (do/done)&amp;#34;
if %an% == do (
CALL %CN:~0,2%stop.bat
CALL :del_k8s
GOTO:eof
) else (
CALL :del_k8s
GOTO:eof
)
:del_k8s
if exist ip.txt (del ip.txt)
for /f &amp;#34;skip=12 tokens=6 delims= &amp;#34; %%y in (%CN:~0,2%mactohost) do echo %%y &amp;gt;&amp;gt; ip.txt
setlocal EnableDelayedExpansion
for /f &amp;#34;tokens=1 delims= &amp;#34; %%x in (&amp;#39;type ip.txt ^| sort.exe /unique&amp;#39;) do (
psexec -accepteula -nobanner \\%%x -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Remove-Item&amp;#34; &amp;#34;C:\Users\bigred\%CN:~0,2%&amp;#34; &amp;#34;-Recurse&amp;#34; 2&amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%x %CN:~0,2% folder deleted !&amp;#34;
) else (
echo &amp;#34;%%x %CN:~0,2% folder does not exist !&amp;#34;
)
)
for /f &amp;#34;skip=12 tokens=4-6 delims= &amp;#34; %%a in (%CN:~0,2%mactohost) do (
psexec -accepteula -nobanner \\%%c -s &amp;#34;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;#34; &amp;#34;-Command&amp;#34; &amp;#34;Remove-Item&amp;#34; &amp;#34;C:\Users\bigred\%%a&amp;#34; 2&amp;gt; nul
if !ERRORLEVEL! EQU 0 (
echo &amp;#34;%%c %%a deleted !&amp;#34;
) else (
echo &amp;#34;%%c %%a does not exist !&amp;#34;
)
)
del ip.txt 2&amp;gt; nul &amp;gt; nul
RD /S /Q /S /Q %CN:~0,2% 2&amp;gt; nul
if %ERRORLEVEL% == 0 echo &amp;#34;local %CN:~0,2% folder deleted !&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;執行清除 k1 叢集所有虛擬主機命令&lt;span class="hx:absolute hx:-mt-20" id="執行清除-k1-叢集所有虛擬主機命令"&gt;&lt;/span&gt;
&lt;a href="#%e5%9f%b7%e8%a1%8c%e6%b8%85%e9%99%a4-k1-%e5%8f%a2%e9%9b%86%e6%89%80%e6%9c%89%e8%99%9b%e6%93%ac%e4%b8%bb%e6%a9%9f%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;&amp;gt; del.bat&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;執行命令後，會先問要不要先關機，要就回答 &lt;code&gt;do&lt;/code&gt; 不要就回答 &lt;code&gt;done&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;螢幕輸出 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Would you want to stop all k1 Cluster VM (do/done)done
&amp;#34;120.96.143.3 k1 folder deleted !&amp;#34;
&amp;#34;120.96.143.4 k1 folder deleted !&amp;#34;
&amp;#34;120.96.143.5 k1 folder deleted !&amp;#34;
&amp;#34;120.96.143.3 k1a1.50.zip deleted !&amp;#34;
&amp;#34;120.96.143.3 k1m1.51.zip deleted !&amp;#34;
&amp;#34;120.96.143.4 k1w1.55.zip deleted !&amp;#34;
&amp;#34;120.96.143.4 k1w2.56.zip deleted !&amp;#34;
&amp;#34;120.96.143.5 k1w3.57.zip deleted !&amp;#34;
&amp;#34;120.96.143.5 k1w4.58.zip deleted !&amp;#34;
&amp;#34;local k1 folder deleted !&amp;#34; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;[註] 會刪除 k1 叢集所有虛擬主機、壓縮檔以及本地的 k1 資料夾，但不包含備份的 (&lt;code&gt;*.bak&lt;/code&gt;) 檔&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h1&gt;&lt;font color=red&gt;IaC 平臺 開發關鍵技術 &lt;/font&gt;&lt;/h1&gt;&lt;h2&gt;&lt;font color=blue&gt;技術重點 1 - Windows batch script - 透過 &lt;code&gt;FOR&lt;/code&gt; 命令可以將文字檔中的欄位資料取出&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="技術重點-1---windows-batch-script---透過-for-命令可以將文字檔中的欄位資料取出"&gt;&lt;/span&gt;
&lt;a href="#%e6%8a%80%e8%a1%93%e9%87%8d%e9%bb%9e-1---windows-batch-script---%e9%80%8f%e9%81%8e-for-%e5%91%bd%e4%bb%a4%e5%8f%af%e4%bb%a5%e5%b0%87%e6%96%87%e5%ad%97%e6%aa%94%e4%b8%ad%e7%9a%84%e6%ac%84%e4%bd%8d%e8%b3%87%e6%96%99%e5%8f%96%e5%87%ba" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;:star: 首先要注意 ! 如果要在批次程式中使用 &lt;code&gt;FOR&lt;/code&gt; 命令，請指定 &lt;font color=red&gt;&lt;code&gt;%%variable&lt;/code&gt;&lt;/font&gt;，而不要指定
&lt;font color=red&gt;&lt;code&gt;%variable&lt;/code&gt;&lt;/font&gt;。變數名稱有大小寫的區分，所以 &lt;font color=red&gt;&lt;code&gt;%i&lt;/code&gt;&lt;/font&gt; 不同於 &lt;font color=red&gt;&lt;code&gt;%I&lt;/code&gt;&lt;/font&gt;。&lt;/p&gt;
&lt;h3&gt;逐行讀取文字檔的 &lt;code&gt;for /F&lt;/code&gt; 迴圈&lt;span class="hx:absolute hx:-mt-20" id="逐行讀取文字檔的-for-f-迴圈"&gt;&lt;/span&gt;
&lt;a href="#%e9%80%90%e8%a1%8c%e8%ae%80%e5%8f%96%e6%96%87%e5%ad%97%e6%aa%94%e7%9a%84-for-f-%e8%bf%b4%e5%9c%88" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;/f&lt;/code&gt; ，可以對 for 迴圈傳入的檔案、字串或命令，進行解析，以下為讀取檔案的範例 :&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;for /f &amp;#34;tokens=3,* delims= &amp;#34; %%a in (k1mactohost) do echo %%b&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;概述：逐行讀取 &lt;code&gt;k1mactohost&lt;/code&gt; 檔案的內容，然後依照分隔符號 (空格) 將檔案內容的值分別設為指定的變數，再將指定的變數內容輸出在螢幕上。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tokens=x,y,m-n&lt;/code&gt; 用來決定一次要取出幾個欄位，第一個欄位會存放在第一個自動變數，第二個欄位會存放在第二個自動變數裡，依此類推。在範例中為&lt;code&gt;tokens=3,*&lt;/code&gt;，代表將第三個欄位的值存放在變數 &lt;code&gt;a&lt;/code&gt; ，其他剩餘欄位的值會放在變數 &lt;code&gt;b&lt;/code&gt;
註: &lt;code&gt;x, x, m, n&lt;/code&gt; 都為數字，只是 &lt;code&gt;m-n&lt;/code&gt; 是一種特別的表示法，代表一個解析欄位的範圍。例如 &lt;code&gt;tokens=2-4&lt;/code&gt; 就代表取得第2、第 3 與第 4 個欄位的值並分別塞指定的變數裡&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delims=xxx&lt;/code&gt; 用來決定欄位的分隔符號，預設為&lt;code&gt;空格與 TAB 符號&lt;/code&gt;，並可自訂多個符號。在範例中，將欄位的分隔符號設為空格
註: &lt;code&gt;xxx&lt;/code&gt; 代表多個字元，如果要同時設定小數點 &lt;code&gt;.&lt;/code&gt; 與逗號 &lt;code&gt;,&lt;/code&gt; 就要輸入&lt;code&gt;delims=.,&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;練習&lt;span class="hx:absolute hx:-mt-20" id="練習"&gt;&lt;/span&gt;
&lt;a href="#%e7%b7%b4%e7%bf%92" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;有一個文字檔 tip.txt&lt;/p&gt;
&lt;p&gt;內容是&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;10:6e d8a5 120.96.143.22
10:6f d8a6 120.96.143.22&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;寫一隻程式 （tip.bat）用冒號分割顯示以下的結果：&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;6e
6f&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;答案：
$ notepad tip.bat&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;@echo off
for /f &amp;#34;tokens=1 delims= &amp;#34; %%a in (tip.txt) do echo %%a &amp;gt;&amp;gt; t1.txt
for /f &amp;#34;tokens=2 delims=:&amp;#34; %%b in (t1.txt) do echo %%b&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;$ tip.bat&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;6e
6f&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;參考文章&lt;span class="hx:absolute hx:-mt-20" id="參考文章"&gt;&lt;/span&gt;
&lt;a href="#%e5%8f%83%e8%80%83%e6%96%87%e7%ab%a0" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a
href="https://blog.miniasp.com/post/2010/09/24/How-to-parse-text-from-file-or-command-using-Batch"target="_blank" rel="noopener"&gt;如何利用批次檔(Batch)讀取指令執行的結果或文字檔案內容&lt;/a&gt;
&lt;a
href="https://peterju.gitbooks.io/cmddoc/content/loop.html"target="_blank" rel="noopener"&gt;for 迴圈&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;font color=blue&gt;技術重點 2 - Windows 遠端啟動 VMware 虛擬電腦&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="技術重點-2---windows-遠端啟動-vmware-虛擬電腦"&gt;&lt;/span&gt;
&lt;a href="#%e6%8a%80%e8%a1%93%e9%87%8d%e9%bb%9e-2---windows-%e9%81%a0%e7%ab%af%e5%95%9f%e5%8b%95-vmware-%e8%99%9b%e6%93%ac%e9%9b%bb%e8%85%a6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;1. 使用 psexec 必須使用此設定&lt;span class="hx:absolute hx:-mt-20" id="1-使用-psexec-必須使用此設定"&gt;&lt;/span&gt;
&lt;a href="#1-%e4%bd%bf%e7%94%a8-psexec-%e5%bf%85%e9%a0%88%e4%bd%bf%e7%94%a8%e6%ad%a4%e8%a8%ad%e5%ae%9a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;開放遠端登入權限&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;執行 regedit&lt;/li&gt;
&lt;li&gt;找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system
新增一個「DWORD 值」，並把它命名為「LocalAccountTokenFilterPolicy」，然後再把他的值設定成「1」。
參考網址 : &lt;a
href="http://pejslin.blogspot.com/2019/11/pstools-windows-10.html"target="_blank" rel="noopener"&gt;PsTools 於 Windows 10 的環境設定&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;2. 下載 &lt;code&gt;psexec.exe&lt;/code&gt; 執行檔&lt;span class="hx:absolute hx:-mt-20" id="2-下載-psexecexe-執行檔"&gt;&lt;/span&gt;
&lt;a href="#2-%e4%b8%8b%e8%bc%89-psexecexe-%e5%9f%b7%e8%a1%8c%e6%aa%94" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a
href="https://learn.microsoft.com/zh-tw/sysinternals/downloads/psexec"target="_blank" rel="noopener"&gt;下載 psexec v2.4 連結&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;$ psexec /accepteula&lt;/p&gt;
&lt;h3&gt;3. 執行 &lt;code&gt;psexec&lt;/code&gt; 命令&lt;span class="hx:absolute hx:-mt-20" id="3-執行-psexec-命令"&gt;&lt;/span&gt;
&lt;a href="#3-%e5%9f%b7%e8%a1%8c-psexec-%e5%91%bd%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;啟動虛擬機器&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ psexec \\120.96.143.3 -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s -d &amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; &amp;#34;start&amp;#34; &amp;#34;C:\Users\bigred\alp.k1a1\alpine64.vmwarevm\alpine64.vmx&amp;#34; &amp;#34;nogui&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;-s system account
-d 我們連線的實體主機即使斷線，所執行的命令不會因此中斷&lt;/p&gt;
&lt;h3&gt;4. 如何知道執行 &lt;code&gt;psexec&lt;/code&gt; 成功&lt;span class="hx:absolute hx:-mt-20" id="4-如何知道執行-psexec-成功"&gt;&lt;/span&gt;
&lt;a href="#4-%e5%a6%82%e4%bd%95%e7%9f%a5%e9%81%93%e5%9f%b7%e8%a1%8c-psexec-%e6%88%90%e5%8a%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;打開工作管理員，確認有沒有以下的顯示&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/yWEHf8A.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;5. 關閉虛擬機器&lt;span class="hx:absolute hx:-mt-20" id="5-關閉虛擬機器"&gt;&lt;/span&gt;
&lt;a href="#5-%e9%97%9c%e9%96%89%e8%99%9b%e6%93%ac%e6%a9%9f%e5%99%a8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;直接下命令&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;psexec \\120.96.143.5 -u bigred -p &amp;#34;!QAZ2wsx &amp;#34; -s -d &amp;#34;C:\Program Files (x86)\VMware\VMware Player\vmrun&amp;#34; &amp;#34;stop&amp;#34; &amp;#34;C:\Users\bigred\alp.k1w3\alpine64.vmwarevm\alpine64.vmx&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;使用工作管理員在 vmware-vmx.exe 按右鍵結束工作&lt;/li&gt;
&lt;li&gt;把三個檔案刪掉&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/GjGVrhL.png" alt="" loading="lazy" /&gt;
&lt;img src="https://i.imgur.com/92cfxEy.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;參考連結&lt;span class="hx:absolute hx:-mt-20" id="參考連結"&gt;&lt;/span&gt;
&lt;a href="#%e5%8f%83%e8%80%83%e9%80%a3%e7%b5%90" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;:book: &lt;a
href="https://adamtheautomator.com/psexec/"target="_blank" rel="noopener"&gt;Everything You Wanted to know About Psexec&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;font color=blue&gt;技術參考連結&lt;/font&gt;&lt;span class="hx:absolute hx:-mt-20" id="技術參考連結"&gt;&lt;/span&gt;
&lt;a href="#%e6%8a%80%e8%a1%93%e5%8f%83%e8%80%83%e9%80%a3%e7%b5%90" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.archive/compress-archive?view=powershell-7.3"target="_blank" rel="noopener"&gt;Compress-Archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.novatec-gmbh.de/en/blog/understanding-infrastructure-as-code-iac-in-less-than-10-minutes/"target="_blank" rel="noopener"&gt;Understanding Infrastructure as Code (IaC) in less than 10 minutes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://learn.microsoft.com/en-us/powershell/scripting/learn/remoting/running-remote-commands?view=powershell-7.3"target="_blank" rel="noopener"&gt;Running Remote Commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://theitbros.com/using-psexec-to-run-commands-remotely/"target="_blank" rel="noopener"&gt;Using PsExec to Run Commands Remotely&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://bluenowhere334.blogspot.com/2018/06/batch-enabledelayedexpansion.html"target="_blank" rel="noopener"&gt;延遲變數展開 (EnableDelayedExpansion)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[註] &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; 代表顯示一個空白符號
&lt;a
href="https://www.w3schools.com/html/html_entities.asp"target="_blank" rel="noopener"&gt;https://www.w3schools.com/html/html_entities.asp&lt;/a&gt;&lt;/p&gt;</description></item><item><title>VMware 壓縮虛擬硬碟 with Ubuntu</title><link>https://blog.kubeantony.com/archive/virtualization/vmware-%E5%A3%93%E7%B8%AE%E8%99%9B%E6%93%AC%E7%A1%AC%E7%A2%9F-with-ubuntu/</link><pubDate>Sun, 07 Aug 2022 14:28:36 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/vmware-%E5%A3%93%E7%B8%AE%E8%99%9B%E6%93%AC%E7%A1%AC%E7%A2%9F-with-ubuntu/</guid><description>
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# 更新系統套件
$ sudo apt update; sudo apt -y upgrade; sudo apt -y autoremove
# 安裝 open-vm-tools
$ sudo apt install open-vm-tools
# 重開 VM
$ sudo reboot
# 將 windows 的 .vmdk 檔壓縮
$ sudo /usr/bin/vmware-toolbox-cmd disk shrink /&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;注意 ！ 要關 3 D 圖形 ！&lt;/li&gt;
&lt;/ul&gt;
&lt;h6&gt;tags: &lt;code&gt;VMware&lt;/code&gt;&lt;span class="hx:absolute hx:-mt-20" id="tags-vmware"&gt;&lt;/span&gt;
&lt;a href="#tags-vmware" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h6&gt;</description></item><item><title>Linux KVM</title><link>https://blog.kubeantony.com/archive/virtualization/linux-kvm/</link><pubDate>Thu, 05 May 2022 17:33:16 +0800</pubDate><guid>https://blog.kubeantony.com/archive/virtualization/linux-kvm/</guid><description>
&lt;h2&gt;介紹KVM&lt;span class="hx:absolute hx:-mt-20" id="介紹kvm"&gt;&lt;/span&gt;
&lt;a href="#%e4%bb%8b%e7%b4%b9kvm" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;KVM是linux的核心技術，它可以啟動虛擬機器，和虛擬化技術，市面上所有linux都有這個功能，linux kennel是由Linus Torvalds寫的，他在2006年12月將Linux KVM寫進linux系統，只要是linux系統，CPU是intel的一定要有VT-X的功能，AMD的話要有開啟SVM功能，就能啟動KVM&lt;/p&gt;
&lt;p&gt;我們透過VMware player建立Ubuntu或是Alpine虛擬機器，只要在原生的Linux系統上有啟動核心KVM的功能，這時候Linux系統搖身一變，變成可以啟動很多很多虛擬機器的平台。&lt;/p&gt;
&lt;p&gt;只要是linux系統，有linux kernel，CPU具備VT-x功能(or SVM)，那麼你就可以直接啟動KVM。&lt;/p&gt;
&lt;h3&gt;硬體輔助虛擬化（Hardware-assisted virtualization）&lt;span class="hx:absolute hx:-mt-20" id="硬體輔助虛擬化hardware-assisted-virtualization"&gt;&lt;/span&gt;
&lt;a href="#%e7%a1%ac%e9%ab%94%e8%bc%94%e5%8a%a9%e8%99%9b%e6%93%ac%e5%8c%96hardware-assisted-virtualization" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Intel Virtualization Technology（VT-x）&lt;/li&gt;
&lt;li&gt;AMD Secure Virtual Machine（SVM）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有此技術，各家虛擬技術均可稱為完全虛擬化，它們的差別在週邊硬體（網卡、硬碟）虛擬化支援，這兩個技術會&lt;strong&gt;直接穿透OS，直接使用CPU和記憶體，但其他的硬體周邊不支援&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;用穿透是比較誇張的詞，還是需要透過Hypervisor來調節資源，只是能夠用到真實的硬體而不是模擬的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;過去的專有名稱
半虛擬化 : 需修改系統核心（Windows 不支援）
完全虛擬化 : 需執行 CPU 指令轉碼
如果有看到以上兩個名詞跟硬體輔助虛擬化比較的文章再看&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;QEMU&lt;span class="hx:absolute hx:-mt-20" id="qemu"&gt;&lt;/span&gt;
&lt;a href="#qemu" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;早期硬體沒有硬體輔助虛擬，所以使用 qemu 啟動虛擬機，後來硬體輔助虛擬出現，就可以讓 qemu 搭配 kvm&lt;/p&gt;
&lt;p&gt;QEMU他是虛擬技術的一個軟體，這個軟體能夠幫你產生一台虛擬機器，但是他的CPU,記憶體,硬碟和網卡都是假的，此時搭配KVM產生的虛擬機器，代表底層有啟動VT-X或SVM，這台機器的CPU,記憶體就是真的，也就是用實體機器的&lt;/p&gt;
&lt;h3&gt;KVM運作架構&lt;span class="hx:absolute hx:-mt-20" id="kvm運作架構"&gt;&lt;/span&gt;
&lt;a href="#kvm%e9%81%8b%e4%bd%9c%e6%9e%b6%e6%a7%8b" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://i.imgur.com/WkJ7o2g.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hareware：指的是CPU,記憶體,網路和主機板&amp;hellip;等&lt;/li&gt;
&lt;li&gt;在作業系統啟動KVM的話，建立出來的VM，就可以穿透作業系統，直接使用CPU和記憶體，這樣的速度很快&lt;/li&gt;
&lt;li&gt;除了CPU記憶體，用QEMU模擬出硬碟或網卡，這時候硬碟和網卡就是假的，就會比較慢&lt;/li&gt;
&lt;li&gt;VirtIO是一個虛擬機器周邊的加速引擎，他可以幫我們用QEMU模擬出來的硬碟和網卡加速，但啟動前有一個先決條件，Intel的CPU一定要啟動VT-d這項技術，（本次課程練習不到）&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;GCP建VM&lt;span class="hx:absolute hx:-mt-20" id="gcp建vm"&gt;&lt;/span&gt;
&lt;a href="#gcp%e5%bb%bavm" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;先連到GCP，在Compute Engine裡的設定 &amp;raquo;&amp;gt; 把預設位置改成台灣，區域Ｃ
&lt;img src="https://i.imgur.com/6zXAHDv.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;建立執行個體
機器名稱: mykvm
機器設定，選運算最佳化
系列：C2
機器類型：c2-standard-4（4個vCPU，16 GB記憶體）
&lt;img src="https://i.imgur.com/7LgNah4.png" alt="" loading="lazy" /&gt;
開機磁碟選
作業系統：Ubuntu
版本：Ubuntu 20.04 LTS
開機磁碟類型：SSD 永久磁碟
大小（GB）: 100 GB
好了後按選取
&lt;img src="https://i.imgur.com/lysH075.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3&gt;KVM-Check&lt;span class="hx:absolute hx:-mt-20" id="kvm-check"&gt;&lt;/span&gt;
&lt;a href="#kvm-check" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;先連線進去做一開始的環境設定&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/lLNMXkC.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;sudo nano /etc/ssh/sshd_config
&lt;img src="https://i.imgur.com/euGS2VL.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;sudo systemctl restart ssh&lt;/p&gt;
&lt;p&gt;sudo passwd sreantony&lt;/p&gt;
&lt;p&gt;sudo passwd root&lt;/p&gt;
&lt;p&gt;sudo nano /etc/sudoers
&lt;img src="https://i.imgur.com/hLQkzIr.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;在落地雲的CMD，ssh連進去
``&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo apt-get update
$ sudo apt-get install cpu-checker
........
0 upgraded, 2 newly installed, 0 to remove and 130 not upgraded.
Need to get 16.9 kB of archives.
After this operation, 66.6 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
$ kvm-ok
INFO: Your CPU does not support KVM extensions
INFO: For more detailed results, you should run this as root&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Hypervisor&lt;span class="hx:absolute hx:-mt-20" id="hypervisor"&gt;&lt;/span&gt;
&lt;a href="#hypervisor" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;虛擬機器的建立,開啟,關閉,刪除,還有虛擬機器和虛擬機器之間的隔離，以上這些技術要完成的就是Hypervisor，虛擬機器的一生，要怎麼去管理和監控都是靠Hypervisor，如果沒有它，以上這些事情通通都不能做
&lt;img src="https://i.imgur.com/WdJnLVu.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;分為兩個架構&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Type 1 Hypervisor 裸機架構（Bare-Metal）
企業會使用這種架構，作業系統會內建Hypervisor，舉個例字：Linux KVM，只要你是linux系統，有linux kernrl ，那一定會有KVM，這個架構就可以統稱裸機架構，有了這種架構，你就可以直接啟動不同的作業系統&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Type 2 Hypervisor 寄居架構 （Hosted）
作業系統沒有內定Hypervisor，在作業系統上額外安裝Hypervisor就是寄居架構，這時候運作效率就會變慢，因為它還要透過作業系統才能做管理，像是我們在落地雲windows電腦裡面安裝VMware就是，這種寄居架構&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;巢狀虛擬化&lt;span class="hx:absolute hx:-mt-20" id="巢狀虛擬化"&gt;&lt;/span&gt;
&lt;a href="#%e5%b7%a2%e7%8b%80%e8%99%9b%e6%93%ac%e5%8c%96" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;會有很多個Hypervisor，在虛擬機器裡面再開一個虛擬機器，一般企業不允許，在GCP裡面可以突破這個限制，在GCP裡面建立一台虛擬機器，裡面再建立一台虛擬機器&lt;/p&gt;
&lt;h3&gt;GCP 巢狀虛擬化的限制&lt;span class="hx:absolute hx:-mt-20" id="gcp-巢狀虛擬化的限制"&gt;&lt;/span&gt;
&lt;a href="#gcp-%e5%b7%a2%e7%8b%80%e8%99%9b%e6%93%ac%e5%8c%96%e7%9a%84%e9%99%90%e5%88%b6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;一定要是linux作業系統&lt;/li&gt;
&lt;li&gt;機器類型不能使用&lt;strong&gt;E2&lt;/strong&gt;和&lt;strong&gt;N2D&lt;/strong&gt;
&lt;img src="https://i.imgur.com/vX0DaNZ.png" alt="" loading="lazy" /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;設定GCP巢狀虛擬&lt;span class="hx:absolute hx:-mt-20" id="設定gcp巢狀虛擬"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9agcp%e5%b7%a2%e7%8b%80%e8%99%9b%e6%93%ac" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;h3&gt;第一步 啟動Cloud shell&lt;span class="hx:absolute hx:-mt-20" id="第一步-啟動cloud-shell"&gt;&lt;/span&gt;
&lt;a href="#%e7%ac%ac%e4%b8%80%e6%ad%a5-%e5%95%9f%e5%8b%95cloud-shell" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;用cloud shell的原因是因為不用額外安裝gcloud這個命令
先點這個
&lt;img src="https://i.imgur.com/7yhXbJt.png" alt="" loading="lazy" /&gt;
開啟編輯器
&lt;img src="https://i.imgur.com/Zc4yApN.png" alt="" loading="lazy" /&gt;
把終端機的功能打開
&lt;img src="https://i.imgur.com/IVQpP75.png" alt="" loading="lazy" /&gt;
會呈現以下畫面
&lt;img src="https://i.imgur.com/TPXbu6i.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;這就是gcp裡面的一台機器，我們已經透過cloud shell連進去這台機器了
這台機器不用錢，我們用這台虛擬機器是因為google在管理虛擬機器，有一項命令叫做gcloud，這樣就不用額外安裝&lt;/p&gt;
&lt;h3&gt;第二部 匯出&lt;span class="hx:absolute hx:-mt-20" id="第二部-匯出"&gt;&lt;/span&gt;
&lt;a href="#%e7%ac%ac%e4%ba%8c%e9%83%a8-%e5%8c%af%e5%87%ba" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;先下一個環境變數&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ export vmname=&amp;#39;mykvm&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檢查區域
&lt;img src="https://i.imgur.com/GBUaAbH.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ gcloud compute instances export ${vmname} \
--destination=${vmname}.yaml \ #設定等等匯出的名字叫mykvm.yaml
--zone=**asia-east1-c** #在gcloud上面要匯出你的VM的設定檔，一定會綁定機器在哪個地區&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;用tee命令在yaml檔後面再加兩筆資料，這就是巢狀虛擬化必須啟動的功能，可以用kvm-ok確定要不要設定&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ tee -a ${vmname}.yaml&amp;lt;&amp;lt;EOF
advancedMachineFeatures:
enableNestedVirtualization: true &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/pIEblFY.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;把剛剛設定好的yaml檔，傳回去給gcp，並且請他重新開機立即生效&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ gcloud compute instances update-from-file ${vmname} \
--source=${vmname}.yaml \
--most-disruptive-allowed-action=RESTART \
--zone=asia-east1-c&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;好了後，再用ssh命令連進去機器，注意外部IP這時候有可能會更動&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;安裝Kvm&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo apt install qemu-kvm
........
0 upgraded, 26 newly installed, 0 to remove and 130 not upgraded.
Need to get 19.6 MB of archives.
After this operation, 82.5 MB of additional disk space will be used.
Do you want to continue? \[Y/n\] y&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo adduser ${USER} kvm
$ sudo reboot&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檢查 kvm 是否正確安裝&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kvm -version
QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.21)
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Alpine系統安裝&lt;span class="hx:absolute hx:-mt-20" id="alpine系統安裝"&gt;&lt;/span&gt;
&lt;a href="#alpine%e7%b3%bb%e7%b5%b1%e5%ae%89%e8%a3%9d" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ mkdir wk wk/iso wk/disk
$ cd wk
$ wget https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86\_64/alpine-virt-3.15.4-x86\_64.iso -O iso/alpine-virt-3.15.4-x86_64.iso&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;使用qemu-img產生qcow2格式的硬碟&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ qemu-img create -f qcow2 disk/alpine.qcow2 10G
Formatting &amp;#39;disk/alpine.qcow2&amp;#39;, fmt=qcow2 size=10737418240 cluster\_size=65536 lazy\_refcounts=off refcount_bits=16&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檢查硬碟格式&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ qemu-img info disk/alpine.qcow2
image: disk/alpine.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 196 KiB&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo kvm -m 2048 \
-cdrom iso/alpine-virt-3.15.4-x86_64.iso \
-hda disk/alpine.qcow2 \
-nographic
參數說明：
-m 虛擬機記憶體設定 (單位 MB)
-cdrom 虛擬機開機放入光碟片
-hda 虛擬機開機掛載硬碟 (代號 a)
-nographic 不啟動圖形化介面
備註：
開機順序 hd(a) -&amp;gt; cdrom&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;alpine設定
&lt;img src="https://i.imgur.com/tUUUI5N.png" alt="" loading="lazy" /&gt;
&lt;img src="https://i.imgur.com/kVi1edt.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ which kvm
/usr/bin/kvm&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ cat /usr/bin/kvm
#!/bin/sh
exec qemu-system-x86_64 -enable-kvm &amp;#34;$@&amp;#34;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Q. 請測試有無啟動 kvm，Alpine 系統開機速度差多少？&lt;/p&gt;
&lt;p&gt;A.
有用Kvm&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;sudo qemu-system-x86_64 -enable-kvm -m 2048 \
-hda disk/alpine.qcow2 \
-nographic&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;沒加kvm&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;sudo qemu-system-x86_64 -m 2048 \
-hda disk/alpine.qcow2 \
-nographic&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;電腦基本元件&lt;span class="hx:absolute hx:-mt-20" id="電腦基本元件"&gt;&lt;/span&gt;
&lt;a href="#%e9%9b%bb%e8%85%a6%e5%9f%ba%e6%9c%ac%e5%85%83%e4%bb%b6" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;4大元件：cpu 硬碟 記憶體 主機板
伺服器也是一台電腦，只是規格比較好，他也會有以上四大元件&lt;/p&gt;
&lt;h3&gt;cpu&lt;span class="hx:absolute hx:-mt-20" id="cpu"&gt;&lt;/span&gt;
&lt;a href="#cpu" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;中央處理器，一台電腦要去跑程式，都是cpu(中央處理器)的功勞
兩大cpu廠商：Intel 和 AMD
我們現在比較的是x86架構，手機的cpu處理器不列入比較
&lt;img src="https://i.imgur.com/fpcVYTb.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;由上往下依序，是入門款到高階&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;Core i7 - 11 700 k
系列 世代 性能 尾碼&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;AMD的處理器都能超頻&lt;/p&gt;
&lt;p&gt;以i7-8700為例，https://www.intel.com.tw/content/www/tw/zh/products/sku/126686/intel-core-i78700-processor-12m-cache-up-to-4-60-ghz/specifications.html&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/tbniUTk.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;如何報cpu規格：
i7-8700，6核12執行序，（3.20GHz）時脈&lt;/p&gt;
&lt;p&gt;尾數Ｕ，代表就是筆電的處理器
&lt;img src="https://i.imgur.com/4rXhwXS.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;伺服器的（CPU）
因為企業裡面幾乎都是intel，所以不討論ＡＭＤ
命名（2017年以前）&lt;/p&gt;
&lt;p&gt;2018後，怎麼看規格&lt;/p&gt;
&lt;p&gt;看內部結構
真正在跑運算process的是core不是threads，除非程式裡面有寫&lt;/p&gt;
&lt;p&gt;但是只要稱得上虛擬化技術的都是跑threads&lt;/p&gt;
&lt;p&gt;甚麼是vCPU？
直接當threads看&lt;/p&gt;
&lt;h3&gt;記憶體&lt;span class="hx:absolute hx:-mt-20" id="記憶體"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%98%e6%86%b6%e9%ab%94" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;記憶體的重點，容量和速度
雙通道的效能會大於單通道，也就是說兩條4G的記憶體效能會大於一條8G
規格DDR5 &amp;gt; DDR4 &amp;gt; DDR3&lt;/p&gt;
&lt;h3&gt;硬碟&lt;span class="hx:absolute hx:-mt-20" id="硬碟"&gt;&lt;/span&gt;
&lt;a href="#%e7%a1%ac%e7%a2%9f" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;在規格相同的情況下，M.2 &amp;gt; SSD &amp;gt; HDD&lt;/p&gt;
&lt;h2&gt;設定KVM Disk&lt;span class="hx:absolute hx:-mt-20" id="設定kvm-disk"&gt;&lt;/span&gt;
&lt;a href="#%e8%a8%ad%e5%ae%9akvm-disk" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;擴充 alpine 硬碟容量&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ qemu-img resize disk/alpine.qcow2 &amp;#43;10G
Image resized.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檢查 alpine 硬碟容量&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ qemu-img info disk/alpine.qcow2
image: disk/alpine.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 9.75 GiB&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;將alpine開機&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo kvm \
-m 2048 \
-hda disk/alpine.qcow2 \
-nographic&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;延伸空間&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;alpine66:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
fd0 2:0 1 0B 0 disk
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 100M 0 part /boot (開機使用)
├─sda2 8:2 0 2.5G 0 part [SWAP] （）
└─sda3 8:3 0 7.4G 0 part /
sr0 11:0 1 1024M 0 rom&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;在業界，是用多少硬碟給多少，不會一次到位，因為給了就沒辦法壓縮回來&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在實物上，windows完全不建議一個磁碟分成兩個分割區&lt;/p&gt;
&lt;h3&gt;主機板（MB）&lt;span class="hx:absolute hx:-mt-20" id="主機板mb"&gt;&lt;/span&gt;
&lt;a href="#%e4%b8%bb%e6%a9%9f%e6%9d%bfmb" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;規格分3種，體積由大到小ATX &amp;raquo;&amp;gt; MICRO ATX &amp;raquo;&amp;gt; MINI ATX&lt;/p&gt;
&lt;h3&gt;認識企業伺服器&lt;span class="hx:absolute hx:-mt-20" id="認識企業伺服器"&gt;&lt;/span&gt;
&lt;a href="#%e8%aa%8d%e8%ad%98%e4%bc%81%e6%a5%ad%e4%bc%ba%e6%9c%8d%e5%99%a8" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://i.imgur.com/xwGnh0e.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/tm5fu22.png" alt="" loading="lazy" /&gt;
vmdk是vmware 虛擬機器的硬碟檔
VHDX是微軟 Microsoft Hyper-V虛擬機器的硬碟檔
VPC是雅馬遜Amazon 虛擬機器的硬碟檔
QCOW2是KVM 虛擬機器的硬碟檔&lt;/p&gt;
&lt;h2&gt;KVM Bridge Network&lt;span class="hx:absolute hx:-mt-20" id="kvm-bridge-network"&gt;&lt;/span&gt;
&lt;a href="#kvm-bridge-network" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;學習目標&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;QEMU 網路設定&lt;/li&gt;
&lt;li&gt;QEMU User Mode 網路&lt;/li&gt;
&lt;li&gt;TUN/TAP 虛擬網卡&lt;/li&gt;
&lt;li&gt;自製橋接網路 (Bridge)&lt;/li&gt;
&lt;li&gt;dnsmasq DHCP Server 架設&lt;/li&gt;
&lt;li&gt;KVM 虛擬機器透過 NAT 上網&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;QEMU 網路設定&lt;span class="hx:absolute hx:-mt-20" id="qemu-網路設定"&gt;&lt;/span&gt;
&lt;a href="#qemu-%e7%b6%b2%e8%b7%af%e8%a8%ad%e5%ae%9a" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;確認 QEMU 支援網卡型號&lt;/p&gt;
&lt;p&gt;*預設為 E1000 (Intel® 82540EM)&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kvm -net nic,model=?&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;確認 QEMU 支援網路類型&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kvm --help | grep &amp;#34;\\-net &amp;#34;
-net nic[,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]
-net [user|tap|bridge|socket][,option][,option][,...]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;QEMU User Mode 網路&lt;span class="hx:absolute hx:-mt-20" id="qemu-user-mode-網路"&gt;&lt;/span&gt;
&lt;a href="#qemu-user-mode-%e7%b6%b2%e8%b7%af" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://i.imgur.com/2cfs5uu.png" alt="" loading="lazy" /&gt;
SLIRP主要是模擬撥接網路，對應在QEMU的USER Mode 就會非常慢&lt;/p&gt;
&lt;p&gt;User Networking (SLIRP)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;there is a lot of overhead so the performance is poor&lt;/li&gt;
&lt;li&gt;in general, ICMP traffic does not work (so you cannot use ping within a guest)&lt;/li&gt;
&lt;li&gt;on Linux hosts, ping does work from within the guest, but it needs initial setup by root (once per host)&lt;/li&gt;
&lt;li&gt;the guest is not directly accessible from the host or the external network&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4&gt;實作&lt;span class="hx:absolute hx:-mt-20" id="實作"&gt;&lt;/span&gt;
&lt;a href="#%e5%af%a6%e4%bd%9c" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;先確定工作目錄&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ pwd
/home/desktop/wk&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;下載 Tiny Core Linux 光碟片&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ wget http://www.tinycorelinux.net/13.x/x86/release/Core-current.iso -O iso/tcl.iso&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;透過KVM開啟Tinycore Linux虛擬機器&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;kvm -m 128 -net nic -net user -cdrom iso/tcl.iso -curses&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;-curses 指的是不要圖形化介面
-net nic 是網卡，這邊不指定
-net user 是網路要user mode&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;確認IP : 10.0.2.15
和Mac address ： 52:54:00:12:34:56&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;＃ ifconfig&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;確認Gateway : 10.0.2.2&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# route -n&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;確認DNS : 10.0.2.3&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;# cat /etc/resolv.conf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Tiny Core Linux 簡稱TCL，在TCL 虛擬機中確認網卡型號&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安裝 lshw 套件&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ tce-load -wi lshw.tcz&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;確認網卡型號&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo lshw -class network
::
product: 82540EM Gigabit Ethernet Controller&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;TCL 關機&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo poweroff&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3&gt;TUN/TAP 虛擬網卡&lt;span class="hx:absolute hx:-mt-20" id="tuntap-虛擬網卡"&gt;&lt;/span&gt;
&lt;a href="#tuntap-%e8%99%9b%e6%93%ac%e7%b6%b2%e5%8d%a1" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;TAP (as in network tap) simulates a link layer device and it operates with layer 2 packets such as Ethernet frames. TUN (as in network TUNnel) simulates a network layer device and it operates with layer 3 packets such as IP packets. &lt;strong&gt;TAP is used to create a network bridge&lt;/strong&gt;, while TUN is used with routing.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;TAP這張網卡主要模擬乙太網路的網卡，TAP通常用來做橋接網路&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h4&gt;&lt;strong&gt;使用&lt;/strong&gt; &lt;strong&gt;tunctl&lt;/strong&gt; &lt;strong&gt;指令&lt;/strong&gt;&lt;span class="hx:absolute hx:-mt-20" id="使用-tunctl-指令"&gt;&lt;/span&gt;
&lt;a href="#%e4%bd%bf%e7%94%a8-tunctl-%e6%8c%87%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;安裝tunctl 套件&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo apt install uml-utilities&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;產生 TAP 網路裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo tunctl -u ${USER}
Set &amp;#39;tap0&amp;#39; persistent and owned by uid 1000&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;手動設定 TAP 網卡的 MAC 位址&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo ifconfig tap0 hw ether 4c:22:d0:b8:78:ae&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;查看 TAP 網路裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ ifconfig tap0
tap0: flags=4098&amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500
ether 4c:22:d0:b8:78:ae txqueuelen 1000 (Ethernet)
::&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;移除 TAP 網路裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ tunctl -d tap0
Set &amp;#39;tap0&amp;#39; nonpersistent&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3&gt;Ethernet 重點回顧&lt;span class="hx:absolute hx:-mt-20" id="ethernet-重點回顧"&gt;&lt;/span&gt;
&lt;a href="#ethernet-%e9%87%8d%e9%bb%9e%e5%9b%9e%e9%a1%a7" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;有線乙太網路 Ethernet&lt;/p&gt;
&lt;p&gt;一個乙太網路的要件包括了&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;乙太網路卡 (Ethernet card)&lt;/li&gt;
&lt;li&gt;網路連接設備&lt;/li&gt;
&lt;li&gt;連接設備的電纜 (cabling)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3&gt;TCP/IP Model&lt;span class="hx:absolute hx:-mt-20" id="tcpip-model"&gt;&lt;/span&gt;
&lt;a href="#tcpip-model" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;img src="https://i.imgur.com/7XORo9s.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Data-Link Layer 資料連接層
Physical Layer 實體層&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3&gt;&lt;strong&gt;Bridge &amp;amp; STP&lt;/strong&gt;&lt;span class="hx:absolute hx:-mt-20" id="bridge--stp"&gt;&lt;/span&gt;
&lt;a href="#bridge--stp" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;A network bridge is a computer networking device that creates a single, aggregate network from multiple communication networks or network segments. In the OSI model, bridging is performed in the data link layer (layer 2).&lt;/p&gt;
&lt;p&gt;The Spanning Tree Protocol (STP) is a network protocol that builds a loop-free logical topology for Ethernet networks. The basic function of STP is to prevent bridge loops (迴路) and the broadcast radiation (廣播風暴) that results from them.&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;使用brctl 指令&lt;span class="hx:absolute hx:-mt-20" id="使用brctl-指令"&gt;&lt;/span&gt;
&lt;a href="#%e4%bd%bf%e7%94%a8brctl-%e6%8c%87%e4%bb%a4" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;安裝brctl 套件&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo apt install bridge-utils&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;產生 bridge 網路裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo brctl addbr br01&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;查看 br01 的資訊&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ brctl show br01
bridge name bridge id STP enabled interfaces
br01 8000.000000000000 no
*8000 是 id，句點後是橋接裝置的 MAC 位址&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;br01 裝置的內部網卡(網卡名稱與 Bridge 網路裝置同名)&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ ifconfig br01
br01: flags=4098&amp;lt;BROADCAST,MULTICAST&amp;gt; mtu 1500
ether 7e:49:b0:80:e9:62 txqueuelen 1000 (Ethernet)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;移除 br01 裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo brctl delbr br01&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3&gt;自製 KVM橋接網路&lt;span class="hx:absolute hx:-mt-20" id="自製-kvm橋接網路"&gt;&lt;/span&gt;
&lt;a href="#%e8%87%aa%e8%a3%bd-kvm%e6%a9%8b%e6%8e%a5%e7%b6%b2%e8%b7%af" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;設定 macsw 裝置的 IP&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo ifconfig macsw 172.16.20.254 netmask 255.255.255.0 up&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檢查&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ ifconfig macsw
macsw: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500
inet 172.16.20.254 netmask 255.255.255.0 broadcast 172.16.20.255
inet6 fe80::303b:1dff:fe2a:2324 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;
ether 32:3b:1d:2a:23:24 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 37 bytes 4880 (4.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;產生二個 TAP 網路介面&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo tunctl -b -u ${USER}
Tap0
$ sudo tunctl -b -u ${USER}
tap1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;啟動新建 TAP 網路裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo ifconfig tap0 up
$ ifconfig tap0
$ sudo ifconfig tap1 up
$ ifconfig tap1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;將 TAP 網路介面連接至 Bridge 網路裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo brctl addif macsw tap0
$ sudo brctl addif macsw tap1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檢視 macsw 網路裝置的 MAC 表格&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo brctl showmacs macsw
port no mac addr is local? ageing timer
2 f6:af:90:76:95:ea yes 0.00
2 f6:af:90:76:95:ea yes 0.00
1 fa:47:ee:b7:e2:8b yes 0.00
1 fa:47:ee:b7:e2:8b yes 0.00
$ ifconfig macsw&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;檢視 macsw 內部運作資訊&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo brctl showstp macsw&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;顯示所有 bridge 網路裝置&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ brctl show
bridge name bridge id STP enabled interfaces
macsw 8000.f6af907695ea no tap0
tap1&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;dnsmasq 介紹&lt;span class="hx:absolute hx:-mt-20" id="dnsmasq-介紹"&gt;&lt;/span&gt;
&lt;a href="#dnsmasq-%e4%bb%8b%e7%b4%b9" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;dnsmasq is free software providing Domain Name System (DNS) caching, a Dynamic Host Configuration Protocol (DHCP) server, router advertisement and network boot features, intended for small computer networks.&lt;/p&gt;
&lt;p&gt;dnsmasq has low requirements for system resources, can run on Linux, BSDs, Android and macOS, and is included in most Linux distributions. Consequently, it &amp;ldquo;is present in a lot of home routers and certain Internet of Things gadgets&amp;rdquo; and is included in Android.&lt;/p&gt;
&lt;p&gt;檢查 53 Port 被誰佔用&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo lsof -i :53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 468 systemd-resolve 12u IPv4 17221 0t0 UDP localhost:domain
systemd-r 468 systemd-resolve 13u IPv4 17222 0t0 TCP localhost:domain (LISTEN)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;停止並停用 systemd-resolved&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo systemctl stop systemd-resolved
$ sudo systemctl disable systemd-resolved
sudo: unable to resolve host mykvm: Temporary failure in name resolution ##注意這行要sudo nano /etc/hosts進去修改
Removed /etc/systemd/system/multi-user.target.wants/systemd-resolved.service.
Removed /etc/systemd/system/dbus-org.freedesktop.resolve1.service.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;在/etc/hosts 新增hosts name&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo nano /etc/hosts
sudo: unable to resolve host mykvm: Temporary failure in name resolution
將127.0.0.1 localhost修改成127.0.0.1 localhost mykvm&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;ctrl o 儲存 ctrl x離開之後，在下sudo命令就不會噴錯了&lt;/p&gt;
&lt;p&gt;查看 /etc/resolv.conf&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ ls -al /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Apr 19 19:32 /etc/resolv.conf -&amp;gt; ../run/systemd/resolve/stub-resolv.conf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;刪除 /etc/resolv.conf&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo rm /etc/resolv.conf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;產生新的 /etc/resolv.conf&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf
nameserver 8.8.8.8&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;安裝 dnsmasq 套件&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo apt install dnsmasq&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;編輯 dnsmasq 設定，在最下方加入下列內容&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ echo &amp;#34;
dhcp-range=172.16.20.150,172.16.20.160,24h
dhcp-option=option:netmask,255.255.255.0
dhcp-option=option:router,172.16.20.254
dhcp-option=option:dns-server,8.8.8.8
&amp;#34; | sudo tee -a /etc/dnsmasq.conf&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;第一行，給一個IP的範圍，讓dhcp server派發．
24h 是IP租用時間，意思是說會給client端24小時的時間，當時間經過一半，client端會去跟server續約，如果沒續約的話，server端會收回IP&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;重啟 dnsmasq&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo systemctl restart dnsmasq&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;在另一個終端機
啟動第一部 TCL 虛擬電腦&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ kvm -m 128 -cdrom iso/tcl.iso \
-net nic,macaddr=52:54:72:16:20:10 \
-net tap,ifname=tap0 -curses&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;進入&lt;/strong&gt; &lt;strong&gt;TCL&lt;/strong&gt; &lt;strong&gt;虛擬主機後請檢查&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;是否有自動取得IP&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;tc@box:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:72:16:20:10
inet addr:172.16.20.150 Bcast:172.16.20.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1328 (1.2 KiB) TX bytes:1086 (1.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Default Gateway是否設定正確&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;tc@box:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.20.254 0.0.0.0 UG 0 0 0 eth0
127.0.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 lo
172.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;DNS是否設定正確&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;tc@box:~$ cat /etc/resolv.conf
nameserver 8.8.8.8&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;啟動第二部 TCL 虛擬電腦
$ kvm -m 128 -cdrom iso/tcl.iso &lt;br&gt;
-net nic,macaddr=52:54:72:16:20:11 &lt;br&gt;
-net tap,ifname=tap1 -curses&lt;/p&gt;
&lt;p&gt;是否有自動取得IP&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;tc@box:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:72:16:20:11
inet addr:172.16.20.151 Bcast:172.16.20.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1268 (1.2 KiB) TX bytes:1026 (1.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Default Gateway是否設定正確&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;tc@box:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.20.254 0.0.0.0 UG 0 0 0 eth0
127.0.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 lo
172.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;DNS是否設定正確&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;tc@box:~$ cat /etc/resolv.conf
nameserver 8.8.8.8&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;企業IP網路規劃分法&lt;span class="hx:absolute hx:-mt-20" id="企業ip網路規劃分法"&gt;&lt;/span&gt;
&lt;a href="#%e4%bc%81%e6%a5%adip%e7%b6%b2%e8%b7%af%e8%a6%8f%e5%8a%83%e5%88%86%e6%b3%95" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;IP 0&lt;del&gt;255 去頭去尾 1&lt;/del&gt;254 前十後五 中間切一刀 前半靜態 後半 DHCP
頭：Network ID
尾：廣播位址
前10：系統服務（DNS Server , DHCP Server &amp;hellip;等）
後五：網路設備
切一半
前半：手動設定靜態IP
後半：DHCP Server自動配發IP&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;ARP&lt;/strong&gt; &lt;strong&gt;重點回顧&lt;/strong&gt;&lt;span class="hx:absolute hx:-mt-20" id="arp-重點回顧"&gt;&lt;/span&gt;
&lt;a href="#arp-%e9%87%8d%e9%bb%9e%e5%9b%9e%e9%a1%a7" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;&lt;img src="https://i.imgur.com/gSNDjAS.png" alt="" loading="lazy" /&gt;
當Host A要傳給Host B資料時， 第一步Host A主機會先檢查自己的ARP cache有沒有Host B的MAC位址，如果沒有紀錄，&lt;/p&gt;
&lt;p&gt;它就會進到第二部，在Switch上面廣播&amp;quot;ARP requset&amp;quot;，ARP requset裡面會有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Host A自己的IP address 和 MAC address&lt;/li&gt;
&lt;li&gt;Host B的IP address和MAC address，但因為這時候不知道，所以顯示都是00:00:00:00:00:00（ 00:00:00:00:00:00 ）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;第三部
Host B主機收到ARP request後，會在自己這邊的ARP cache紀錄Host A主機的MAC Address&lt;/p&gt;
&lt;p&gt;第四部
Host B主機會將自己的IP位址和MAC address位址傳給Host A&lt;/p&gt;
&lt;p&gt;第五部
Host A主機會在自己的ARP Cache中把收到的Host B 主機的IP位址和MAC address紀錄起來&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;清除ARP Cache&lt;span class="hx:absolute hx:-mt-20" id="清除arp-cache"&gt;&lt;/span&gt;
&lt;a href="#%e6%b8%85%e9%99%a4arp-cache" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;[TCL 主機 172.16.20.150]&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ arp -n
? (172.16.20.254) at 06:6f:48:e9:86:1b \[ether\] on eth0
? (172.16.20.151) at 52:54:72:16:20:11 \[ether\] on eth0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;清除 ARP Cache&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ sudo arp -d 172.16.20.151
$ arp -n
? (172.16.20.254) at 06:6f:48:e9:86:1b \[ether\] on eth0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h3&gt;&lt;strong&gt;擷取封包&lt;/strong&gt;&lt;span class="hx:absolute hx:-mt-20" id="擷取封包"&gt;&lt;/span&gt;
&lt;a href="#%e6%93%b7%e5%8f%96%e5%b0%81%e5%8c%85" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;[HOST 主機]&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ pwd
/home/qazstuser01/wk
$ sudo tcpdump -s 0 -i macsw8 -w tcpdump.pcap
tcpdump: listening on macsw8, link-type EN10MB (Ethernet), capture size 262144 bytes&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[TCL 主機 172.16.20.150]&lt;/p&gt;
&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;pre&gt;&lt;code&gt;$ ping -c 4 172.16.20.151&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
&lt;button
class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50"
title="複製程式碼"
aria-label="複製程式碼"
data-copied-label="已複製！"
&gt;
&lt;div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"&gt;&lt;/div&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;[HOST 主機]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;回到正在執行&lt;/strong&gt; &lt;strong&gt;tcpdump&lt;/strong&gt; &lt;strong&gt;的終端機，按下&lt;/strong&gt; &lt;strong&gt;Ctrl + C&lt;/strong&gt; &lt;strong&gt;停止擷取&lt;/strong&gt;&lt;/p&gt;
&lt;h6&gt;tags: &lt;code&gt;Linux&lt;/code&gt;&lt;span class="hx:absolute hx:-mt-20" id="tags-linux"&gt;&lt;/span&gt;
&lt;a href="#tags-linux" class="subheading-anchor" aria-label="此章節的永久連結"&gt;&lt;/a&gt;&lt;/h6&gt;</description></item></channel></rss>