Files
oneclickvirt.github.io/assets/incomplete_webvirtcloud.md.ab389c47.lean.js
2025-04-25 07:50:01 +00:00

28 lines
29 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as s,v as a,b as l,R as n}from"./chunks/framework.70afa331.js";const o="/assets/wv1.5ac4a026.png",h=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"incomplete/webvirtcloud.md","filePath":"incomplete/webvirtcloud.md","lastUpdated":1745567371000}'),p={name:"incomplete/webvirtcloud.md"},e=n(`<h2 id="webvirtcloud-安装指南" tabindex="-1">WebVirtCloud 安装指南 <a class="header-anchor" href="#webvirtcloud-安装指南" aria-label="Permalink to &quot;WebVirtCloud 安装指南&quot;"></a></h2><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/webvirtcloud.svg?action=hit&amp;title=hits&amp;title_bg=%23555555&amp;count_bg=%233aebee&amp;edge_flat=false" alt="hits"></a></p><p>仓库地址: <a href="https://github.com/oneclickvirt/webvirtcloud" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/webvirtcloud</a></p><h2 id="控制端安装" tabindex="-1">控制端安装 <a class="header-anchor" href="#控制端安装" aria-label="Permalink to &quot;控制端安装&quot;"></a></h2><h3 id="系统要求" tabindex="-1">系统要求 <a class="header-anchor" href="#系统要求" aria-label="Permalink to &quot;系统要求&quot;"></a></h3><p><strong>最低配置要求:</strong></p><ul><li>CPU: 1 核</li><li>内存: 1 GB RAM</li><li>硬盘: 空余 10 GB</li><li>系统Debian11+Ubuntu20.04+</li></ul><h3 id="默认登录信息" tabindex="-1">默认登录信息 <a class="header-anchor" href="#默认登录信息" aria-label="Permalink to &quot;默认登录信息&quot;"></a></h3><ul><li>用户名: <code>[email protected]</code></li><li>密码: <code>admin</code></li></ul><h3 id="面板地址" tabindex="-1">面板地址 <a class="header-anchor" href="#面板地址" aria-label="Permalink to &quot;面板地址&quot;"></a></h3><ul><li>用户面板: <code>https://192-168-0-114.nip.io</code></li><li>管理后台: <code>https://192-168-0-114.nip.io/admin</code></li></ul><blockquote><p><strong>注意:</strong> 请将 <code>192.168.0.114</code> 替换为你的公网 IP以获取真实可访问地址。</p></blockquote><h3 id="安装命令" tabindex="-1">安装命令 <a class="header-anchor" href="#安装命令" aria-label="Permalink to &quot;安装命令&quot;"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-slk</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/webvirtcloud/main/scripts/install_webvirt_cloud.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install_webvirt_cloud.sh</span><span style="color:#A6ACCD;"> \\</span></span>
<span class="line"><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install_webvirt_cloud.sh</span><span style="color:#A6ACCD;"> \\</span></span>
<span class="line"><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install_webvirt_cloud.sh</span></span></code></pre></div><h2 id="计算节点安装" tabindex="-1">计算节点安装 <a class="header-anchor" href="#计算节点安装" aria-label="Permalink to &quot;计算节点安装&quot;"></a></h2><blockquote><p><strong>重要提示:</strong> Hypervisor 和 Controller 不能在同一虚拟机上安装,否则网络会出现冲突。</p></blockquote><h3 id="系统要求-1" tabindex="-1">系统要求 <a class="header-anchor" href="#系统要求-1" aria-label="Permalink to &quot;系统要求&quot;"></a></h3><p><strong>建议配置:</strong></p><ul><li>CPU: 2 核</li><li>内存: 4 GB RAM</li><li>硬盘: 空余 40 GB</li><li>系统AlmaLinux8+RockyLinux8+</li></ul><blockquote><p><strong>额外说明:</strong></p><ul><li>实际使用建议更高配置,测试环境只够开 4 台最小的虚拟机。</li><li>服务器推荐支持 KVM 嵌套虚拟化的,若<code>VM-x/AMD-V/Hyper-V</code>未启用也可以会自动切换为QEMU使用TCG仿真开设虚拟机只不过性能会有所损耗。</li><li>跳过 env 检测安装,直接使用二进制文件,无需安装依赖。</li></ul></blockquote><h3 id="环境检测" tabindex="-1">环境检测 <a class="header-anchor" href="#环境检测" aria-label="Permalink to &quot;环境检测&quot;"></a></h3><p>检测服务器是否支持 KVM 嵌套虚拟化:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">goecs.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">goecs.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">./goecs.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">goecs</span></span></code></pre></div><p>选择硬件单项测试</p><h3 id="计算节点安装步骤" tabindex="-1">计算节点安装步骤 <a class="header-anchor" href="#计算节点安装步骤" aria-label="Permalink to &quot;计算节点安装步骤&quot;"></a></h3><p>下载安装脚本:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-slk</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/oneclickvirt/webvirtcloud/main/scripts/install_hypervisor.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install_hypervisor.sh</span><span style="color:#A6ACCD;"> \\</span></span>
<span class="line"><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install_hypervisor.sh</span></span></code></pre></div><p>执行安装(替换为你的 Controller IP</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install_hypervisor.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">x.x.x.x</span></span></code></pre></div><blockquote><p>请将 <code>x.x.x.x</code> 替换为你的 Controller 控制端的实际 IP 地址。</p></blockquote><p>面板纳管节点</p><p>执行完毕后会有提示需要在Controller面板端需要填写的内容。</p><p>面板端要填入Hostname的是当前计算节点的IPV4地址还有要填入Token识别节点。</p><h3 id="networkmanager-版本问题" tabindex="-1">NetworkManager 版本问题 <a class="header-anchor" href="#networkmanager-版本问题" aria-label="Permalink to &quot;NetworkManager 版本问题&quot;"></a></h3><p>安装过程中可能会出现以下错误:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">Connection &#39;eth0&#39; (bed050e9-ff49-4665-8112-24ddf2a1cd3c) successfully deleted.</span></span>
<span class="line"><span style="color:#A6ACCD;">Warning: nmcli (1.48.10) and NetworkManager (1.42.2) versions don&#39;t match. Restarting NetworkManager is advised.</span></span>
<span class="line"><span style="color:#A6ACCD;">Error: Failed to add &#39;br-ext&#39; connection: connection.autoconnect-ports: unknown property</span></span></code></pre></div><p><strong>解决方法:</strong> 重启服务器后重新执行安装命令。</p><h3 id="安装耗时提示" tabindex="-1">安装耗时提示 <a class="header-anchor" href="#安装耗时提示" aria-label="Permalink to &quot;安装耗时提示&quot;"></a></h3><ul><li>整个过程大约耗时 <strong>10~25 分钟</strong>。</li><li>大部分时间用于下载 <code>finnix-125.iso</code> 至 <code>/var/lib/libvirt/isos/finnix-125.iso</code>,有时候下载快有时候下载慢。</li><li>该部分无法加速,<strong>建议使用 tmux 或 screen</strong> 等工具防止中断。</li></ul><h3 id="添加计算节点到控制面板" tabindex="-1">添加计算节点到控制面板 <a class="header-anchor" href="#添加计算节点到控制面板" aria-label="Permalink to &quot;添加计算节点到控制面板&quot;"></a></h3><p>安装完成后会生成一个 <strong>Token</strong>用于在控制端Admin 面板)中添加计算节点:</p><p>路径: <code>Admin Panel &gt; Computers &gt; Add</code></p><h3 id="给开设的虚拟机添加公网ip端口映射" tabindex="-1">给开设的虚拟机添加公网IP端口映射 <a class="header-anchor" href="#给开设的虚拟机添加公网ip端口映射" aria-label="Permalink to &quot;给开设的虚拟机添加公网IP端口映射&quot;"></a></h3><p>假设此时你的虚拟机在用户端控制面板显示为</p><p><img src="`+o+`" alt="wv1"></p><p>且宿主机的命令执行<code>ip a | head -n 15</code>结果为</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">1:</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">lo:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&lt;</span><span style="color:#C3E88D;">LOOPBACK,UP,LOWER_U</span><span style="color:#A6ACCD;">P</span><span style="color:#89DDFF;">&gt;</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">mtu</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">65536</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">qdisc</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">noqueue</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">state</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">UNKNOWN</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">group</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">default</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">qlen</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1000</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">link/loopback</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">00</span><span style="color:#C3E88D;">:00:00:00:00:00</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">brd</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">00</span><span style="color:#C3E88D;">:00:00:00:00:00</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">inet</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">127.0</span><span style="color:#C3E88D;">.0.1/8</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">scope</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">host</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">lo</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">valid_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">preferred_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">inet6</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">::1/128</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">scope</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">host</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">valid_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">preferred_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span></span>
<span class="line"><span style="color:#FFCB6B;">2:</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ens3:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&lt;</span><span style="color:#C3E88D;">BROADCAST,MULTICAST,UP,LOWER_U</span><span style="color:#A6ACCD;">P</span><span style="color:#89DDFF;">&gt;</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">mtu</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1500</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">qdisc</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">fq_codel</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">state</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">UP</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">group</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">default</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">qlen</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1000</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">link/ether</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">52</span><span style="color:#C3E88D;">:54:00:f1:d6:8b</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">brd</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ff:ff:ff:ff:ff:ff</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">altname</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">enp0s3</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">inet</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">你的公网IPV4地址/对应的子网掩码</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">scope</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">global</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">noprefixroute</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ens3</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">valid_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">preferred_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">inet6</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">2</span><span style="color:#C3E88D;">a0b:4140:4c60::2/48</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">scope</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">global</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">noprefixroute</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">valid_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">preferred_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">inet6</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">fe80::5054:ff:fef1:d68b/64</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">scope</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">link</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">noprefixroute</span></span>
<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">valid_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">preferred_lft</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">forever</span></span></code></pre></div><p>可见公网IPV4地址绑定的接口是<code>ens3</code>,所以后面的命令这里用<code>ens3</code></p><p>那么映射当前虚拟机的22端口到公网IPV4的3322端口的命令为</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;"># 添加 DNAT 规则将公网3322流量转发到宿主机本地的192.168.33.130:22</span></span>
<span class="line"><span style="color:#FFCB6B;">iptables</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-t</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nat</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-A</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">PREROUTING</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-i</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ens3</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-p</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">tcp</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dport</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">3322</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-j</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">DNAT</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--to-destination</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">192.168</span><span style="color:#C3E88D;">.33.130:22</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;"># 添加 POSTROUTING本机 NAT 伪装,以便连接正常返回</span></span>
<span class="line"><span style="color:#FFCB6B;">iptables</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-t</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">nat</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-A</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">POSTROUTING</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-p</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">tcp</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-d</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">192.168</span><span style="color:#C3E88D;">.33.130</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dport</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">22</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-j</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">MASQUERADE</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;"># 需要允许 INPUT 的3322端口通过firewalld 默认是开启了的)</span></span>
<span class="line"><span style="color:#FFCB6B;">iptables</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-I</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">INPUT</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-p</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">tcp</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dport</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">3322</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-j</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ACCEPT</span></span></code></pre></div><p>这样内网的虚拟机就被映射出来,可以直接远程登录使用了。</p><h2 id="问题排查" tabindex="-1">问题排查 <a class="header-anchor" href="#问题排查" aria-label="Permalink to &quot;问题排查&quot;"></a></h2><h3 id="添加计算节点错误排查" tabindex="-1">添加计算节点错误排查 <a class="header-anchor" href="#添加计算节点错误排查" aria-label="Permalink to &quot;添加计算节点错误排查&quot;"></a></h3><p>在Controller控制端执行</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">telnet</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&lt;</span><span style="color:#C3E88D;">node</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">i</span><span style="color:#A6ACCD;">p</span><span style="color:#89DDFF;">&gt;</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">8884</span></span></code></pre></div><p>在计算节点执行:</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">systemctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">status</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">webvirtcompute</span></span></code></pre></div><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">systemctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">status</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">libvirtd</span></span></code></pre></div><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">systemctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">status</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">prometheus</span></span></code></pre></div><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">systemctl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">status</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">prometheus-libvirt-exporter</span></span></code></pre></div><p>如果以上都查不出问题那么就需要到Controller控制端执行</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">exec</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-it</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">webvirtcloud-backend</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">/bin/sh</span></span></code></pre></div><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">vi</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">webvirtcloud/settings/production.py</span></span></code></pre></div><p>将 DEBUG=False 改成 DEBUG=True</p><p>然后保存文件后,容器内执行</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">UV_PROJECT_ENVIRONMENT</span><span style="color:#89DDFF;">=</span><span style="color:#C3E88D;">/usr/local</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">uv</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">sync</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--dev</span></span></code></pre></div><p>然后<code>exit</code>退出容器后,执行</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">restart</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">webvirtcloud-backend</span></span>
<span class="line"><span style="color:#FFCB6B;">sleep</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">3</span></span>
<span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">logs</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">webvirtcloud-backend</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-f</span></span></code></pre></div><p>然后前端去触发错误的位置,这块日志实时加载就会看到对应的报错了</p><h3 id="controller-重启后-docker-容器不自重启" tabindex="-1">Controller 重启后 Docker 容器不自重启 <a class="header-anchor" href="#controller-重启后-docker-容器不自重启" aria-label="Permalink to &quot;Controller 重启后 Docker 容器不自重启&quot;"></a></h3><p>如果 Docker 容器在系统重启后没有自动重启,执行以下命令:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">start</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">$(</span><span style="color:#FFCB6B;">docker</span><span style="color:#C3E88D;"> ps -a -q</span><span style="color:#89DDFF;">)</span></span></code></pre></div><h2 id="缺点" tabindex="-1">缺点 <a class="header-anchor" href="#缺点" aria-label="Permalink to &quot;缺点&quot;"></a></h2><p>系统镜像是写死的没法使用自己制作的自定义镜像也没办法导出使用同时原始的镜像没有设置远程可用密码登录和ROOT登录可用</p><h2 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h2><p><a href="https://webvirt.cloud/" target="_blank" rel="noreferrer">https://webvirt.cloud/</a></p>`,76),t=[e];function r(c,C,y,i,A,D){return a(),l("div",null,t)}const u=s(p,[["render",r]]);export{h as __pageData,u as default};