先电Openstack云平台搭建【超级详细】【附带镜像】

2023-11-03

前言

大二上学期学习Openstack,苦于百度与CSDN上没有对应版本的教程,学的十分艰难,在此,将我的Openstack云平台搭建过程写出,留给新手学习

准备工作:

VMware Workstation Pro 虚拟机 我使用版本:15.5.2 build-15785246

CentOS-7-x86_64-DVD-1511.iso

XianDian-IaaS-v2.2.iso

补上需要的两个镜像

链接:https://pan.baidu.com/s/1RUzNN4j8myJhMlFerny7uw 
提取码:bxae 
复制这段内容后打开百度网盘手机App,操作更方便哦

虚拟机配置 (controller和compute配置相同):

内存    3G

处理器    2G

硬盘    50G

CD/DVD    CentOS-7-x86_64-DVD-1511.iso

网络适配器    VMnet1

网络适配器2  VMnet2

controller和compute网络配置

主机名 VMnet1 VMnet2
controller 192.168.28.10 192.168.128.10
compute 192.168.28.20 192.168.128.20

controller改主机名字,关防火墙,设置主机映射开启虚拟机

hostnamectl set-hostname controller
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
cat >>/etc/hosts<<eof
192.168.28.10 controller
192.168.28.20 compute
eof

compute

hostnamectl set-hostname compute
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
cat >>/etc/hosts<<eof
192.168.28.10 controller
192.168.28.20 compute
eof

controller

接下来,进入opt目录,创建挂载点 centos 以及 iaas,并使用CRT将xiandian镜像传入opt目录下

cd /opt
mkdir centos iaas

设置开机自动挂载镜像文件

cat >>/etc/fstab<<eof
/dev/cdrom      /opt/centos     iso9660 defaults        0       0
/opt/XianDian-IaaS-v2.2.iso     /opt/iaas   iso9660    defaults        0       0
eof

挂载立即生效

mount -a    

进入 /etc/yum.repos.d 目录,删除或移动里面的大写C开头的文件,否则后面会造成缓存错误,载创建repo源文件

cd /etc/yum.repos.d
mkdir bk
mv C* bk
cat >>/etc/yum.repos.d/local.repo<<eof
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1

[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
eof

清除缓存,生成缓存

yum clean all
yum makecache

 出现提示,说明是成功了(不需要和我的完全一摸一样,因为iso版本的不同,生成的缓存也不同)

[root@controller ~]# yum makecache
已加载插件:fastestmirror
centos                                                                                                                                  | 3.6 kB  00:00:00     
iaas                                                                                                                                    | 2.9 kB  00:00:00     
(1/7): centos/filelists_db                                                                                                              | 2.9 MB  00:00:00     
(2/7): centos/group_gz                                                                                                                  | 155 kB  00:00:00     
(3/7): iaas/filelists_db                                                                                                                | 1.9 MB  00:00:00     
(4/7): iaas/primary_db                                                                                                                  | 2.3 MB  00:00:00     
(5/7): centos/primary_db                                                                                                                | 2.8 MB  00:00:00     
(6/7): iaas/other_db                                                                                                                    | 692 kB  00:00:00     
(7/7): centos/other_db                                                                                                                  | 1.2 MB  00:00:00     
Determining fastest mirrors
元数据缓存已建立

注意,如果出现 下面展示 的段落信息,说明你之前的步骤出错了,可能是yum源没配置好,也可能是没挂载好,这里很坑

[root@compute yum.repos.d]# yum makecache
已加载插件:fastestmirror


 One of the configured repositories failed (未知),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Disable the repository, so yum won't use it by default. Yum will then
        just ignore the repository until you permanently enable it again or use
        --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>

     4. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: centos

如果是出现了 /var/run/yum.pid 的消息

执行下面这段命令即可

rm -rf /var/run/yum.pid

接下来安装vsftpd和iaas-xiandian

yum install iaas-xiandian vsftpd -y

在controller上安装 ftp(文件传输)服务
增加匿名访问

cat >>/etc/vsftpd/vsftpd.conf<<eof
anon_root=/opt
eof
systemctl restart network
systemctl start vsftpd
systemctl enable vsftpd

接下来配置xiandian的openrc.sh应答文件(一个字都不能错)

sed -i 's/.//' /etc/xiandian/openrc.sh
sed -i 's/PASS=/PASS=000000/g' /etc/xiandian/openrc.sh
sed -i 's/HOST_IP=/HOST_IP=192.168.28.10/g' /etc/xiandian/openrc.sh
sed -i 's/HOST_NAME=/HOST_NAME=controller/g' /etc/xiandian/openrc.sh
sed -i 's/HOST_IP_NODE=/HOST_IP_NODE=192.168.28.20/g' /etc/xiandian/openrc.sh
sed -i 's/HOST_NAME_NODE=/HOST_NAME_NODE=compute/g' /etc/xiandian/openrc.sh
sed -i 's/RABBIT_USER=/RABBIT_USER=openstack/g' /etc/xiandian/openrc.sh
sed -i 's/DOMAIN_NAME=/DOMAIN_NAME=demo/g' /etc/xiandian/openrc.sh
sed -i 's/METADATA_SECRET=/METADATA_SECRET=000000/g' /etc/xiandian/openrc.sh
sed -i 's/INTERFACE_NAME=/INTERFACE_NAME=ens34/g' /etc/xiandian/openrc.sh

接着使用命令   cat /etc/xiandian/openrc.sh   查看配置文件,配置完后,应如下图

#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.28.10

#Controller Server hostname. example:controller
HOST_NAME=controller

#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.28.20

#Compute Node hostname. example:compute
HOST_NAME_NODE=compute

#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack

#Password for rabbit user .example:000000
RABBIT_PASS=000000

#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000

#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000

#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000

#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000

#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000

#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000

#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000

#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000

#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000

#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000

#External Network Interface. example:eth1
INTERFACE_NAME=ens37

#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=

#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=

#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=

#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=

#Cinder Block Disk. example:md126p3
BLOCK_DISK=

#--------------------Trove Config--------------------##
#Password for Mysql Trove User. exmaple:000000
TROVE_DBPASS=

#Password for Keystore Trove User. exmaple:000000
TROVE_PASS=

#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=

#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=

#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=

#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=

#Password for Keystore heat user. exmaple:000000
HEAT_PASS=

#--------------------Ceilometer Config----------------##
#Password for Mysql ceilometer user. exmaple:000000
CEILOMETER_DBPASS=

#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=

#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=

#Password for Keystore AODH user. exmaple:000000
AODH_PASS=

至此,controller停止配置,开始compute配置

compute

查看是否连接到controller的 opt/ 下面的挂载文件

[root@compute yum.repos.d]# curl ftp://192.168.28.10
-rw-r--r--    1 0        0        2851502080 Jun 04  2020 XianDian-IaaS-v2.2.iso
dr-xr-xr-x    8 0        0            2048 Dec 09  2015 centos
drwxr-xr-x    4 0        0            2048 Nov 06  2017 iaas

进入opt目录,创建centos和iaas文件,移动或删除大写C开头文件,创建一个ftp.repo源文件

cd /opt
mkdir centos iaas
cd /etc/yum.repos.d/
mkdir bk
mv C* bk
touch ftp.repo

进入 /etc/yum.repos.d/ftp.repo 写入

cat >>/etc/yum.repos.d/ftp.repo<<eof
[centos]
name=centos
baseurl=ftp://192.168.28.10/centos
gpgcheck=0
enabled=1

[iaas]
name=iaas
baseurl=ftp://192.168.28.10/iaas/iaas-repo
gpgcheck=0
enabled=1
eof

清除缓存,生成缓存

yum clean all
yum makecache

如出现以下画面,说明成功

[root@compute yum.repos.d]# yum makecache
已加载插件:fastestmirror
centos                                                                                                                                  | 3.6 kB  00:00:00     
iaas                                                                                                                                    | 2.9 kB  00:00:00     
(1/7): centos/group_gz                                                                                                                  | 155 kB  00:00:00     
(2/7): centos/filelists_db                                                                                                              | 2.9 MB  00:00:00     
(3/7): centos/primary_db                                                                                                                | 2.8 MB  00:00:00     
(4/7): centos/other_db                                                                                                                  | 1.2 MB  00:00:00     
(5/7): iaas/filelists_db                                                                                                                | 1.9 MB  00:00:00     
(6/7): iaas/primary_db                                                                                                                  | 2.3 MB  00:00:00     
(7/7): iaas/other_db                                                                                                                    | 692 kB  00:00:00     
Determining fastest mirrors
元数据缓存已建立

下载 iaas-xiandain 进入 /etc/xiandian ,将openrc.sh 改名为openrc.sh.bk 备份 以防出现错误

再将 controller(192.168.28.10)中的 /etc/xiandian/openrc.sh 文件传输到 本机

yum -y install iaas-xiandian
cd /etc/xiandian
mv openrc.sh openrc.sh.bk
scp 192.168.28.10:/etc/xiandian/openrc.sh openrc.sh

执行安装脚本

两个节点均执行初始化脚本

iaas-pre-host.sh

注意:执行需要一段时间,不要去按回车什么的了,在出现  【reboot】提示后,必须重启,否则之后的实例发不出去,问题很大!!!

两台均重启

reboot

重新启动虚拟机

控制节点安装 (controller)

cd /usr/local/bin
cat >>/usr/local/bin/all-in-one.sh<<eof
iaas-install-mysql.sh 
iaas-install-keystone.sh 
iaas-install-glance.sh 
iaas-install-nova-controller.sh
iaas-install-neutron-controller.sh
iaas-install-neutron-controller-gre.sh
iaas-install-dashboard.sh
eof
source all-in-one.sh

计算节点安装(compute)

cd /usr/local/bin
cat >>/usr/local/bin/all-in-one.sh<<eof
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-neutron-compute-gre.sh
eof
source all-in-one.sh

安装需要很长时间,请耐心等待

执行完成后

使用Chrome浏览器访问(其他浏览器不太好,造成访问不到)

http://控制IP/dashboard

我的控制节点IP为 192.168.28.10

所以我访问

http://192.168.28.10/dashboard

访问成功界面

域:demo

用户名:admin

密码:000000

进入

至此,Openstack云平台的安装结束

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

先电Openstack云平台搭建【超级详细】【附带镜像】 的相关文章

  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获

随机推荐

  • 基于粒子群优化改进的SIFT算法实现SAR图像配准附MATLAB代码

    基于粒子群优化改进的SIFT算法实现SAR图像配准附MATLAB代码 图像配准是合成孔径雷达 SAR 图像处理中的重要任务之一 它的目标是对两幅或多幅图像进行对齐 使得它们在几何上或像素级别上达到最佳匹配 在这篇文章中 我们将介绍基于粒子群
  • 元素层叠总结

    重点 在相同的层叠环境及优先级下 inline inline block元素的层叠顺序高于block元素 详解链接 https www codercto com a 23706 html 本文转载自 https juejin im post
  • SQL根据不同状态类型动态使用不同排序方式

    SQL根据不同状态类型使用不同排序方式 1 业务场景 1 1 需求 默认按状态值为1 2 3 5 4的顺序排序 状态相同时 状态为1 则按创建时间倒序 状态为2 则按开始时间正序 1 2 示例SQL select from t table
  • 【FPGA面试题(八)】—— 实现简单的FIFO

    FPGA面试题 八 实现简单的FIFO 在FPGA的数字电路中 FIFO First In First Out 是一个非常基础且重要的模块 它可以像一个队列一样存储数据并按照先进先出的顺序进行读取 实现FIFO是FPGA工程师面试过程中经常
  • notepad: 怎么在notepad里面,将字符串替换成换行

    用Notepad 可以 利用查找和替换功能 选择正则表达式 查找目标框里输入你想要替换的字符串 替换为框里输入 r 点击替换即可 这是个 很强大的功能 利用还它可以批量替换任何字符串 比如你链接是123 123 123 123这样不换行的
  • python 实现 熵值法 确定指标权重

    步骤 设指标共p个 评价对象共g个 则构成评价值 得分 矩阵如下 xj i 表示评价对象j在指标i上的评价值 j 1 2 g i 1 2 p 指标i对应的熵值为ei的计算公式如下 根据熵值来计算指标i的权重wi 计算公式如下 程序 4个指标
  • pm2 进程管理工具,相关命令

    1 pm2需要全局安装 npm install g pm2 2 进入项目根目录 2 1 启动进程 应用 pm2 start bin www 或 pm2 start app js 2 2 重命名进程 应用 pm2 start app js n
  • minicom安装、配置和使用

    在开发过程中 我们经常需要通过串口连接Android开发板的底层系统 Linux QNX 等 minicom是一个常用串口连接终端软件 在命令行终端下通过文本界面进行操作使用 安装 sudo apt install minicom 配置 首
  • BufferedReader与FileReader及FileInputStream

    BufferedReader 是缓冲字符输入流 它继承于Reader BufferedReader 的作用是为其他字符输入流添加一些缓冲功能 BufferedReader的作用 从字符输入流中读取文本 缓冲各个字符 从而实现字符 数组和行的
  • C# Ocr离线式识别,文字提取,(附源码下载)

    源代码下载 效果图 文字内容提取后填充 JObject obj ocr GeneralBasic bt ops this richTextBox1 Text string str if obj Count gt 0 JArray jo JA
  • LeetCode - 移除元素

    一 题目描述 给定一个数组 nums 和一个值 val 你需要原地移除所有数值等于 val 的元素 返回移除后数组的新长度 不要使用额外的数组空间 你必须在原地修改输入数组并在使用 O 1 额外空间的条件下完成 元素的顺序可以改变 你不需要
  • GBase8a MPP Cluster 安装部署——操作系统配置建议

    编写目的 本文档面向GBase 8a产品的售后人员 用户使用人员 以及广大GBase 8a感兴趣的技术人员 以便用于指导其更好的完成GBase8a MPP Cluster 安装部署工作 对硬件配置 网络环境 操作系统及软件配置等系统实施过程
  • vue 接口数据返回之后再渲染页面_Vue怎么让数据请求成功以后再渲染页面?

    需求如下 进入页面有一个检测按钮 点击即可向后端请求数据 进入页面如果不点击检测 则显示如下 点击检测 如果返回的是正常的状态则显示 如果返回的状态是异常 则显示 目前有个BUG 就是点击检测的时候 先从变为 然后马上变为 因为逻辑里面我是
  • IJCAI2023 Summary Reject公布

    点击文末公众号卡片 找对地方 轻松参会 北京时间2023年2月25日上午6点四十左右 cmt上状态已变 分为awaiting list 和reject 此前不少人预测2月24日晚上八点或凌晨两点左右出 截至2023年2月25日 7 16 a
  • 调用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()时遇到的一些问题

    之前在其他地方写的 一直要求手机验证 之前能跳过 麻烦点就麻烦点了 今天编辑文章的时候直接不能改了 无奈 如果手动调用 TransactionAspectSupport currentTransactionStatus setRollbac
  • mybatis获取插入数据时自动生成的主键id

    mapper文件 void insert Map
  • LaTeX

    简介 首先要介绍一下我用的Visio文件转为 eps的办法 vsd 文件 利用Visio打开 然后另存为 选择存为 pdf文件 pdf文件 利用Inkscape打开 然后另存为 选择存为 eps格式 之前一直用visio2010版 然后按照
  • 【React+TS】从零开始搭建react+typescript+router+redux+less+px2rem自适应+axios反向代理+别名@+Antd-mobile

    一 通过create react app脚手架创建项目 npx create react app testproject template typescript 在vscode中打开项目 可以看到顺利生成了react项目且组件的后缀为tsx
  • Java web项目创建笔记23 之《spring整合xxl-job》

    xxl job是一款功能强大的分布式任务调度系统 部署方法按照官网写的说明即可 https www xuxueli com xxl job 1 下载release版本代码 https github com xuxueli xxl job r
  • 先电Openstack云平台搭建【超级详细】【附带镜像】

    前言 大二上学期学习Openstack 苦于百度与CSDN上没有对应版本的教程 学的十分艰难 在此 将我的Openstack云平台搭建过程写出 留给新手学习 准备工作 VMware Workstation Pro 虚拟机 我使用版本 15