<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://blog.azxle.cn/</id>
  <title type="text">azxle&apos;s Blog</title>
  <subtitle type="text">记录与思考</subtitle>
  <updated>2026-07-23T00:00:00.000Z</updated>
  <author><name>azxle</name></author>
  <link rel="alternate" href="https://blog.azxle.cn/"/>
  <link rel="self" href="https://blog.azxle.cn/atom.xml"/>
  <generator uri="https://github.com/CuteLeaf/Firefly">Firefly v6.16.8</generator>
    <entry>
      <id>https://blog.azxle.cn/posts/docker-login-script-and-lan-proxy/</id>
      <title type="text">在 Linux 中创建和运行 Docker 登录脚本及配置 Docker 局域网代理</title>
      <published>2026-07-23T00:00:00.000Z</published>
      <updated>2026-07-23T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/docker-login-script-and-lan-proxy/"/>
      <summary type="text">创建 Docker 交互式登录脚本（支持 SOCKS5 代理）及通过 systemd 配置 Docker 使用局域网代理的方法。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2025 年 7 月 2 日。</p></blockquote>
<section><h2>配置Docker登录脚本<a href="#配置docker登录脚本"><span>#</span></a></h2><section><h3>创建脚本文件<a href="#创建脚本文件"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>nano</span><span> </span><span>/usr/local/bin/docker_login</span></div></div></code></pre><div><div></div><div></div></div></figure></div><section><h4><code>docker_login</code>内容<a href="#docker_login内容"><span>#</span></a></h4><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#!/bin/bash</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span># ====== 配置部分 ======</span></div></div><div><div><div>4</div></div><div><span>REGISTRY</span><span>=</span><span>"https://index.docker.io/v1/"</span><span>   </span><span># 默认为 Docker Hub</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span># ====== 获取用户输入 ======</span></div></div><div><div><div>7</div></div><div><span>read</span><span> </span><span>-p</span><span> </span><span>"请输入 Docker 用户名: "</span><span> </span><span>DOCKER_USER</span></div></div><div><div><div>8</div></div><div><span>read</span><span> </span><span>-s</span><span> </span><span>-p</span><span> </span><span>"请输入 Docker 密码: "</span><span> </span><span>DOCKER_PASS</span></div></div><div><div><div>9</div></div><div><span>echo</span></div></div><div><div><div>10</div></div><div>
</div></div><div><div><div>11</div></div><div><span># 是否使用代理</span></div></div><div><div><div>12</div></div><div><span>read</span><span> </span><span>-p</span><span> </span><span>"是否使用 SOCKS5 代理？(y/n，默认 n): "</span><span> </span><span>USE_PROXY</span></div></div><div><div><div>13</div></div><div><span>if</span><span> [[ </span><span>"</span><span>$USE_PROXY</span><span>"</span><span> </span><span>=~</span><span> ^[Yy]$ ]]; </span><span>then</span></div></div><div><div><div>14</div></div><div><span>    </span><span>read</span><span> </span><span>-p</span><span> </span><span>"请输入 SOCKS5 代理地址（例如 socks5://user:pass@192.168.1.10:10810）: "</span><span> </span><span>PROXY_ADDR</span></div></div><div><div><div>15</div></div><div><span>    </span><span>export</span><span> </span><span>ALL_PROXY</span><span>=</span><span>"</span><span>$PROXY_ADDR</span><span>"</span></div></div><div><div><div>16</div></div><div><span>    </span><span>echo</span><span> </span><span>"🌐 已设置 SOCKS5 代理：</span><span>$PROXY_ADDR</span><span>"</span></div></div><div><div><div>17</div></div><div><span>else</span></div></div><div><div><div>18</div></div><div><span>    </span><span>echo</span><span> </span><span>"🚫 不使用代理。"</span></div></div><div><div><div>19</div></div><div><span>fi</span></div></div><div><div><div>20</div></div><div>
</div></div><div><div><div>21</div></div><div><span># ====== 登录操作 ======</span></div></div><div><div><div>22</div></div><div><span>echo</span><span> </span><span>"</span><span>$DOCKER_PASS</span><span>"</span><span> | </span><span>docker</span><span> </span><span>login</span><span> </span><span>--username</span><span> </span><span>"</span><span>$DOCKER_USER</span><span>"</span><span> </span><span>--password-stdin</span><span> </span><span>"</span><span>$REGISTRY</span><span>"</span></div></div><div><div><div>23</div></div><div>
</div></div><div><div><div>24</div></div><div><span>LOGIN_RESULT</span><span>=</span><span>$?</span></div></div><div><div><div>25</div></div><div><span>if</span><span> [ </span><span>$LOGIN_RESULT</span><span><span> </span><span>-eq</span><span> </span></span><span>0</span><span> ]; </span><span>then</span></div></div><div><div><div>26</div></div><div><span>    </span><span>echo</span><span> </span><span>"✅ 用户 </span><span>$DOCKER_USER</span><span> 登录成功！"</span></div></div><div><div><div>27</div></div><div><span>else</span></div></div><div><div><div>28</div></div><div><span>    </span><span>echo</span><span> </span><span>"❌ 登录失败，请检查用户名或密码是否正确。"</span></div></div><div><div><div>29</div></div><div><span>fi</span></div></div><div><div><div>30</div></div><div>
</div></div><div><div><div>31</div></div><div><span># 清理代理设置（如果设置了的话）</span></div></div><div><div><div>32</div></div><div><span>unset</span><span> </span><span>ALL_PROXY</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div></section></section><section><h3>赋予执行权限<a href="#赋予执行权限"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>chmod</span><span> </span><span>+x</span><span> </span><span>/usr/local/bin/docker_login</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>在任意目录下直接输入<code>docker_login</code>即可运行脚本：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>docker_login</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>⚠️ 注意事项 / 常见问题<a href="#️-注意事项--常见问题"><span>#</span></a></h3><p>Docker CLI <strong>本身不直接支持 SOCKS5 代理</strong>，但如果是在 Linux 环境下，并且系统全局网络走的是某个 SOCKS5 代理，可以使用 <code>proxychains</code> 来强制 Docker 命令走代理。</p><p>如果只是临时用途，可以将以上脚本直接放在工作目录中，在使用脚本时，需要先进入脚本所在目录后运行。</p></section></section>
<section><h2>配置Docker使用局域网代理<a href="#配置docker使用局域网代理"><span>#</span></a></h2><section><h3>创建或编辑Docker服务的systemd配置文件：<a href="#创建或编辑docker服务的systemd配置文件"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>mkdir</span><span> </span><span>-p</span><span> </span><span>/etc/systemd/system/docker.service.d</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>nano</span><span> </span><span>/etc/systemd/system/docker.service.d/http-proxy.conf</span></div></div></code></pre><div><div></div><div></div></div></figure></div><section><h4><code>http-proxy.conf</code>内容<a href="#http-proxyconf内容"><span>#</span></a></h4><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[Service]</span></div></div><div><div><div>2</div></div><div><span>Environment</span><span>=</span><span>"HTTP_PROXY=socks5://192.168.0.13:10810"</span></div></div><div><div><div>3</div></div><div><span>Environment</span><span>=</span><span>"HTTPS_PROXY=socks5://192.168.0.13:10810"</span></div></div><div><div><div>4</div></div><div><span>Environment</span><span>=</span><span>"NO_PROXY=localhost,127.0.0.1,.local,.internal,docker.sock"</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section><section><h3>重新加载systemd配置并重启Docker服务<a href="#重新加载systemd配置并重启docker服务"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>daemon-reload</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>restart</span><span> </span><span>docker</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/linux-basic-commands/</id>
      <title type="text">Linux 命令基本操作</title>
      <published>2026-07-23T00:00:00.000Z</published>
      <updated>2026-07-23T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/linux-basic-commands/"/>
      <summary type="text">Ubuntu 系统 SSH 服务安装配置、root 用户管理及依赖问题处理的基本操作记录。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2022 年 7 月。</p></blockquote>
<section><h2>Ubuntu安装SSH服务<a href="#ubuntu安装ssh服务"><span>#</span></a></h2><section><h3>更新系统<a href="#更新系统"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>update</span><span> &amp;&amp; </span><span>sudo</span><span> </span><span>apt</span><span> </span><span>upgrade</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>安装SSH服务端<a href="#安装ssh服务端"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>install</span><span> </span><span>openssh-server</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>查看SSH服务端是否运行<a href="#查看ssh服务端是否运行"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>status</span><span> </span><span>ssh</span></div></div></code></pre><div><div></div><div></div></div></figure></div><section><h4>如果你的结果中 SSH 服务没有运行，使用这个命令运行它：<a href="#如果你的结果中-ssh-服务没有运行使用这个命令运行它"><span>#</span></a></h4><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>systemctl</span><span> </span><span>enable</span><span> </span><span>--now</span><span> </span><span>ssh</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section><section><h3>允许SSH通过防火墙<a href="#允许ssh通过防火墙"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>ufw</span><span> </span><span>allow</span><span> </span><span>ssh</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>安装SSH客户端（客户端安装，服务端可不安装）<a href="#安装ssh客户端客户端安装服务端可不安装"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt</span><span> </span><span>install</span><span> </span><span>openssh-client</span></div></div></code></pre><div><div></div><div></div></div></figure></div><section><h4>启用 root 用户<a href="#启用-root-用户"><span>#</span></a></h4><p>如果需要直接使用 root 用户登录系统，可以通过以下命令启用 root 用户：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>passwd</span><span> </span><span>root</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>然后输入当前用户密码，并设置 root 用户的密码。设置成功后，就可以以 root 用户身份登录系统了。</p></section><section><h4>切换root用户<a href="#切换root用户"><span>#</span></a></h4><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>su</span><span> </span><span>root</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section><section><h3>如何禁用 root 用户？<a href="#如何禁用-root-用户"><span>#</span></a></h3><p>为了提高系统的安全性，在日常运维中，我们不应该直接使用 root 用户登录系统，而是应该使用 sudo 命令来执行管理员操作。如果确实需要禁用 root 用户，可以通过以下命令进行操作：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>passwd</span><span> </span><span>-l</span><span> </span><span>root</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>该命令会锁定 root 用户，并禁止其登录系统。如果需要解除锁定，可以使用以下命令：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>passwd</span><span> </span><span>-u</span><span> </span><span>root</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>
<section><h2>什么是依赖问题<a href="#什么是依赖问题"><span>#</span></a></h2><p>在Ubuntu中，依赖问题指的是在安装软件时需要依赖其他软件包，但是这些软件包没有被安装或者版本不正确，导致安装软件失败。常见的依赖问题包括缺少库文件、缺少头文件、版本不正确等。</p><section><h3>使用apt-get命令安装依赖包<a href="#使用apt-get命令安装依赖包"><span>#</span></a></h3><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt-get</span><span> </span><span>install</span><span> </span><span>-f</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>手动安装依赖包<a href="#手动安装依赖包"><span>#</span></a></h3><p>如果使用apt-get命令无法解决依赖问题，我们可以尝试手动安装依赖包。首先需要找到缺少的依赖包，可以通过以下命令查看：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt-cache</span><span> </span><span>search</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/linux-disk-management/</id>
      <title type="text">Linux 磁盘管理</title>
      <published>2026-07-23T00:00:00.000Z</published>
      <updated>2026-07-23T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/linux-disk-management/"/>
      <summary type="text">VMware 虚拟机磁盘扩容的完整操作流程，包括分区创建、LVM 物理卷扩展及 XFS 文件系统扩容。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2024 年 11 月 19 日。</p></blockquote>
<p>一、关闭虚拟机</p>
<p>二、VMware上进行磁盘扩展（注意：还需要到虚拟机中扩展才能正常使用）</p>
<p>三、在虚拟中进行操作</p>
<p>1.查看磁盘使用情况</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>df</span><span> </span><span>-h</span><span>     </span><span>#df（英文全拼：disk free） 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。-h选项，通过它可以产生可读的格式df命令的输出:</span></div></div><div><div><div>2</div></div><div><span>lsblk</span><span>    </span><span>#用于列出所有可用块设备的信息，而且还能显示他们之间的依赖关系，但是它不会列出RAM盘的信息</span></div></div><div><div><div>3</div></div><div><span>fdisk</span><span> </span><span>-l</span><span>    </span><span>#列出具体磁盘情况</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>2.创建新的磁盘分区</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>fdisk</span><span> </span><span>/dev/sda</span><span>       </span><span>#fdisk 是一个创建和维护分区表的程序，它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。输入此命令后按m查看具体的命令操作</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>输入n创建新分区，剩下全部默认（按回车），输入w保存退出。</p>
<p>3.修改新建的磁盘分区格式</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>fdisk</span><span> </span><span>/dev/sda</span><span>          </span><span>#修改新建的分区，进入后按t修改，l列出所有的操作代码,输入8e将磁盘类型更改为linux lvm w保存退出</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>4.创建新的物理卷PV</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>1.mkfs.ext4</span><span> </span><span>/dev/sda</span><span>    </span><span>#格式化硬盘的文件格式为ext4</span></div></div><div><div><div>2</div></div><div><span>2.pvcreate</span><span> </span><span>/dev/sda3</span><span>    </span><span>#创建物理卷pv</span></div></div><div><div><div>3</div></div><div><span>3.pvdisplay</span><span>          </span><span>#显示物理卷信息</span></div></div><div><div><div>4</div></div><div><span>4.vgextend</span><span> </span><span>centos</span><span> </span><span>/dev/sda3</span><span>     </span><span>#扩容卷组centos 大小为sda3</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>5.扩展根磁盘空间</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>1.lvextend</span><span> </span><span>-L</span><span> </span><span>+50G</span><span> </span><span>/dev/mapper/centos-root</span><span>     </span><span>#将/dev/mapper/centos-root的磁盘空间扩展50G</span></div></div><div><div><div>2</div></div><div><span>2.xfs_growfs</span><span> </span><span>/dev/mapper/centos-root</span><span>        </span><span>#自动扩展XFS文件系统到最大的可用大小</span></div></div></code></pre><div><div></div><div></div></div></figure></div>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/ubuntu-lan-vpn-proxy/</id>
      <title type="text">在 Ubuntu 22.04 上通过软件使用局域网内的 VPN 代理</title>
      <published>2026-07-23T00:00:00.000Z</published>
      <updated>2026-07-23T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/ubuntu-lan-vpn-proxy/"/>
      <summary type="text">在 Ubuntu 22.04 上通过环境变量和 Proxychains4 配置局域网 SOCKS5 代理，使任意命令流量经过代理。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2025 年 6 月 16 日。</p></blockquote>
<p>1、设置环境变量</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>nano</span><span> </span><span>/etc/profile</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>添加如下内容：</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>export</span><span> </span><span>all_proxy</span><span>=</span><span>"socks5://192.168.0.10:10810"</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>刷新环境变量</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>source</span><span> </span><span>/etc/profile</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>2、使用Proxychains（推荐）</p>
<p>安装Proxychains</p>
<p>首先安装<code>proxychains4</code>：</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>apt-get</span><span> </span><span>update</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>apt-get</span><span> </span><span>install</span><span> </span><span>proxychains4</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>配置Proxychains
编辑/etc/proxychains4.conf文件，找到[ProxyList]部分，并添加SOCKS代理信息：</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>socks5  192.168.0.10 10810</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>使用Proxychains</p>
<p>可以通过在任何命令前加上proxychains来使其流量经过代理</p>
<p>测试网络连接是否走代理</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>proxychains4</span><span> </span><span>curl</span><span> </span><span>ifconfig.me</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>通过 proxychains 执行 apt 命令，例如</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>sudo</span><span> </span><span>proxychains4</span><span> </span><span>apt-get</span><span> </span><span>update</span></div></div><div><div><div>2</div></div><div><span>sudo</span><span> </span><span>proxychains4</span><span> </span><span>apt-get</span><span> </span><span>install</span><span> </span><span>-y</span><span> </span><span>mongodb-org</span></div></div></code></pre><div><div></div><div></div></div></figure></div>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/centos7-remove-old-kernels/</id>
      <title type="text">CentOS 7.9 删除多余内核</title>
      <published>2026-07-22T00:00:00.000Z</published>
      <updated>2026-07-22T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/centos7-remove-old-kernels/"/>
      <summary type="text">记录 CentOS 7.9 系统中查询、删除多余内核并更新 GRUB 引导的操作步骤。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2023 年 12 月 4 日。</p></blockquote>
<p>1、查询系统中所有内核</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>rpm</span><span> </span><span>-qa</span><span> | </span><span>grep</span><span> </span><span>kernel</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>2、查询当前使用内核</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>uname</span><span> </span><span>-a</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>3、查看当前默认内核：</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>grub2-editenv</span><span> </span><span>list</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>4、删除不需要的内核</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>yum</span><span> </span><span>remove</span><span> </span><span>kernel-3.10.0-1160.el7.x86_64</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p><strong>注：kernel-3.10.0-1160.el7.x86_64是多余的内核</strong></p>
<p>5、更新grub引导菜单</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>grub2-mkconfig</span><span> </span><span>-o</span><span> </span><span>/boot/grub2/grub.cfg</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>6、重启系统</p>
<div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>reboot</span></div></div></code></pre><div><div></div><div></div></div></figure></div>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/anolisos-packstack-openstack-train/</id>
      <title type="text">AnolisOS 8.2使用Packstack工具部署OpenStack-T</title>
      <published>2026-07-21T00:00:00.000Z</published>
      <updated>2026-07-21T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/anolisos-packstack-openstack-train/"/>
      <summary type="text">介绍如何在 AnolisOS 8.2 上使用 Packstack 一键部署 OpenStack Train 版（allinone），包含仓库配置、系统调优、安装步骤及镜像上传与 SSH 登录验证。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2024 年 9 月 5 日，最后修改于 2024 年 12 月 9 日。</p></blockquote>
<ul>
<li>
<p>注意：OpenStack 涉及到对虚拟机的管理，如果在本地虚拟机环境安装测试OpenStack，需要开启嵌套虚拟化，否则只能在物理机上面进行相关验证。</p>
</li>
<li>
<section><h3>版本信息<a href="#版本信息"><span>#</span></a></h3><ul>
<li>anolis 8.2 ANCK 64位</li>
<li>Openstack-Train(简称 Openstack-T)</li>
</ul></section>
<section><h3>支持的架构<a href="#支持的架构"><span>#</span></a></h3><ul>
<li>x86_64</li>
</ul></section>
</li>
</ul>
<section><h2>安装<a href="#安装"><span>#</span></a></h2><section><h4>1. 配置openstack train， rabbitmq 仓库, 开启Plus仓库， 使用 anolis 8.4 仓库等<a href="#1-配置openstack-train-rabbitmq-仓库-开启plus仓库-使用-anolis-84-仓库等"><span>#</span></a></h4><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>sed -i "s/^enabled=0/enabled=1/" /etc/yum.repos.d/AnolisOS-Plus.repo</span></div></div><div><div><div>2</div></div><div><span>sed -i "s/\$releasever/8.4/" /etc/yum.repos.d/AnolisOS*</span></div></div><div><div><div>3</div></div><div><span>sed -i "s/8.2/8.4/" /etc/yum.repos.d/AnolisOS*</span></div></div><div><div><div>4</div></div><div><span>yum install -y wget network-scripts vim net-tools nfs-utils python3-urllib3 lvm2 lvm2-libs</span></div></div><div><div><div>5</div></div><div><span>yum remove -y buildah podman</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span>cat &lt;&lt;- EOF &gt; /etc/yum.repos.d/openstack.repo</span></div></div><div><div><div>8</div></div><div><span>[openstack-train]</span></div></div><div><div><div>9</div></div><div><span>name=openstack train</span></div></div><div><div><div>10</div></div><div><span>baseurl=http://mirrors.aliyun.com/centos-vault/8.2.2004/cloud/\$basearch/openstack-train/</span></div></div><div><div><div>11</div></div><div><span>gpgcheck=0</span></div></div><div><div><div>12</div></div><div><span>enabled=1</span></div></div><div><div><div>13</div></div><div><span>EOF</span></div></div><div><div><div>14</div></div><div>
</div></div><div><div><div>15</div></div><div><span>cat &lt;&lt;- EOF &gt; /etc/yum.repos.d/rabbitmq.repo</span></div></div><div><div><div>16</div></div><div><span>[rabbitmq]</span></div></div><div><div><div>17</div></div><div><span>name=rabbitmq server</span></div></div><div><div><div>18</div></div><div><span>baseurl=https://mirrors.aliyun.com/centos-vault/8.2.2004/messaging/\$basearch/rabbitmq-38/</span></div></div><div><div><div>19</div></div><div><span>gpgcheck=0</span></div></div><div><div><div>20</div></div><div><span>enabled=1</span></div></div><div><div><div>21</div></div><div><span>EOF</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div></section><section><h4>2. 关闭防火墙，selinux, 设置ulimit<a href="#2-关闭防火墙selinux-设置ulimit"><span>#</span></a></h4><p><em>注意：packstack 会自动抽取网卡配置的 IP，作为安装，组件部署，组件通信的IP地址，如果机器有多个网卡，需要留意packstack 具体配置了哪个网卡的 IP。</em></p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span># 关闭防火墙等</span></div></div><div><div><div>2</div></div><div><span>systemctl stop firewalld</span></div></div><div><div><div>3</div></div><div><span>systemctl disable firewalld</span></div></div><div><div><div>4</div></div><div><span>systemctl stop NetworkManager</span></div></div><div><div><div>5</div></div><div><span>systemctl disable NetworkManager</span></div></div><div><div><div>6</div></div><div><span>systemctl stop iptables</span></div></div><div><div><div>7</div></div><div><span>systemctl disable iptables</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span># 关闭selinux， 编辑 /etc/sysconfig/selinux 配置文件设置 SELINUX=disabled</span></div></div><div><div><div>10</div></div><div><span>setenforce 0</span></div></div><div><div><div>11</div></div><div><span>sed -i "s#SELINUX=enforcing#SELINUX=disabled#" /etc/sysconfig/selinux</span></div></div><div><div><div>12</div></div><div><span>sed -i "s#SELINUX=permissive#SELINUX=disabled#" /etc/sysconfig/selinux</span></div></div><div><div><div>13</div></div><div>
</div></div><div><div><div>14</div></div><div><span># 开启 auditd</span></div></div><div><div><div>15</div></div><div><span>sudo mkdir /var/log/audit</span></div></div><div><div><div>16</div></div><div><span>service auditd start</span></div></div><div><div><div>17</div></div><div>
</div></div><div><div><div>18</div></div><div><span># 设置ulimit</span></div></div><div><div><div>19</div></div><div><span>echo "ulimit -n 655350" &gt;&gt; /etc/profile</span></div></div><div><div><div>20</div></div><div><span># 数据段长度：</span></div></div><div><div><div>21</div></div><div><span>echo "ulimit -d unlimited" &gt;&gt; /etc/profile</span></div></div><div><div><div>22</div></div><div><span># 最大内存大小：</span></div></div><div><div><div>23</div></div><div><span>echo "ulimit -m unlimited" &gt;&gt; /etc/profile</span></div></div><div><div><div>24</div></div><div><span>#堆栈大小：</span></div></div><div><div><div>25</div></div><div><span>echo "ulimit -s unlimited" &gt;&gt; /etc/profile</span></div></div><div><div><div>26</div></div><div><span># CPU 时间</span></div></div><div><div><div>27</div></div><div><span>echo "ulimit -t unlimited" &gt;&gt; /etc/profile</span></div></div><div><div><div>28</div></div><div><span># 虚拟内存</span></div></div><div><div><div>29</div></div><div><span>echo "ulimit -v unlimited" &gt;&gt; /etc/profile</span></div></div><div><div><div>30</div></div><div><span>source /etc/profile</span></div></div><div><div><div>31</div></div><div>
</div></div><div><div><div>32</div></div><div><span># 解除 Linux 系统的最大进程数和最大文件打开数限制：</span></div></div><div><div><div>33</div></div><div><span>echo "* soft noproc 110000" &gt;&gt; /etc/security/limits.conf</span></div></div><div><div><div>34</div></div><div><span>echo "* hard noproc 110000" &gt;&gt; /etc/security/limits.conf</span></div></div><div><div><div>35</div></div><div>
</div></div><div><div><div>36</div></div><div><span>echo "DefaultLimitNOFILE=infinity" &gt;&gt; /etc/systemd/system.conf</span></div></div><div><div><div>37</div></div><div><span>echo "DefaultLimitMEMLOCK=infinity" &gt;&gt; /etc/systemd/system.conf</span></div></div><div><div><div>38</div></div><div>
</div></div><div><div><div>39</div></div><div><span>systemctl daemon-reload</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div></section><section><h4>3. 设置主机名，配置hosts文件<a href="#3-设置主机名配置hosts文件"><span>#</span></a></h4><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span># 设置主机名</span></div></div><div><div><div>2</div></div><div><span>hostnamectl set-hostname "openstack.example.com"</span></div></div><div><div><div>3</div></div><div><span>bash</span></div></div><div><div><div>4</div></div><div>
</div></div><div><div><div>5</div></div><div><span># 将主机名与 IP 的映射echo到hosts 文件中。</span></div></div><div><div><div>6</div></div><div><span>IP=X.X.X.X   #(本机IP)</span></div></div><div><div><div>7</div></div><div><span>echo -e "$IP\topenstack.example.com" &gt;&gt; /etc/hosts</span></div></div><div><div><div>8</div></div><div><span># 注意hosts 文件里面对于 $IP 这个，只保留 openstack.example.com 映射。格式如下</span></div></div><div><div><div>9</div></div><div><span># $IP  openstack.example.com</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>4. 确保有 default 路由<a href="#4-确保有-default-路由"><span>#</span></a></h4><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>ip r s | grep default || echo "please set default route"</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>如果上述命令显示 please set default route ，需要设置default 路由。参考路由添加的命令如下：(<em>注意：这个只是格式参考，每个机器gateway是不一样的</em>)</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>ip route add default via 11.158.244.247 dev bond0 proto static metric 300</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>5. 设置时间服务<a href="#5-设置时间服务"><span>#</span></a></h4><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>echo "pool ntp.aliyun.com iburst" &gt;&gt; /etc/chrony.conf</span></div></div><div><div><div>2</div></div><div><span>service chronyd restart</span></div></div><div><div><div>3</div></div><div><span>chronyc sources</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>6. 安装 openstack-packstack<a href="#6-安装-openstack-packstack"><span>#</span></a></h4><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span># qemu-kvm-4.2.0 需要高版本的libgcrypt</span></div></div><div><div><div>2</div></div><div><span>yum install -y openstack-packstack libgcrypt-1.8.5</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>7. 安装OpenStack allinone<a href="#7-安装openstack-allinone"><span>#</span></a></h4><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>packstack --allinone</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>！！注意</strong>：packstack 整个安装过程持续10-20分钟左右, 如果带宽有限，可能需要更多的时间。</p><p>看到如下说明安装成功</p><p>**** Installation completed successfully ******</p><p></p><figure><img alt="OpenStack 安装成功界面" loading="lazy" width="1500" height="998" src="/_astro/openstack-install-success.CXK-J--i_ZpVtdR.webp" /><figcaption>OpenStack 安装成功界面</figcaption></figure><p></p></section></section>
<section><h2>测试<a href="#测试"><span>#</span></a></h2><section><h4>1. 客户端方式上传新的 images<a href="#1-客户端方式上传新的-images"><span>#</span></a></h4><p>这种方式你需要先通过命令 <code>source /root/keystonerc_admin</code> 加载配置，然后访问相关的接口获取信息，或者触发操作。</p><p>下载并导入镜像 cirros-0.5.2-x86_64-disk.img 或者 cirros-0.5.2-aarch64-disk.img</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>wget http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-`arch`-disk.img</span></div></div><div><div><div>2</div></div><div><span>source keystonerc_admin</span></div></div><div><div><div>3</div></div><div><span>openstack image create --disk-format qcow2 --container-format bare --public --file cirros-0.5.2-`arch`-disk.img  cirros_regular</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>切换到 demo 用户，后续用demo用户演示, 务必切换到demo用户来执行后续操作， 因为demo用户预制了一些配置，譬如网络配置，便于我们演示。测试创建一个volumn</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>source /root/keystonerc_demo</span></div></div><div><div><div>2</div></div><div><span>cinder create 1 --image cirros --display-name volAFromCirrosTest</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h4>2. ssh 登录 VM 验证<a href="#2-ssh-登录-vm-验证"><span>#</span></a></h4><p>我们可以从终端登录 VM，如上面截图所示，我们 VM 的浮动IP 是 172.24.4.29，执行如下命令 ssh 登陆 VM , 用户：cirros ， 默认密码：gocubsgo</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>ssh cirros@172.24.4.29</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p></p><figure><img alt="SSH 登录虚拟机验证" loading="lazy" width="1527" height="650" src="/_astro/openstack-ssh-vm.MTDUdqQo_1DqkEf.webp" /><figcaption>SSH 登录虚拟机验证</figcaption></figure><p></p><p><strong>首先，如果部署的机器不是刚刚重装过aonlis8.2的，碰到安装/演示问题时，建议重装，特别是机器可能安装过mysql，httpd 等软件的话，最好重装或者彻底清理干净环境。</strong></p><p>其次，可以查看几个服务的状态</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>cinder service-list</span></div></div><div><div><div>2</div></div><div><span>nova service-list</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>重启某个服务</strong></p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl restart openstack-nova*</span></div></div><div><div><div>2</div></div><div><span>systemctl restart openstack-cinder*</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/ict-2020-2021-cloud/</id>
      <title type="text">2020-2021年ICT大赛国赛（云服务）</title>
      <published>2026-07-21T00:00:00.000Z</published>
      <updated>2026-07-21T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/ict-2020-2021-cloud/"/>
      <summary type="text">2020-2021 年华为 ICT 大赛国赛云服务实操笔记：搭建 Apache+PHP+MariaDB 环境并部署 Moodle 课程管理系统，以及 Linux 安装 iSCSI 启动器连接存储。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2023 年 3 月，系在长沙参加 2021-2022 年华为 ICT 大赛云计算赛项国赛培训期间的学习笔记，现整理发布，留作纪念与参考。</p></blockquote>
<section><h2><strong>2020-2021年ICT大赛国赛（云服务）</strong><a href="#2020-2021年ict大赛国赛云服务"><span>#</span></a></h2><p>安装web服务器基础环境
安装epel和remi库并启用</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum install epel-release -y</span></div></div><div><div><div>2</div></div><div><span>yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y</span></div></div><div><div><div>3</div></div><div><span>yum install yum-utils -y</span></div></div><div><div><div>4</div></div><div><span>yum-config-manager --enable remi-php72</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装Apache，php，php-fpm及相关组件</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum install httpd php php72-php-fpm php-mysql php-xml php-gd php-zip php-intl php-mbstring php-xmlrpc php-soap mariadb git -y</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>启动相关服务并设置开机自启</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl enable php-php-fpm</span></div></div><div><div><div>2</div></div><div><span>systemctl start php72-php-fpm</span></div></div><div><div><div>3</div></div><div><span>systemctl enable httpd</span></div></div><div><div><div>4</div></div><div><span>systemctl start httpd</span></div></div><div><div><div>5</div></div><div><span>systemctl status httpd</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装Mariadb数据库（node1）</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum install mariadb-server mariadb -y</span></div></div><div><div><div>2</div></div><div><span>systemctl enable mariadb</span></div></div><div><div><div>3</div></div><div><span>systemctl start mariadb</span></div></div><div><div><div>4</div></div><div><span>systemctl status mariadb</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>进入数据库视图创建相关库及用户（创建moodle库，授予用户moodleuser所有控制权并使用密码Huawei@2023）</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>mysql</span></div></div><div><div><div>2</div></div><div><span>CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;</span></div></div><div><div><div>3</div></div><div><span>GRANT ALL PRIVILEGES ON moodle.*TO'moodleuser'@'%'IDENTIFIED BY 'Huawei@2023';</span></div></div><div><div><div>4</div></div><div><span>show databases;</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>设置binlog format为ROW</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>set global binlog_format = 'ROW';</span></div></div><div><div><div>2</div></div><div><span>set session binlog_format = 'ROW';</span></div></div><div><div><div>3</div></div><div><span>show variables like 'binlog_format';</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装moodle课程管理系统</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum install git  -y</span></div></div><div><div><div>2</div></div><div><span>git clone -b MOODLE_37_STABLE git://git.moodle.org/moodle.git</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>复制moodle包并授予权限</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>cp -R moodle /var/www/html/</span></div></div><div><div><div>2</div></div><div><span>chown -R root /var/www/html/moodle</span></div></div><div><div><div>3</div></div><div><span>chmod -R 777 /var/www/</span></div></div><div><div><div>4</div></div><div><span>ls -l</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>安装Moodle数据库报如下错误的解决办法</p><p></p><figure><img alt="Moodle 数据库安装报错" loading="lazy" width="1707" height="627" src="/_astro/ict-moodle-error.DhXQUTIr_1c6ADM.webp" /><figcaption>Moodle 数据库安装报错</figcaption></figure><p></p><p>参考：<a href="https://www.it1352.com/2814804.html" target="_blank">https://www.it1352.com/2814804.html</a></p><p>在mysql配置文件当中增加如下命令：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>innodb_file_format = Barracuda</span></div></div><div><div><div>2</div></div><div><span>innodb_file_per_table = 1</span></div></div><div><div><div>3</div></div><div><span>innodb_large_prefix</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>Linux安装ISCSI启动器</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum -y install iscsi-initiator-utils</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>查看是否有启动器</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>cat /etc/iscsi/initiatorname.iscsi</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>向业务IP发起连接</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>iscsiadm -m discovery -t st -p **业务IP**</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>查看</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>iscsiadm -m node -l</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>重启虚拟机</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>reboot</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>查询磁盘</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>lsblk</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>参考：<a href="https://www.cnblogs.com/wzgwzg/p/16114109.html#%E4%B8%80%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E6%9C%BA" target="_blank">LUN的虚拟化映射 - 王智刚 - 博客园 (cnblogs.com)</a></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/ict-2021-2022-cloud-ecommerce/</id>
      <title type="text">2021-2022年ICT大赛云服务（电商网站）</title>
      <published>2026-07-21T00:00:00.000Z</published>
      <updated>2026-07-21T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/ict-2021-2022-cloud-ecommerce/"/>
      <summary type="text">2021-2022 年华为 ICT 大赛云服务实操笔记：安装 Apache 与 PHP（webtatic 源）环境，部署 OpenCart 电商网站。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2023 年 3 月，系在长沙参加 2021-2022 年华为 ICT 大赛云计算赛项国赛培训期间的学习笔记，现整理发布，留作纪念与参考。</p></blockquote>
<p>安装Apache服务并设置自启</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum install httpd -y</span></div></div><div><div><div>2</div></div><div><span>systemctl start httpd</span></div></div><div><div><div>3</div></div><div><span>systemctl enable httpd</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>安装Webtatic yum源</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm</span></div></div><div><div><div>2</div></div><div><span>rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm</span></div></div><div><div><div>3</div></div><div><span>yum clean all</span></div></div><div><div><div>4</div></div><div><span>yum makecache</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>安装拓展包</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum -y install php72w php72w-pdo php72w-mysqlnd php72w-opcache php72w-mcrypt php72w-devel php72w-intl php72w-mbstring php72w-bcmath php72w-json php72w-iconv php72w-xml php72w-gd</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>重启Apache服务</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl restart httpd</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>安装opencart</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>wget https://www.opencart.cn/download/12</span></div></div><div><div><div>2</div></div><div><span>unzip 12</span></div></div><div><div><div>3</div></div><div><span>cp upload/* /var/www/html/ -rf</span></div></div><div><div><div>4</div></div><div><span>chmod -R 777 /var/www/html</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>查询服务运行状态</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>ps -ef | grep httpd</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>参考：<a href="https://blog.csdn.net/qq_43413788/article/details/105788988" target="_blank">CentOS7 使用webtatic源 yum方式安装php7_无数_mirage的博客-CSDN博客</a></p>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/ict-2021-2022-cloud-vpn/</id>
      <title type="text">2021-2022年ICT大赛云服务（VPN网关）</title>
      <published>2026-07-21T00:00:00.000Z</published>
      <updated>2026-07-21T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/ict-2021-2022-cloud-vpn/"/>
      <summary type="text">2021-2022 年华为 ICT 大赛云服务实操笔记：使用 openswan 搭建 IPsec VPN 客户端，配置内核转发参数、预共享密钥与隧道连接。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2023 年 3 月，系在长沙参加 2021-2022 年华为 ICT 大赛云计算赛项国赛培训期间的学习笔记，现整理发布，留作纪念与参考。</p></blockquote>
<p>安装openswan（VPN客户端）</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum install openswan -y</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>配置内核参数，开启IPv4转发</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>vi /etc/sysctl.conf</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>sysctl.conf配置文件添加如下内容：</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>net.ipv4.ip_forward = 1</span></div></div><div><div><div>2</div></div><div><span>net.ipv4.conf.all.rp_filter = 0</span></div></div><div><div><div>3</div></div><div><span>net.ipv4.conf.default.rp_filter = 0</span></div></div><div><div><div>4</div></div><div><span>net.ipv4.conf.eth0.rp_filter = 0   //eth0是网卡配置，配置时需根据网卡实际配置</span></div></div><div><div><div>5</div></div><div><span>net.ipv4.conf.all.send_redirects = 0</span></div></div><div><div><div>6</div></div><div><span>net.ipv4.conf.default.send_redirects = 0</span></div></div><div><div><div>7</div></div><div><span>net.ipv4.conf.all.log_martians = 0</span></div></div><div><div><div>8</div></div><div><span>net.ipv4.conf.default.log_martians = 0</span></div></div><div><div><div>9</div></div><div><span>net.ipv4.conf.default.accept_source_route = 0</span></div></div><div><div><div>10</div></div><div><span>net.ipv4.conf.all.accept_redirects = 0</span></div></div><div><div><div>11</div></div><div><span>net.ipv4.conf.default.accept_redirects = 0</span></div></div><div><div><div>12</div></div><div><span>net.ipv4.icmp_ignore_bogus_error_responses = 1</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>使内核参数生效</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>sysctl -p</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>启动ipsec</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl start ipsec</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>查看ipsec运行状态</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>ipsec verify</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>预共享密钥配置（xxxx可以随意命名）</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>vi /etc/ipsec.d/xxxx.secrets</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>xxxx.secrets配置文件添加如下内容：</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>22.22.22.22 11.11.11.11 : psk "ipsec-key"</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p><em>格式：本地用于连接的IP+空格+远端网关IP+空格+英文冒号+空格+PSK+预共享密钥，冒号的两边都有空格，PSK大小写均可，密钥用英文双引号。</em></p>
<p>添加隧道建立配置，新建文件/etc/ipsec.d/xxx.conf（xxx可以随意命名）</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>vi /etc/ipsec.d/xxx.conf</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>xxx.conf配置文件当中添加如下内容：</p>
<div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>conn openswan_IPsec                                 //定义连接名称为openswan_IPsec</span></div></div><div><div><div>2</div></div><div><span><span>  </span></span><span>authby=secret                                     //定义认证方式为PSK</span></div></div><div><div><div>3</div></div><div><span><span>  </span></span><span>auto=start                                          //可选择add、route和start</span></div></div><div><div><div>4</div></div><div><span><span>  </span></span><span>ikev2=never                                       //关闭IKEv2版本</span></div></div><div><div><div>5</div></div><div><span><span>  </span></span><span>ike=aes128-sha1;modp1536                 //按照对端配置定义ike阶段算法和group</span></div></div><div><div><div>6</div></div><div><span><span>  </span></span><span>keyexchange=ike                                // ike密钥交换方式</span></div></div><div><div><div>7</div></div><div><span><span>  </span></span><span>ikelifetime=86400s                             // ike阶段生命周期</span></div></div><div><div><div>8</div></div><div><span><span>  </span></span><span>phase2=esp                                        //二阶段传输格式</span></div></div><div><div><div>9</div></div><div><span><span>  </span></span><span>phase2alg=aes128-sha1;modp1536 //按照对端配置定义IPsec阶段算法和group，modp1536=DH group 5</span></div></div><div><div><div>10</div></div><div><span><span>  </span></span><span>compress=no                                      //关闭压缩</span></div></div><div><div><div>11</div></div><div><span><span>  </span></span><span>pfs=yes                                             //开启PFS</span></div></div><div><div><div>12</div></div><div><span><span>  </span></span><span>salifetime=3600s                                //二阶段生命周期</span></div></div><div><div><div>13</div></div><div><span><span>  </span></span><span>type=tunnel                                       //开启隧道模式</span></div></div><div><div><div>14</div></div><div><span><span>  </span></span><span>left=192.168.222.222                         //本地IP，nat场景选择真实的主机地址</span></div></div><div><div><div>15</div></div><div><span><span>  </span></span><span>leftid=22.22.22.22                              //本地标识ID</span></div></div><div><div><div>16</div></div><div><span><span>  </span></span><span>leftsubnet=192.168.222.0/24               //本地子网</span></div></div><div><div><div>17</div></div><div><span><span>  </span></span><span>leftnexthop=22.22.22.1                       //nat场景下一跳选择nat后的网关IP</span></div></div><div><div><div>18</div></div><div><span><span>  </span></span><span>right=11.11.11.11                              //远端VPN网关IP</span></div></div><div><div><div>19</div></div><div><span><span>  </span></span><span>rightid=11.11.11.11                                   //远端标识ID</span></div></div><div><div><div>20</div></div><div><span><span>  </span></span><span>rightsubnet=192.168.200.0/24             //远端子网</span></div></div><div><div><div>21</div></div><div><span><span>  </span></span><span>rightnexthop=%defaultroute                //远端路由按缺省配置</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div>
<p>启动隧道连接</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>ipsec auto --up xxxx   //如果启动失败，可使用systemctl restart ipsec重启ipsec服务后尝试重新启动隧道连接</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>参考：<a href="https://support.huaweicloud.com/admin-vpn/vpn_01_0007.html" target="_blank">https://support.huaweicloud.com/admin-vpn/vpn_01_0007.html</a></p>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/ict-2021-2022-storage/</id>
      <title type="text">2021-2022年ICT大赛存储</title>
      <published>2026-07-21T00:00:00.000Z</published>
      <updated>2026-07-21T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/ict-2021-2022-storage/"/>
      <summary type="text">2021-2022 年华为 ICT 大赛存储实操笔记：Linux 安装 iSCSI 启动器，发现并连接存储业务 IP，挂载 LUN 磁盘。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2023 年 3 月，系在长沙参加 2021-2022 年华为 ICT 大赛云计算赛项国赛培训期间的学习笔记，现整理发布，留作纪念与参考。</p></blockquote>
<p>Linux安装ISCSI启动器</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum -y install iscsi-initiator-utils</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>查看是否有启动器</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>cat /etc/iscsi/initiatorname.iscsi</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>向业务IP发起连接</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>iscsiadm -m discovery -t st -p **业务IP**</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>查看</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>iscsiadm -m node -l</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>重启虚拟机</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>reboot</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>查询磁盘</p>
<div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>lsblk</span></div></div></code></pre><div><div></div><div></div></div></figure></div>
<p>参考：<a href="https://www.cnblogs.com/wzgwzg/p/16114109.html#%E4%B8%80%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E6%9C%BA" target="_blank">LUN的虚拟化映射 - 王智刚 - 博客园 (cnblogs.com)</a></p>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/offline-yum-repo-iso/</id>
      <title type="text">制作基于阿里云base、epel等源的离线仓库ISO镜像文件</title>
      <published>2026-07-21T00:00:00.000Z</published>
      <updated>2026-07-21T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/offline-yum-repo-iso/"/>
      <summary type="text">介绍如何基于阿里云 base、epel 等 yum 源，使用 reposync、createrepo、mkisofs 制作离线 yum 仓库 ISO 镜像文件，并在无公网环境中挂载使用。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2023 年 9 月 29 日，最后更新于 2023 年 10 月 1 日。</p></blockquote>
<p>因某些项目实施环境不具备连通公网的条件，或者申请开通公网步骤繁琐，影响项目实施，所以制作一个便于随身携带的离线 yum 库是非常有必要的。</p>
<section><h2>基础环境<a href="#基础环境"><span>#</span></a></h2><ul>
<li>Centos7.9（最小化安装）；</li>
<li>替换官方 yum 库为阿里云 yum 库；参考链接：<a href="https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11Q84n64" target="_blank">https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11Q84n64</a></li>
<li>添加阿里云 epel 库；参考链接：<a href="https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11Q84n64" target="_blank">https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11Q84n64</a></li>
<li>centos 虚拟机有 200G 左右的空闲空间（空间不足则添加磁盘）</li>
</ul></section>
<section><h2>替换官方 yum 库为 aliyun<a href="#替换官方-yum-库为-aliyun"><span>#</span></a></h2><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>添加阿里云 epel 库<a href="#添加阿里云-epel-库"><span>#</span></a></h2><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo</span></div></div><div><div><div>2</div></div><div><span>[root@localhost ~]#yum clean all</span></div></div><div><div><div>3</div></div><div><span>[root@localhost ~]#yum makecache</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>安装 reposync 工具<a href="#安装-reposync-工具"><span>#</span></a></h2><p>reposync 用来获取 yum 库中的 RPM 包</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#查询reposync包含在哪个软件包内</span></div></div><div><div><div>2</div></div><div><span>[root@localhost ~]#yum provides reposync</span></div></div><div><div><div>3</div></div><div><span>#下载yum-utils工具箱，包含reposync命令</span></div></div><div><div><div>4</div></div><div><span>[root@localhost ~]#yum -y install yum-utils</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>安装 createrepo 工具<a href="#安装-createrepo-工具"><span>#</span></a></h2><p>createrepo 工具可以把大量 RPM 包制作成离线 yum 库。</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#yum -y install createrepo</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>获取 yum 库离线包<a href="#获取-yum-库离线包"><span>#</span></a></h2><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#计划把同步的离线包存放到/data/repo目录</span></div></div><div><div><div>2</div></div><div><span>[root@localhost ~]#mkdir /data/repo</span></div></div><div><div><div>3</div></div><div><span>#查看当前已启用的yum源</span></div></div><div><div><div>4</div></div><div><span>[root@localhost ~]# yum repolist</span></div></div><div><div><div>5</div></div><div><span>Loaded plugins: fastestmirror</span></div></div><div><div><div>6</div></div><div><span>Loading mirror speeds from cached hostfile</span></div></div><div><div><div>7</div></div><div><span>* base: mirrors.aliyun.com</span></div></div><div><div><div>8</div></div><div><span>* extras: mirrors.aliyun.com</span></div></div><div><div><div>9</div></div><div><span>* updates: mirrors.aliyun.com</span></div></div><div><div><div>10</div></div><div><span>repo id repo name status</span></div></div><div><div><div>11</div></div><div><span>base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072</span></div></div><div><div><div>12</div></div><div><span>epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,743</span></div></div><div><div><div>13</div></div><div><span>extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 509</span></div></div><div><div><div>14</div></div><div><span>updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 3,570</span></div></div><div><div><div>15</div></div><div><span>repolist: 27,894</span></div></div><div><div><div>16</div></div><div><span>#使用reposync同步yum源</span></div></div><div><div><div>17</div></div><div><span>#reposync用法："reposync -r"指定需要同步的yum库名称，如只同步epel源"reposync  -r  epel"; -p 选项，指定下载的RPM包存放位置。</span></div></div><div><div><div>18</div></div><div><span><span> </span></span><span>#reposync同步所有已启用的yum库</span></div></div><div><div><div>19</div></div><div><span><span> </span></span><span>[root@localhost ~]#reposync  -p /data/repo</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>等待很长一段时间后同步结束，查看下目录大小</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#du -sh /data/repo</span></div></div><div><div><div>2</div></div><div><span>48G    /data/repo</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>创建离线 yum 库<a href="#创建离线-yum-库"><span>#</span></a></h2><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#把/repo目录下的RPM软件包做成离线yum库</span></div></div><div><div><div>2</div></div><div><span>[root@localhost ~]#createrepo -v /data/repo</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>执行完毕，查看<code>/data/repo</code>目录，所有已启用的 yum 源离线文件都存放在独自的目录中。</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]# ll /data/repo</span></div></div><div><div><div>2</div></div><div><span>total 16</span></div></div><div><div><div>3</div></div><div><span>drwxr-xr-x. 3 root root 4096 Mar  3 23:19 base</span></div></div><div><div><div>4</div></div><div><span>drwxr-xr-x. 3 root root 4096 Mar  4 00:03 epel</span></div></div><div><div><div>5</div></div><div><span>drwxr-xr-x. 3 root root 4096 Mar  4 21:57 extras</span></div></div><div><div><div>6</div></div><div><span>drwxr-xr-x. 3 root root 4096 Mar  4 22:00 updates</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>把/data/repo 目录下的 yum 库创建为 ISO 文件<a href="#把datarepo-目录下的-yum-库创建为-iso-文件"><span>#</span></a></h2><p>使用 mkisofs 工具，默认没有安装</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#查询包含mkisofs工具的软件包</span></div></div><div><div><div>2</div></div><div><span>[root@localhost ~]#yum provides mkisofs</span></div></div><div><div><div>3</div></div><div><span>#genisoimage软件包含mkisofs工具，安装genisoimage</span></div></div><div><div><div>4</div></div><div><span>[root@localhost ~]#yum -y install genisoimage</span></div></div><div><div><div>5</div></div><div><span>#创建存放ISO镜像文件的目录</span></div></div><div><div><div>6</div></div><div><span>[root@localhost ~]#mkdir /data/iso</span></div></div><div><div><div>7</div></div><div><span>[root@localhost ~]#cd /data/iso</span></div></div><div><div><div>8</div></div><div><span>#使用mkisofs工具制作ISO镜像文件，镜像名称为：epel.iso</span></div></div><div><div><div>9</div></div><div><span>[root@localhost iso]#mkisofs -r -o epel.iso /data/repo/</span></div></div><div><div><div>10</div></div><div><span>#制作完毕后，查看epel.iso文件</span></div></div><div><div><div>11</div></div><div><span>[root@localhost iso]#ls -lh</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>挂载 ISO 文件作为本地 yum 源<a href="#挂载-iso-文件作为本地-yum-源"><span>#</span></a></h2><section><h3>创建 ISO 挂载点目录<a href="#创建-iso-挂载点目录"><span>#</span></a></h3><p>任意位置及名称都可以</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#mkdir /media/iso</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>通过<code>mount</code>命令将 ISO 文件挂载到挂载点<a href="#通过mount命令将-iso-文件挂载到挂载点"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#mount -o loop /data/iso/epel.iso  /media/iso</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>创建新的 repo 文件<a href="#创建新的-repo-文件"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#cd /etc/yum.repos.d</span></div></div><div><div><div>2</div></div><div><span>[root@localhost ~]#mkdir repo.bak</span></div></div><div><div><div>3</div></div><div><span>[root@localhost ~]#mv *.repo  repo.bak</span></div></div><div><div><div>4</div></div><div><span>[root@localhost ~]#vim local-epel.repo</span></div></div><div><div><div>5</div></div><div><span>[local-epel]</span></div></div><div><div><div>6</div></div><div><span>name=CentOS-$releasever - Media</span></div></div><div><div><div>7</div></div><div><span>baseurl=file:///media/iso/</span></div></div><div><div><div>8</div></div><div><span>gpgcheck=0</span></div></div><div><div><div>9</div></div><div><span>enabled=1</span></div></div><div><div><div>10</div></div><div><span>gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>清理 yum 缓存，重新构建 yum 本地缓存索引<a href="#清理-yum-缓存重新构建-yum-本地缓存索引"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#yum clean all</span></div></div><div><div><div>2</div></div><div><span>[root@localhost ~]#yum makecache</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>尝试安装软件包：nginx<a href="#尝试安装软件包nginx"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>[root@localhost ~]#yum -y install nginx</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>如果安装正常，则证明基于离线库制作的 iso 镜像文件制作成功。</p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.azxle.cn/posts/packstack-openstack-train/</id>
      <title type="text">使用Packstack工具一键部署OpenStack-T版</title>
      <published>2026-07-21T00:00:00.000Z</published>
      <updated>2026-07-21T00:00:00.000Z</updated>
      <author><name>azxle</name></author>
      <link rel="alternate" href="https://blog.azxle.cn/posts/packstack-openstack-train/"/>
      <summary type="text">介绍如何在 CentOS 7.9 虚拟机上使用 Packstack 工具一键部署 OpenStack Train 版（allinone），涵盖环境规划、系统配置、yum 源替换及 Dashboard 登录。</summary>
      <content type="html"><![CDATA[<blockquote><p>本文撰写于 2023 年 9 月 29 日，最后修改于 2024 年 9 月 12 日。</p></blockquote>
<p>本实验通过在Windows操作系统上安装VMware Workstation软件上创建一台运行 Centos7的虚拟机作为实验平台。</p>
<p>创建实验用的虚拟机：</p>
<p>通过VMware Workstation 16 Pro软件创建一台Centos7.9的虚拟机，内存容量建议8G，CPU双核且支持虚拟化，硬盘至少100G（可根据实验环境进行调配，最低50-100G），网卡建议使用NAT模式，避免后续网络变动影响OpenStack的相关配置。</p>
<p>在安装Centos系统过程中，如果对Linux命令行操作不熟悉的建议安装带GUI的服务器或GNOME桌面，如果对Linux命令行熟悉的可以安装Centos最小化系统，以减少系统资源消耗。</p>
<p>为减少初学者对命令行不熟悉的操作问题，建议以root用户身份登录，如果以普通用户身份登录，执行系统配置和管理员操作的时候需要使用sudo命令。</p>
<section><h2><strong>环境规划</strong><a href="#环境规划"><span>#</span></a></h2>

<table><thead><tr><th>操作系统版本</th><th>硬件配置</th><th>IP 地址规划</th><th>主机名</th><th>虚拟机软件</th></tr></thead><tbody><tr><td>centos7.9</td><td>4vCPUS/8G 80G 硬盘</td><td>192.168.80.160/24</td><td>openstack</td><td>VMware WorkStation 16 Pro</td></tr></tbody></table><p>centos7.9 镜像获取地址：<a href="http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso" target="_blank">http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso</a></p><p>阿里云 yum 源设置官方文档：<a href="https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11Jpkdzb" target="_blank">https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11Jpkdzb</a></p></section>
<section><h2><strong>部署过程</strong><a href="#部署过程"><span>#</span></a></h2><section><h3>修改centos系统的主机名<a href="#修改centos系统的主机名"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>hostnamectl set-hostname openstack</span></div></div><div><div><div>2</div></div><div><span>bash</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>设置centos系统为静态IP地址<a href="#设置centos系统为静态ip地址"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#注意修改自己的网卡配置文件</span></div></div><div><div><div>2</div></div><div><span>vi /etc/sysconfig/network-scripts/ifcfg-ens33</span></div></div><div><div><div>3</div></div><div><span>#重启网络服务</span></div></div><div><div><div>4</div></div><div><span>systemctl restart network</span></div></div><div><div><div>5</div></div><div><span>#验证IP地址</span></div></div><div><div><div>6</div></div><div><span>ip a</span></div></div></code></pre><div><div></div><div></div></div></figure></div><section><h4>网卡配置如下：<a href="#网卡配置如下"><span>#</span></a></h4><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>TYPE=Ethernet</span></div></div><div><div><div>2</div></div><div><span>PROXY_METHOD=none</span></div></div><div><div><div>3</div></div><div><span>BROWSER_ONLY=no</span></div></div><div><div><div>4</div></div><div><span>BOOTPROTO=none</span></div></div><div><div><div>5</div></div><div><span>DEFROUTE=yes</span></div></div><div><div><div>6</div></div><div><span>IPV4_FAILURE_FATAL=no</span></div></div><div><div><div>7</div></div><div><span>IPV6INIT=yes</span></div></div><div><div><div>8</div></div><div><span>IPV6_AUTOCONF=yes</span></div></div><div><div><div>9</div></div><div><span>IPV6_DEFROUTE=yes</span></div></div><div><div><div>10</div></div><div><span>IPV6_FAILURE_FATAL=no</span></div></div><div><div><div>11</div></div><div><span>IPV6_ADDR_GEN_MODE=stable-privacy</span></div></div><div><div><div>12</div></div><div><span>NAME=ens33</span></div></div><div><div><div>13</div></div><div><span>UUID=6977dbf9-107f-41f1-b70c-d0079401c395</span></div></div><div><div><div>14</div></div><div><span>DEVICE=ens33</span></div></div><div><div><div>15</div></div><div><span>ONBOOT=yes</span></div></div><div><div><div>16</div></div><div><span>IPADDR=192.168.80.160</span></div></div><div><div><div>17</div></div><div><span>PREFIX=24</span></div></div><div><div><div>18</div></div><div><span>GATEWAY=192.168.80.2</span></div></div><div><div><div>19</div></div><div><span>DNS1=114.114.114.114</span></div></div><div><div><div>20</div></div><div><span>PEERDNS=no</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p><strong>注：本例当中的网络配置也可将BOOTPROTO=none更改为BOOTPROTO=static，其它配置不变。</strong></p></section></section><section><h3>添加主机hosts记录<a href="#添加主机hosts记录"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>echo "192.168.80.160  openstack" &gt;&gt; /etc/hosts</span></div></div><div><div><div>2</div></div><div><span>#验证修改结果</span></div></div><div><div><div>3</div></div><div><span>more /etc/hosts</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>关闭防火墙<a href="#关闭防火墙"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl stop firewalld</span></div></div><div><div><div>2</div></div><div><span>systemctl disable firewalld</span></div></div><div><div><div>3</div></div><div><span>#查看防火墙状态</span></div></div><div><div><div>4</div></div><div><span>systemctl status firewalld</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>关闭SeLinux<a href="#关闭selinux"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>setenforce 0</span></div></div><div><div><div>2</div></div><div><span>sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>关闭NetworkManager服务<a href="#关闭networkmanager服务"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>systemctl stop NetworkManager</span></div></div><div><div><div>2</div></div><div><span>systemctl disable NetworkManager</span></div></div><div><div><div>3</div></div><div><span>systemctl enable network</span></div></div><div><div><div>4</div></div><div><span>systemctl start network</span></div></div><div><div><div>5</div></div><div><span>#查看NetworkManager状态</span></div></div><div><div><div>6</div></div><div><span>systemctl status NetworkManager</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>备份yum源<a href="#备份yum源"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>mkdir /etc/yum.repos.d/backup</span></div></div><div><div><div>2</div></div><div><span>cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>修改官方yum源为校园网联合镜像站yum源<a href="#修改官方yum源为校园网联合镜像站yum源"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>sed -e "s|^mirrorlist=|#mirrorlist=|g" \</span></div></div><div><div><div>2</div></div><div><span><span>         </span></span><span>-e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=https://mirrors.cernet.edu.cn/centos-vault/7.9.2009|g" \</span></div></div><div><div><div>3</div></div><div><span><span>         </span></span><span>-i.bak \</span></div></div><div><div><div>4</div></div><div><span><span>         </span></span><span>/etc/yum.repos.d/CentOS-*.repo</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span>#重建本地yum索引缓存</span></div></div><div><div><div>7</div></div><div><span>yum makecache</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>系统升级<a href="#系统升级"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>#升级</span></div></div><div><div><div>2</div></div><div><span>yum -y update</span></div></div><div><div><div>3</div></div><div><span>#重启</span></div></div><div><div><div>4</div></div><div><span>reboot</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>安装常用软件<a href="#安装常用软件"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum -y install vim bash-completion yum-utils</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>安装所需软件库：<a href="#安装所需软件库"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum -y update</span></div></div><div><div><div>2</div></div><div><span>yum -y install centos-release-openstack-train</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>修改*.repo配置文件<a href="#修改repo配置文件"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup</span></div></div><div><div><div>2</div></div><div>
</div></div><div><div><div>3</div></div><div><span>#将默认的mirror.centos.org源站改为中科大源站</span></div></div><div><div><div>4</div></div><div><span>sudo sed -i 's|baseurl=http://mirror.centos.org|baseurl=http://mirrors.ustc.edu.cn/centos-vault|g' /etc/yum.repos.d/*.repo</span></div></div><div><div><div>5</div></div><div><span>sudo sed -i '/^mirrorlist=http/ s/^/#/' /etc/yum.repos.d/*.repo</span></div></div><div><div><div>6</div></div><div><span>sudo sed -i '/^#baseurl=http/ s/^#//' /etc/yum.repos.d/*.repo</span></div></div><div><div><div>7</div></div><div>
</div></div><div><div><div>8</div></div><div><span>#重建本地yum索引缓存</span></div></div><div><div><div>9</div></div><div><span>yum makecache</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>安装Packstack安装器：<a href="#安装packstack安装器"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>yum -y update</span></div></div><div><div><div>2</div></div><div><span>yum -y install openstack-packstack</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>安装OpenStack allinone<a href="#安装openstack-allinone"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>packstack --allinone</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><strong>自动化安装时间很长，静静等待，直到出现如下信息，表示成功安装</strong>。</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>**** Installation completed successfully ******</span></div></div><div><div><div>2</div></div><div><span>Additional information:</span></div></div><div><div><div>3</div></div><div><span><span> </span></span><span>* Parameter CONFIG_NEUTRON_L2_AGENT: You have choosen OVN neutron backend. Note that this backend does not support LBaaS, VPNaaS or FWaaS services. Geneve will be used as encapsulation method for tenant networks</span></div></div><div><div><div>4</div></div><div><span><span> </span></span><span>* A new answerfile was created in: /root/packstack-answers-20220222-171022.txt</span></div></div><div><div><div>5</div></div><div><span><span> </span></span><span>* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.</span></div></div><div><div><div>6</div></div><div><span><span> </span></span><span>* File /root/keystonerc_admin has been created on OpenStack client host 192.168.80.160. To use the command line tools you need to source the file.</span></div></div><div><div><div>7</div></div><div><span><span> </span></span><span>* To access the OpenStack Dashboard browse to http://192.168.80.160/dashboard .</span></div></div><div><div><div>8</div></div><div><span>Please, find your login credentials stored in the keystonerc_admin in your home directory.</span></div></div><div><div><div>9</div></div><div><span><span> </span></span><span>* The installation log file is available at: /var/tmp/packstack/20220222-171021-YFXtB3/openstack-setup.log</span></div></div><div><div><div>10</div></div><div><span><span> </span></span><span>* The generated manifests are available at: /var/tmp/packstack/20220222-171021-YFXtB3/manifests</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>查看Dashboard web页面的登录账号及密码<a href="#查看dashboard-web页面的登录账号及密码"><span>#</span></a></h3><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>cat keystonerc_admin</span></div></div><div><div><div>2</div></div><div><span>unset OS_SERVICE_TOKEN</span></div></div><div><div><div>3</div></div><div><span><span>    </span></span><span>export OS_USERNAME=admin  #Dashboard登录账号</span></div></div><div><div><div>4</div></div><div><span><span>    </span></span><span>export OS_PASSWORD='12b2ca7e963242ae' #Dashboard登录密码</span></div></div><div><div><div>5</div></div><div><span><span>    </span></span><span>export OS_REGION_NAME=RegionOne</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>export OS_AUTH_URL=http://192.168.80.160:5000/v3</span></div></div><div><div><div>7</div></div><div><span><span>    </span></span><span>export PS1='[\u@\h \W(keystone_admin)]\$ '</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span>export OS_PROJECT_NAME=admin</span></div></div><div><div><div>10</div></div><div><span>export OS_USER_DOMAIN_NAME=Default</span></div></div><div><div><div>11</div></div><div><span>export OS_PROJECT_DOMAIN_NAME=Default</span></div></div><div><div><div>12</div></div><div><span>export OS_IDENTITY_API_VERSION=3</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section><section><h3>Dashboard web登录界面<a href="#dashboard-web登录界面"><span>#</span></a></h3><p>登录方式：<a href="http://192.168.80.160" target="_blank">http://192.168.80.160</a></p></section><section><h3><strong>注意事项：</strong><a href="#注意事项"><span>#</span></a></h3><p>1.本例当中使用的Centos镜像为：<strong>CentOS-7-x86_64-DVD-2009.ISO</strong>，镜像可通过Centos官网或国内的其他镜像网站进行下载。</p><p>2.本例使用的VMware Workstation软件版本为<strong>VMware Workstation 16 Pro</strong>。</p><p>3.OpenStack部署成功之后，相关的配置文件不仅在<strong>keystonerc_admin</strong>、<strong>keystonerc_demo</strong>文件当中，也在<strong>packstack-answers-*.txt</strong>文件当中，打开该文本文档也可找到登录的用户名、密码及其它信息。</p><p>4.镜像站：USTC：<a href="https://mirrors.ustc.edu.cn/%E3%80%81%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E9%95%9C%E5%83%8F%E7%AB%99%EF%BC%9Ahttps://mirrors.tuna.tsinghua.edu.cn/%E3%80%81%E7%BD%91%E6%98%93%E5%BC%80%E6%BA%90%E9%95%9C%E5%83%8F%E7%AB%99%EF%BC%9Ahttp://mirrors.163.com/%E3%80%81%E9%98%BF%E9%87%8C%E9%95%9C%E5%83%8F%E7%AB%99%EF%BC%9Ahttp://mirrors.aliyun.com/" target="_blank">https://mirrors.ustc.edu.cn/、清华大学开源软件镜像站：https://mirrors.tuna.tsinghua.edu.cn/、网易开源镜像站：http://mirrors.163.com/、阿里镜像站：http://mirrors.aliyun.com/</a></p></section></section>]]></content>
    </entry>
</feed>
