Compare commits
3 Commits
a89746e0e8
...
0fb0ad811b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0fb0ad811b | ||
|
|
98ec780ed9 | ||
|
|
ba9298852e |
@@ -1,22 +1,8 @@
|
|||||||
import { defineClientConfig } from 'vuepress/client'
|
import { defineClientConfig } from 'vuepress/client'
|
||||||
// import RepoCard from 'vuepress-theme-plume/features/RepoCard.vue'
|
import RImg from './theme/components/RImg.vue'
|
||||||
// import NpmBadge from 'vuepress-theme-plume/features/NpmBadge.vue'
|
|
||||||
// import NpmBadgeGroup from 'vuepress-theme-plume/features/NpmBadgeGroup.vue'
|
|
||||||
// import Swiper from 'vuepress-theme-plume/features/Swiper.vue'
|
|
||||||
|
|
||||||
// import CustomComponent from './theme/components/Custom.vue'
|
|
||||||
|
|
||||||
// import './theme/styles/custom.css'
|
|
||||||
|
|
||||||
export default defineClientConfig({
|
export default defineClientConfig({
|
||||||
enhance({ app }) {
|
enhance({ app }) {
|
||||||
// built-in components
|
app.component('RImg', RImg)
|
||||||
// app.component('RepoCard', RepoCard)
|
|
||||||
// app.component('NpmBadge', NpmBadge)
|
|
||||||
// app.component('NpmBadgeGroup', NpmBadgeGroup)
|
|
||||||
// app.component('Swiper', Swiper) // you should install `swiper`
|
|
||||||
|
|
||||||
// your custom components
|
|
||||||
// app.component('CustomComponent', CustomComponent)
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,6 +3,11 @@ import { plumeTheme } from 'vuepress-theme-plume'
|
|||||||
import { viteBundler } from '@vuepress/bundler-vite'
|
import { viteBundler } from '@vuepress/bundler-vite'
|
||||||
import { commentPlugin } from '@vuepress/plugin-comment'
|
import { commentPlugin } from '@vuepress/plugin-comment'
|
||||||
import { umamiAnalyticsPlugin } from '@vuepress/plugin-umami-analytics'
|
import { umamiAnalyticsPlugin } from '@vuepress/plugin-umami-analytics'
|
||||||
|
import path from 'node:path'
|
||||||
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url)
|
||||||
|
const __dirname = path.dirname(__filename)
|
||||||
|
|
||||||
export default defineUserConfig({
|
export default defineUserConfig({
|
||||||
base: '/',
|
base: '/',
|
||||||
@@ -14,7 +19,16 @@ export default defineUserConfig({
|
|||||||
['link', { rel: 'icon', type: 'image/png', href: 'https://theme-plume.vuejs.press/favicon-32x32.png' }],
|
['link', { rel: 'icon', type: 'image/png', href: 'https://theme-plume.vuejs.press/favicon-32x32.png' }],
|
||||||
],
|
],
|
||||||
|
|
||||||
bundler: viteBundler(),
|
bundler: viteBundler({
|
||||||
|
viteOptions: {
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
'@resources': path.resolve(__dirname, '../resources'),
|
||||||
|
'/@resources': path.resolve(__dirname, '../resources'),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
shouldPrefetch: false,
|
shouldPrefetch: false,
|
||||||
|
|
||||||
theme: plumeTheme({
|
theme: plumeTheme({
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { ref } from 'vue'
|
|
||||||
|
|
||||||
const message = ref('Hello World!')
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="my-custom-content">
|
|
||||||
{{ message }}
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
27
docs/.vuepress/theme/components/RImg.vue
Normal file
27
docs/.vuepress/theme/components/RImg.vue
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<template>
|
||||||
|
<img :src="imageSrc" :alt="alt" v-bind="$attrs" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { computed } from 'vue'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
src: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
alt: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 使用 Vite 的 import.meta.glob 或简单字符串拼接
|
||||||
|
// 由于别名在运行时不可直接动态拼接,我们这里使用一个更稳妥的方法
|
||||||
|
// 映射到我们配置好的别名
|
||||||
|
const imageSrc = computed(() => {
|
||||||
|
// 处理路径,确保指向别名
|
||||||
|
const path = props.src.startsWith('/') ? props.src.slice(1) : props.src
|
||||||
|
return new URL(`../../../resources/${path}`, import.meta.url).href
|
||||||
|
})
|
||||||
|
</script>
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
---
|
|
||||||
title: Linux 系统适配环境搭建
|
|
||||||
createTime: 2025/10/29 15:39:35
|
|
||||||
permalink: /article/xinchuang-competition-2025/
|
|
||||||
password: simeng
|
|
||||||
---
|
|
||||||
|
|
||||||
## 赛题要求
|
|
||||||
- yum 仓库地址:http://192.168.122.1:58000/content
|
|
||||||
- 软件包下载地址:http://192.168.122.1:58000/software
|
|
||||||
|
|
||||||
系统信息列表
|
|
||||||
|
|
||||||
| 序号 | 标签名称 | 操作系统 | 账号信息 |
|
|
||||||
|----|---------|----------|----------|
|
|
||||||
| 1 | Server1 | openEuler 22.03(已安装) | root / openEuler12#$ |
|
|
||||||
| 2 | Server2 | openEuler 22.03(已安装) | root / openEuler12#$ |
|
|
||||||
| 3 | Server3 | openEuler 22.03(待安装) | N/A |
|
|
||||||
| 4 | Desktop | Kylin v10(已安装) | admin / admin@0000 |
|
|
||||||
|
|
||||||
## 第一部分 【适配环境搭建】
|
|
||||||
|
|
||||||
### 基础配置 yum 源
|
|
||||||
这里题目中没有提到,但是需要进行一下配置
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 系统安装与配置
|
|
||||||
为 Server3 安装 openEuler 操作系统
|
|
||||||
|
|
||||||
配置系统语言:English
|
|
||||||
|
|
||||||
配置系统时区:Asia/Shanghai
|
|
||||||
|
|
||||||
配置安装类型:Server
|
|
||||||
|
|
||||||
系统启动分区保持不变,其他分区要求如下:
|
|
||||||
|
|
||||||
位置 容量 文件系统
|
|
||||||
|
|
||||||
| 挂载点 | 容量 | 文件系统 |
|
|
||||||
|--------|------|----------|
|
|
||||||
| / | 剩余所有容量 | ext4 |
|
|
||||||
| swap | 4G | swap |
|
|
||||||
| /opt | 40G | xfs |
|
|
||||||
|
|
||||||
其他未提及的配置内容保持系统默认设置。
|
|
||||||
|
|
||||||
确认并且配置服务器地址及名称:
|
|
||||||
|
|
||||||
| 服务器 | FQDN | IP |
|
|
||||||
|---------|-----------------------|------------------|
|
|
||||||
| Server1 | app1.system.org.cn | 172.16.50.101/24 |
|
|
||||||
| Server2 | app2.system.org.cn | 172.16.50.102/24 |
|
|
||||||
| Server3 | sts.system.org.cn | 172.16.50.103/24 |
|
|
||||||
| Desktop | - | 172.16.50.111/24 |
|
|
||||||
|
|
||||||
```bash title='配置服务器地址以及名称'
|
|
||||||
hostnamectl
|
|
||||||
```
|
|
||||||
|
|
||||||
确认并且配置系统网关为 172.16.50.1,确保服务器能与网关通信。
|
|
||||||
|
|
||||||
为所有 Server 主机启用防火墙,防火墙区域为 public ,根据不同服务在防火墙中使用添加端口的方式添加策略。
|
|
||||||
|
|
||||||
确认并且保持 root 用户密码为:admin@0000,确保该账户能够通过 SSH 远程登录
|
|
||||||
|
|
||||||
为所有 Server 主机生成 2 组(RSA 算法和国密算法)SSH 公私钥对,其中 RSA 密钥长度为 4096。配置实现 Server 主机之间的 SSH 免密登录。
|
|
||||||
|
|
||||||
所有主机间的访问均通过 FQDN 的形式进行访问。
|
|
||||||
|
|
||||||
使用 chrony 进行时间同步。Server1 与 172.16.50.1 进行时间同步,同时为其他服务器提供时间服务。
|
|
||||||
## 第一部分
|
|
||||||
## 第一部分
|
|
||||||
## 第一部分
|
|
||||||
Reference in New Issue
Block a user