<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Gene.Tech</title>
        <link>https://geneliu.itaghome.win/zh-cn/</link>
        <description>Gene.Tech - CI/CD, Docker, Linux, Kubernetes, OpenStack, DevOps, Virtualization</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>gene.liu@live.com (Gene Liu)</managingEditor>
            <webMaster>gene.liu@live.com (Gene Liu)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Sun, 02 Aug 2026 00:00:00 &#43;0000</lastBuildDate>
            <atom:link href="https://geneliu.itaghome.win/zh-cn/index.xml" rel="self" type="application/rss+xml" />
        <item>
    <title>我会反复打开的工具箱</title>
    <link>https://geneliu.itaghome.win/zh-cn/2026-08-02-useful-tools/</link>
    <pubDate>Sun, 02 Aug 2026 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2026-08-02-useful-tools/</guid>
    <description><![CDATA[<p>每隔一段时间，我会把浏览器里攒的链接整理成一篇帖子。有的天天用，有的救过我一整个周末。草稿里的 <strong>EssayKiller_V2</strong> 已删掉 &ndash; GPT-2 时代的作文生成器，2026 年实在没必要再留着。</p>]]></description>
</item>
<item>
    <title>《清醒地活：超越自我的生命之旅》读书笔记</title>
    <link>https://geneliu.itaghome.win/zh-cn/2026-07-27-untethered-soul/</link>
    <pubDate>Mon, 27 Jul 2026 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2026-07-27-untethered-soul/</guid>
    <description><![CDATA[<p>这里整理了阅读《清醒地活：超越自我的生命之旅》时的标注和笔记。</p>
<h3 id="第15章-无条件的快乐之路">第15章 无条件的快乐之路</h3>
<blockquote>
<p>最高级的灵性之路是生活本身。如果你知道如何过好日常生活，生活就会变成一种解放的经历。但你必须先正确地走向生活，否则生活就会变得非常混乱。你得明白你这一生真的只有一个选择，不是关于你的事业，也不是关于你要和谁结婚，或者你要不要寻找神。人们往往苦于做出这许多的选择，但其实你可以把它们都抛在一旁，只做一个根本的选择：你想要快乐，还是不想要快乐？就是这么简单。一旦你做出了那个选择，你的人生道路就会变得清晰。</p>]]></description>
</item>
<item>
    <title>《爱的沟通：写给男士的科学恋爱指南》读书笔记</title>
    <link>https://geneliu.itaghome.win/zh-cn/2026-07-22-mans-guide-to-women/</link>
    <pubDate>Wed, 22 Jul 2026 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2026-07-22-mans-guide-to-women/</guid>
    <description><![CDATA[<p>这里整理了阅读《爱的沟通：写给男士的科学恋爱指南》时的标注和笔记。</p>
<h3 id="01-女人究竟要什么-理解女人心">01 女人究竟要什么？ 理解女人心</h3>
<blockquote>
<p>在男女交往过程中，能让女人觉得你值得信任的行为如下：言出必行、表里如一，能够依靠、有责任感，并且能够如实地展示你自己。</p>]]></description>
</item>
<item>
    <title>Kubernetes 集群安装</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-05-08-k8s-cka/</link>
    <pubDate>Sun, 08 May 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-05-08-k8s-cka/</guid>
    <description><![CDATA[<p>要了解有关 <code>kubeadm</code> 工具箱的一些详细信息，最好的方法是使用它来管理 k8s 集群。这包括整个生命周期管理：新安装 (HA)、扩容/缩容和升级。所有信息截至 2022 年 5 月均为最新。</p>]]></description>
</item>
<item>
    <title>Kubernetes (k3s) 证书过期</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-04-19-k3s-certs-expire/</link>
    <pubDate>Tue, 19 Apr 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-04-19-k3s-certs-expire/</guid>
    <description><![CDATA[<p>一些旧的 k3s 版本存在一个错误，导致证书自动续期失败。</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl --insecure-skip-tls-verify<span class="o">=</span><span class="nb">true</span> delete secret -n kube-system k3s-serving
</span></span><span class="line"><span class="cl">stop k3s
</span></span><span class="line"><span class="cl">remove/backup /var/lib/rancher/k3s/server/tls/dynamic-cert.json
</span></span><span class="line"><span class="cl">remove/backup /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">restart k3s</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Nextcloud 升级后添加缺失的索引</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-03-26-nextcloud/</link>
    <pubDate>Sat, 26 Mar 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-03-26-nextcloud/</guid>
    <description><![CDATA[<h3 id="升级-nextcloud">升级 Nextcloud</h3>
<ol>
<li>删除除 <code>/config</code> 和 <code>/data</code> 之外的所有其他文件夹（因为一次不成功的跨大版本升级）。</li>
<li>逐个升级大版本（不能跨两个大版本升级）。</li>
</ol>
<h3 id="关于缺失索引的系统警告">关于缺失索引的系统警告</h3>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl <span class="nb">exec</span> -it -n nextcloud nextcloud-6864c47cf4-58vrl -- /bin/sh
</span></span><span class="line"><span class="cl"><span class="c1"># sudo -u www-data php occ db:add-missing-indices</span>
</span></span><span class="line"><span class="cl">/bin/sh: 1: sudo: not found
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data</span>
</span></span><span class="line"><span class="cl">This account is currently not available.
</span></span><span class="line"><span class="cl"><span class="c1"># id</span>
</span></span><span class="line"><span class="cl"><span class="nv">uid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">gid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">groups</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span>,33<span class="o">(</span>www-data<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data -s /bin/sh</span>
</span></span><span class="line"><span class="cl">$ php occ db:add-missing-indices
</span></span><span class="line"><span class="cl">Check indices of the share table.
</span></span><span class="line"><span class="cl">Check indices of the filecache table.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional path index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the twofactor_providers table.
</span></span><span class="line"><span class="cl">Check indices of the login_flow_v2 table.
</span></span><span class="line"><span class="cl">Check indices of the whats_new table.
</span></span><span class="line"><span class="cl">Check indices of the cards table.
</span></span><span class="line"><span class="cl">Adding cards_abiduri index to the cards table, this can take some time...
</span></span><span class="line"><span class="cl">cards table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the cards_properties table.
</span></span><span class="line"><span class="cl">Check indices of the calendarobjects_props table.
</span></span><span class="line"><span class="cl">Check indices of the schedulingobjects table.
</span></span><span class="line"><span class="cl">Check indices of the oc_properties table.
</span></span><span class="line"><span class="cl">Adding properties_pathonly_index index to the oc_properties table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the oc_jobs table.
</span></span><span class="line"><span class="cl">Adding job_lastcheck_reserved index to the oc_jobs table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">$ <span class="nb">exit</span>
</span></span><span class="line"><span class="cl"><span class="c1"># exit</span></span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>在华硕路由器 (AC56U) 上安装 AdGuardHome</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-2-12-asus-adguard-home/</link>
    <pubDate>Sat, 12 Feb 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-2-12-asus-adguard-home/</guid>
    <description><![CDATA[<h3 id="下载并刷入-asuswrt-merlin-固件-v3846">下载并刷入 Asuswrt-Merlin 固件 (v384.6)</h3>
<p><a href="https://www.asuswrt-merlin.net/" target="_blank" rel="noopener noreffer ">https://www.asuswrt-merlin.net/</a>
<a href="https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC56U/Release/RT-AC56U_384.6_0.zip/download" target="_blank" rel="noopener noreffer ">https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC56U/Release/RT-AC56U_384.6_0.zip/download</a></p>
<h3 id="准备-usb-驱动器">准备 USB 驱动器</h3>
<ol>
<li>通过 SSH 登录到路由器 (<code>ssh admin@router_ip</code>)</li>
<li><code>fdisk /dev/sda</code></li>
<li><code>mkfs.ext3 /dev/sda[1,2]</code></li>
</ol>
<h3 id="启用-jffs-自定义脚本和配置">启用 JFFS 自定义脚本和配置</h3>
<p>Administration -&gt; System -&gt; Persistent JFFS2 partition -&gt; Enable JFFS custom scripts and configs (&lsquo;yes&rsquo;)</p>
<h3 id="执行-entware-setup-以在-usb-驱动器上启用-opt-挂载">执行 Entware-Setup 以在 USB 驱动器上启用 /opt 挂载</h3>
<p>新刷入的固件 (v384.6) 已经包含 <code>entware-setup.sh</code>。
供参考：https://github.com/RMerl/asuswrt-merlin/blob/master/release/src/router/others/entware-setup.sh</p>]]></description>
</item>
<item>
    <title>vsftpd 访问 NFS 共享目录</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-2-8-vsftpd/</link>
    <pubDate>Tue, 08 Feb 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-2-8-vsftpd/</guid>
    <description><![CDATA[<h3 id="问题">问题</h3>
<p>当将文件放入 NFS 共享目录时，出现 &ldquo;Access failed: 553 Could not create file.&rdquo; 错误。</p>
<h3 id="解决方案">解决方案</h3>
<ol>
<li><code>setsebool -P ftpd_full_access 1</code></li>
<li>确保挂载的目录具有正确的所有权。</li>
</ol>]]></description>
</item>
<item>
    <title>添加 GitLab CI Runner</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-1-20-gitlab-ci/</link>
    <pubDate>Thu, 20 Jan 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-1-20-gitlab-ci/</guid>
    <description><![CDATA[<h3 id="设置标准的-rhelalmalinux-85-vm">设置标准的 RHEL/AlmaLinux 8.5 VM</h3>
<ol>
<li>
<p>Docker 代理设置：</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat /etc/systemd/system/docker.service.d/http-proxy.conf 
</span></span><span class="line"><span class="cl"><span class="o">[</span>Service<span class="o">]</span>
</span></span><span class="line"><span class="cl"><span class="nv">Environment</span><span class="o">=</span><span class="s2">&#34;HTTP_PROXY=http://proxy.lbs.alcatel-lucent.com:8000&#34;</span> <span class="s2">&#34;HTTPS_PROXY=http://proxy.lbs.alcatel-lucent.com:8000&#34;</span> <span class="s2">&#34;NO_PROXY=orbw-artifactory.ca.alcatel-lucent.com&#34;</span></span></span></code></pre></div></div>
</li>
<li>
<p>不安全（私有）注册表：</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-json">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="err">cat</span> <span class="err">/etc/docker/daemon.json</span> 
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;insecure-registries&#34;</span> <span class="p">:</span> <span class="p">[</span> <span class="s2">&#34;orbw-artifactory.ca.alcatel-lucent.com:8081&#34;</span> <span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
</li>
</ol>
<h3 id="安装-gitlab-runner">安装 GitLab Runner</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run -d --name gitlab-runner --restart always -v /home/cloud-user/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock orbw-artifactory.ca.alcatel-lucent.com:8081/nokia-nsp-docker-virtual/gitlab/gitlab-runner:latest</span></span></code></pre></div></div>
<h3 id="gitlab-runner-注册">GitLab Runner 注册</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">docker run --rm -it -v /home/cloud-user/config:/etc/gitlab-runner orbw-artifactory.ca.alcatel-lucent.com:8081/nokia-nsp-docker-virtual/gitlab/gitlab-runner:latest register</span></span></code></pre></div></div>
<p>配置示例：</p>]]></description>
</item>
<item>
    <title>使用 wget 下载文件列表</title>
    <link>https://geneliu.itaghome.win/zh-cn/2022-1-19-wget/</link>
    <pubDate>Wed, 19 Jan 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/zh-cn/2022-1-19-wget/</guid>
    <description><![CDATA[<p>使用 <code>wget</code> 下载文件列表：</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget -x -P /data/temp/files --no-host-directories -i /data/temp/file.txt</span></span></code></pre></div></div>]]></description>
</item>
</channel>
</rss>
