【Ubuntu24.04】服务部署(虚拟机)
目录
- 0 背景
- 1 安装虚拟机
- 1.1 下载虚拟机软件
- 1.2 安装虚拟机软件
- 1.2 安装虚拟电脑
- 2 配置虚拟机
- 2.1 配置虚拟机网络及运行初始化脚本
- 2.2 配置服务运行环境
- 2.2.1 安装并配置JDK17
- 2.2.2 安装并配置MySQL8.4
- 2.2.3 安装并配置Redis
- 3 部署服务
- 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
窗口,输入以下的命令:
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
中设置端口转发似乎比较麻烦,所以这里不打算使用。而是使用远程连接的方式:
- 设置虚拟电脑的网络模式为
自定义(VMnet8)
,这是自带的,不用自己设置
2. 登录到虚拟电脑中
3. 查看虚拟电脑的IP
地址:执行命令ip a
,笔者的IP
地址是192.168.128.128
,按自己具体的来
4. 使用Termius
中的SFTP
远程传输脚本文件,这个时候的IP
地址192.168.128.128
是可以被远程连接的。
5. 在虚拟机中执行初始化脚本文件,脚本文件参考VirtualBox安装ubuntu-live-server24.04
6. 执行脚本文件会让你设置IP
地址,注意不要重复就是了,而且注意和宿主机的网段和网关保持一致。
7. 配置桥接模式的具体桥接方式
将桥接的网卡设置成宿主机上真实的网卡。
9. 执行完脚本之后将网络连接模式设置为桥接模式
至此,虚拟机的初始化工作就做好了,可以用Termius
等远程连接工具连接试一下,如果能连接外网,就说明配置成功。
2.2 配置服务运行环境
既然虚拟机基本环境配置好了,那么接下来就是在上面安装一些你的服务需要用到的组件,最常见的还是JDK
,MySQL
和Redis
。下面直接给出安装脚本,直接在虚拟机或者Termius
等远程连接工具上面执行即可。
2.2.1 安装并配置JDK17
#!/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 就配置好了
执行完脚本之后需要手动执行(不知道在脚本里面为什么不生效):
source ~/.profile
2.2.2 安装并配置MySQL8.4
#!/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
#!/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
中安装并配置虚拟机,以及部分组件的安装脚本以供参考。