【Ubuntu24.04】服务部署(虚拟机)

目录

  • [0 背景](#0 背景)
  • [1 安装虚拟机](#1 安装虚拟机)
    • [1.1 下载虚拟机软件](#1.1 下载虚拟机软件)
    • [1.2 安装虚拟机软件](#1.2 安装虚拟机软件)
    • [1.2 安装虚拟电脑](#1.2 安装虚拟电脑)
  • [2 配置虚拟机](#2 配置虚拟机)
    • [2.1 配置虚拟机网络及运行初始化脚本](#2.1 配置虚拟机网络及运行初始化脚本)
    • [2.2 配置服务运行环境](#2.2 配置服务运行环境)
      • [2.2.1 安装并配置JDK17](#2.2.1 安装并配置JDK17)
      • [2.2.2 安装并配置MySQL8.4](#2.2.2 安装并配置MySQL8.4)
      • [2.2.3 安装并配置Redis](#2.2.3 安装并配置Redis)
  • [3 部署服务](#3 部署服务)
  • [4 总结](#4 总结)

0 背景

你的服务部署在了你的计算机上,没有任何多余的操作:你的计算机操作系统是Ubuntu24.04的,你直接将它作为了服务器,你给它配置了静态IP,在上面安装了服务运行所必要的组件,然后部署了服务。

起初,你的服务比较小,只有一个模块,不久之后,你发现你的服务可以支持更多的功能,于是你新增了几个模块,这些模块每个都是一个微服务,都和最初的那个模块平级,而且都需要部署在服务器上。

按照你的经验,每个模块都需要部署在一个服务器上才行。那么现在要解决的问题就是:怎么才能找到多台服务器呢?那不成有几个模块就要买多少台电脑,然后给每个电脑装系统,装组件,然后部署服务吗?

聪明的你即使是土豪也不会选择买电脑的。在一个无意的瞬间,你忽然想起来你还安装并使用过虚拟机呢。那可太好了,每个虚拟机就是一个服务器!

接下来就是关于虚拟机的操作了。

1 安装虚拟机

这里以VMware为例,如果想使用VirtualBox的话请看VirtualBox虚拟机下安装Ubuntu24.04操作系统VirtualBox安装ubuntu-live-server24.04

1.1 下载虚拟机软件

最开始接触VMware的时候曾经被折磨过,后来对它的印象不是很好,后来听说VMware收费了,对它的印象就更不好了,然而最近又听说要免费了,再加上这也算是一个主流的虚拟机,还是得接触一下。

如果你对它的官网不熟,要找到你需要的产品其实还是不容易的,另外需要注意的是在官网下载是需要注册一个账号并登录的,只需要一个邮箱来接收验证码就可以了,其他的信息都可以乱写。下面给出下载网址:

登录账号之后 直接搜索这个网址即可

这里选择安装17.5.2

下载之前会让你填写一些信息,住址,邮编,城市之类的东西,这些东西可以随便写一些字符串 。下载过程还是很快的,600多兆两三分钟就下载完了。

1.2 安装虚拟机软件

运行下载的安装包。



注意安装位置,便于你管理软件。

可以选择不勾

个人认为开始菜单挺鸡肋的,可以选择不勾

这一步显示的信息应该和具体的计算机有关。选择安装。

不过有可能会出现下面的情况:

我是由于重装了VMware,之前装了又卸载过,所以导致了这个问题。这个时候不要选任何选项,用管理员方式打开cmd窗口,输入以下的命令:

bash 复制代码
net stop VMAuthdService
taskkill /F /IM mmc.exe
sc delete VMAuthdService

好像似乎没什么用,这个时候你再选择"重试",它会花较长时间安装,不过最终会安装好。

然后提示你是否现在输入密钥,为什么不呢?下面直接给出一些密钥(不保证全部可用):

复制代码
JU090-6039P-08409-8J0QH-2YR7F
4A4RR-813DK-M81A9-4U35H-06KND
NZ4RR-FTK5H-H81C1-Q30QH-1V2LA
4Y09U-AJK97-089Z0-A3054-83KLA
4C21U-2KK9Q-M8130-4V2QH-CF810

选择一个输入即可

至此,VMware的安装全部完成。

1.2 安装虚拟电脑

虚拟机软件安装好之后,接下来就是安装虚拟电脑了。如果只是将这些虚拟电脑当做服务器使用的话,就没必要安装桌面版的操作系统了。

这里选择安装Ubuntu24.04服务器版,与以往不同的是,你需要安装多台虚拟机。

选择对应的iso文件

给虚拟电脑命名并选择安装的位置

这两个选项按照个人喜好选择

最后会让你确认一遍

确认无误后点击"完成"即可。

接下来就是关于Ubuntu的安装了,不再赘述,安装过程参考VirtualBox安装ubuntu-live-server24.04

2 配置虚拟机

安装好虚拟电脑之后就是配置了,不过手动配置太麻烦了,笔者也整理了脚本供参考。

2.1 配置虚拟机网络及运行初始化脚本

在之前的文章中,笔者直接使用scp命令将脚本从宿主机Windows传到网络模式为NAT的虚拟机上,那个时候使用的是VirtualBox,设置了端口转发,但在VMware中设置端口转发似乎比较麻烦,所以这里不打算使用。而是使用远程连接的方式:

  1. 设置虚拟电脑的网络模式为自定义(VMnet8),这是自带的,不用自己设置


  1. 登录到虚拟电脑中

  2. 查看虚拟电脑的IP地址:执行命令ip a,笔者的IP地址是192.168.128.128,按自己具体的来

  1. 使用Termius中的SFTP远程传输脚本文件,这个时候的IP地址192.168.128.128是可以被远程连接的。

  2. 在虚拟机中执行初始化脚本文件,脚本文件参考VirtualBox安装ubuntu-live-server24.04

  3. 执行脚本文件会让你设置IP地址,注意不要重复就是了,而且注意和宿主机 的网段和网关保持一致。

  4. 配置桥接模式的具体桥接方式

将桥接的网卡设置成宿主机上真实的网卡。

  1. 执行完脚本之后将网络连接模式设置为桥接模式

至此,虚拟机的初始化工作就做好了,可以用Termius等远程连接工具连接试一下,如果能连接外网,就说明配置成功。

2.2 配置服务运行环境

既然虚拟机基本环境配置好了,那么接下来就是在上面安装一些你的服务需要用到的组件,最常见的还是JDKMySQLRedis。下面直接给出安装脚本,直接在虚拟机或者Termius等远程连接工具上面执行即可。

2.2.1 安装并配置JDK17

bash 复制代码
#!/bin/bash
sudo apt update
sudo apt upgrade -y
# JDK 配置
# 首先创建jdk的文件夹
jdk_dir="/usr/local/jdk/"
sudo mkdir ${jdk_dir}
# 然后进入文件夹
cd ${jdk_dir}
# 下载JDK文件, 这里默认下载JDK17
jdk_url="https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz"
echo "download jdk.tar.gz file, give a url, default: ${jdk_url}"
read jdk_url_in
if [ -n "${jdk_url_in}" ]; then
    # 如果用户输入了URL, 则使用用户输入的, 输错了不负责
    jdk_url=${jdk_url_in}
fi
echo "download jdk from url: ${jdk_url}"
# 下载JDK文件
tmp_jdk_tar_name=$(date +%s%3N)
sudo curl -Lo ${tmp_jdk_tar_name} ${jdk_url} 
# 指定的文件夹必须要先存在
tmp_jdk_tar_r_name="${tmp_jdk_tar_name}_$(date +%s%3N)"
sudo mkdir ${tmp_jdk_tar_r_name}
# 解压到指定文件夹
sudo tar zxf ${tmp_jdk_tar_name} -C ${tmp_jdk_tar_r_name}
# 进入解压后的文件夹然后获取 java home
cd ${tmp_jdk_tar_r_name}
# 解压出来只有一个文件夹, 取得这个文件夹的名字
java_dir=$(ls)
# 将解压后的文件夹移动到临时目录的上一级, 即 /usr/local/jdk/ 中
sudo mv ${java_dir} ${jdk_dir}
cd ${jdk_dir}
# 删除所有的临时文件和文件夹
sudo rm -rf ${tmp_jdk_tar_name} ${tmp_jdk_tar_r_name}
# 现在配置 JDK 环境变量
echo "jdk installed successfully, now config JAVA HOME."
# 移动到解压出来的目录中
cd ${java_dir}
# 将 JAVA_HOME 环境变量写入用户家目录中的 .profile 文件中
# 注意版本, Ubuntu24.04 默认是有这个文件存在的
echo -e "\n# JDK config\nexport JAVA_HOME=${PWD}\nexport PATH=\${PATH}:\${JAVA_HOME}/bin" >> ~/.profile
# 刷新
echo "now your jdk has been installed at ${jdk_dir}${java_dir}"
# 以上, JDK 就配置好了

执行完脚本之后需要手动执行(不知道在脚本里面为什么不生效):

bash 复制代码
source ~/.profile

2.2.2 安装并配置MySQL8.4

bash 复制代码
#!/bin/bash
sudo apt update
sudo apt upgrade -y
# MySQL8.4安装
# 回到家目录
tmp="tmp_$(date +%s%3N)"
cd ~
mkdir "${tmp}"
cd "${tmp}"
curl -Lo a https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb 
# MySQL的密码会在执行以下命令的时候通过图形化交互的方式填写
sudo dpkg -i a
# 刷新源,这一步非常重要
sudo apt update
sudo apt install mysql-server
# 准备修改远程登录权限的SQL脚本
cd ~
sql_file="${tmp}/$(date +%s%3N)"
echo -e "use mysql;\nselect user,host,plugin from user;\nupdate user set host = '%' where user = 'root';\nflush privileges;" > "${sql_file}"
# 执行SQL脚本
mysql -uroot -p < "${sql_file}"
# 删除临时目录
cd ~
rm -rf "${tmp}"
echo "now MySQL8.4 has been installed."
# 以上, MySQL8.4安装配置完成

2.2.3 安装并配置Redis

bash 复制代码
#!/bin/bash
sudo apt update
sudo apt upgrade -y
# Redis 安装及配置
# 安装直接执行如下指令即可
sudo apt install redis-server -y
# 接下来是配置, 配置主要是监听的IP和密码需要在配置文件中更改, 以及是否为保护模式
cd /etc
# redis/ 目录的权限是 rwxrws---, 对应8进制2770
sudo chmod 777 redis/
cd redis/
# 刚安装好的话 /etc/redis/ 中应该只有一个 redis.conf 文件
conf_name="redis.conf"
# 备份
sudo cp -f ${conf_name} "${conf_name}.backup"
# 修改 bind
sudo sed -i 's/^bind/# bind/' "${conf_name}"
# 修改密码
read -p "please input your new redis password: " pass
sudo sed -i "s/^# requirepass foobared/requirepass ${pass}/" "${conf_name}"
# 将 protected-mode 修改为 no
sudo sed -i 's/^protected-mode yes/protected-mode no/' "${conf_name}"
# 重启 Redis 服务以应用更改
sudo systemctl restart redis-server
cd /etc
# 恢复原有的权限
sudo chmod 2770 redis/
echo "redis configuration updated successfully."
# 以上, redis 安装配置完成

3 部署服务

虽说是使用的虚拟机,但是现在仍然是在操作系统上直接部署服务,与直接在物理机操作系统上部署服务并没有什么区别,所以部署服务这一块,参考【Ubuntu24.04】服务部署(基础)这一篇文章。

4 总结

本文主要介绍了如何安装VMware软件,如何在VMware中安装并配置虚拟机,以及部分组件的安装脚本以供参考。

相关推荐
bianshaopeng30 分钟前
ubuntu go 环境变量配置
开发语言·ubuntu·golang
元清加油41 分钟前
【Goland】:协程和通道
服务器·开发语言·后端·网络协议·golang
望获linux1 小时前
【实时Linux实战系列】基于实时Linux的物联网系统设计
linux·运维·服务器·chrome·php
刘一说2 小时前
CentOS 系统 Java 开发测试环境搭建手册
java·linux·运维·服务器·centos
海绵不是宝宝81710 小时前
连接远程服务器上的 jupyter notebook,解放本地电脑
服务器·jupyter·github
Fireworkitte12 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil90013 小时前
ubuntu常见问题汇总
linux·ubuntu
繁星¹⁸⁹⁵14 小时前
通过update-alternatives可以实现cuda的多版本切换
服务器
开航母的李大16 小时前
软件系统运维常见问题
运维·服务器·系统架构·运维开发
phoenix098120 小时前
Linux入门DAY27
linux·运维·服务器