mirror of
https://github.com/oneclickvirt/oneclickvirt.github.io.git
synced 2026-07-02 06:54:30 +08:00
28 lines
29 KiB
JavaScript
28 lines
29 KiB
JavaScript
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 "WebVirtCloud 安装指南""></a></h2><p><a href="https://hits.spiritlhl.net" target="_blank" rel="noreferrer"><img src="https://hits.spiritlhl.net/webvirtcloud.svg?action=hit&title=hits&title_bg=%23555555&count_bg=%233aebee&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 "控制端安装""></a></h2><h3 id="系统要求" tabindex="-1">系统要求 <a class="header-anchor" href="#系统要求" aria-label="Permalink to "系统要求""></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 "默认登录信息""></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 "面板地址""></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 "安装命令""></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;">&&</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;">&&</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 "计算节点安装""></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 "系统要求""></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 "环境检测""></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;">&&</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;">&&</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;">&&</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 "计算节点安装步骤""></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;">&&</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 "NetworkManager 版本问题""></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 'eth0' (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't match. Restarting NetworkManager is advised.</span></span>
|
||
<span class="line"><span style="color:#A6ACCD;">Error: Failed to add 'br-ext' 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 "安装耗时提示""></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 "添加计算节点到控制面板""></a></h3><p>安装完成后会生成一个 <strong>Token</strong>,用于在控制端(Admin 面板)中添加计算节点:</p><p>路径: <code>Admin Panel > Computers > Add</code></p><h3 id="给开设的虚拟机添加公网ip端口映射" tabindex="-1">给开设的虚拟机添加公网IP端口映射 <a class="header-anchor" href="#给开设的虚拟机添加公网ip端口映射" aria-label="Permalink to "给开设的虚拟机添加公网IP端口映射""></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;"><</span><span style="color:#C3E88D;">LOOPBACK,UP,LOWER_U</span><span style="color:#A6ACCD;">P</span><span style="color:#89DDFF;">></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;"><</span><span style="color:#C3E88D;">BROADCAST,MULTICAST,UP,LOWER_U</span><span style="color:#A6ACCD;">P</span><span style="color:#89DDFF;">></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 "问题排查""></a></h2><h3 id="添加计算节点错误排查" tabindex="-1">添加计算节点错误排查 <a class="header-anchor" href="#添加计算节点错误排查" aria-label="Permalink to "添加计算节点错误排查""></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;"><</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;">></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 "Controller 重启后 Docker 容器不自重启""></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 "缺点""></a></h2><p>系统镜像是写死的,没法使用自己制作的自定义镜像,也没办法导出使用,同时原始的镜像没有设置远程可用密码登录和ROOT登录可用</p><h2 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to "致谢""></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};
|