目录
前言:为什么要使用Rad Hat 8
前一阵子接了公司安排的给我们的产品升级JDK的任务,目标是从OpenJDK1.8升级到OpenJDK17,从开发的角度其实难度不大的,先把自己本地的环境换成JDK17,然后配一下idea的和maven的环境,把之前的在8上面跑过的痕迹都删除,然后跑一下maven build和test,升级一些组件,再放到Jenkins上去跑一下,有错的地方改错,只要正常的流水线能跑通,后续出现BUG的概率很低,大部分的错误都发生在编译阶段。一切听上去都挺正常的,但是奇葩就奇葩在我们的产品的安装并不是由我们产品自带的,而是由我们公司提供了另一个统一的安装程序,通过它来安装这一些列的产品。这意味着JDK的安装任务并不由我们负责……
问题发生在进行第一次升级测试的时候,我们的测试环境是CentOS 7,在执行安装的时候报了一堆找不到jdk17的错,然后找到我们另一个团队亲爱的同事,给出答复是对于RHEL 8.5以下的系统都需要客户自己手动安装OpenJDK17,因为他们使用的安装方式是通过yum的方式安装。我当时心中一万个那个什么马在飞奔……这不纯纯自废武功吗,现在国内外大多数的服务器还是停留在RHEL8.3之前,很多还是RHEL7。这不等于我打车坐到半路你告诉我最后5公里你要我自己走回去,八嘎。虽然,其实这对我其实并没有什么太大影响,就是要在最后写文档的时候多加几句“RHEL 8.5以下的系统都需要自己先手动安装OpenJDK17”。这里闲聊一下那段时间正在经历裁员风波,以前做我们这条线的基本上都是中国人,老板在法国,但是这个时候我们这条线的大多数产品都已经换成法国人和三哥了。要是按照以前我们来做这些的时候,老板要是知道我们做的内容里有不是全自动化的,绝对当场就say no了,中国人好使就疯狂使。现在换成法国自己人了就包容得一比,各种跟老板提要求。然后法国人是真浪漫……一天teams显示是在线状态的不超过两小时,可能在我睡觉的时候他们在加班吧哈哈。
$ sudo yum install java-17-openjdk
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* elrepo: hkg.mirror.rackspace.com
* extras: mirrors.bupt.edu.cn
* updates: mirrors.bupt.edu.cn
No package java-17-openjdk available. Error: Nothing to do
我在CentOS 7上面尝试更新yum源之后再下载OpenJDK17,确实发现找不到它的yum源,这也是我写这篇文章的第一个原因。在2023 CentOS 7已经显得有些古老了,在官网去下载它的镜像还是2009版本。CentOS 8在经过几次魔改之后更是直接表示躺平并停止维护,CentOS 7官方给出的维护时间也在明年2024年就会结束。
第二个原因是CentOS 7的iptables规则对于最新版Kubernetes有点老旧了,我在使用satefulSet部署有状态应用的时候就出现过通过DNS无法访问pod内部应用的情况,就是因此出现的错误。很多安装Kubernetes的教程也会提示更新iptables规则。
基于这两个原因我选择另辟蹊径,RedHat官方是有一个开发人员计划的,可以免费让学生和个人开发者体验RedHat最新的企业版产品。而且学习新知识对于开发者来说也是百利而无一害。
~以上全是废话。
目前RHEL(Red Hat Enterprise Linux)最新的版本是v9.2,但是RHEL 9还未经过市场的检验,至少在国内是这样,所以我们这里选择RHEL 8.8,这是目前RHEL 8最新的版本。本教程详细阐述如何免费下载、订阅和安装RHEL 8.8。
*本教程旨在帮助学生和个人开发者学习所用,如需商用,还请购买官方正版。
一、注册Rad Hat账号
在一切开始前需要到红帽Rad Hat官网注册一个自己的账号并完善个人信息,过程并不复杂并且红帽贴心的给出了中文官网,所以这里不再赘述。
二、加入Red Hat开发人员计划
-
注册好个人账号后,点击开发人员。
-
下拉找到Develop on Linux,点击Start building with Red Hat Enterprise Linux。
-
下拉找到RHEL Server ISO,点击Other RHEL versions。
-
找到v8.8.0,通常一般的PC机型下载x86_64, DVD_iso即可,点击Download。
-
页面出现Thank you for downloading Red Hat Enterprise Linux说明操作成功,即将进入自动下载,由于镜像比较大可能需要时间更久一些。
-
过程中可能弹出一张表让你完善更多的信息,按照要求填写即可。
三、新建激活码并绑定订阅
到了这里先别着急安装虚拟机,直接贸然安装肯定会中途卡住,因为每一台RHEL Server都是和账户绑定的,即在安装过程中需要绑定你的账号或者账号下的订阅才能激活这台Server的YUM和RPM软件仓库进行安装各种软件。直接绑定账号的前提是当前账户下存在订阅和激活码,否则直接绑定账号也是会显示没有激活的。
-
返回Red Hat首页,点击我的账户,访问红帽客户门户。
-
点击现在开始。
-
点击查看您的订阅使用情况。
-
点击按钮启用红帽订阅管理的简单内容访问——必须要打开,否则无法完成虚拟机激活。
-
点击管理->激活码。
-
可以看到这个时候是还没有激活码的,点击新建一个激活码,也可以在提示的新平台Red Hat Hybrid Cloud Console里进行创建。
-
输入新激活码的名称,服务等级选择SelfSupport,启动自动附加,将下面的订阅都勾选上,这里可以看出这个开发人员计划只有一年的期限,不过到期后可以续订。点击创建。
-
*记住这个激活码的名称和你的机构ID,激活虚拟机的时候会用到。到这里激活码就成功建立了。
四、构建RHEL 8.8虚拟机
有了上面的准备下面可以正式开始构建虚拟机了,由于我这里构建虚拟机需要安装Kubernetes集群,所以虚拟机的配置标准是按照搭建k8s集群的要求来的,根据自己的需求选择配置。
-
虚拟机平台使用Oracle VM VirtualBox 7;
-
内存2GB;
-
CPU数量为2;
-
硬盘40GB;
-
2张网卡,一张Host-Only和主机通讯,一张Nat网卡和外网通讯。
下面是详细步骤:
-
点击新建虚拟机输入虚拟机名称、目录、ISO选择下载好的Red Hat 8.8的iso镜像,勾选跳过自动安装,即选择手动安装,否则在完成构建虚拟机之后它会自动启动并自动完成安装,无法对虚拟机的时间、网络、root账户密码等信息进行启动前的手动配置,尤其是网络这块,这会对激活虚拟机这一步骤产生很大影响,在网络不通的情况下无法完成虚拟机的激活。
-
配置内存和CPU。
-
配置磁盘;
-
点击finish;
-
配置新建的虚拟机的网络,网卡1选择Host-Only网卡,网卡2选择Nat网卡;
-
启动新建的虚拟机;
-
设置语言,为了更好的兼容性,建议选择英文;
-
设置磁盘;
-
禁用kdump;
-
设置时区:Asia, Shanghai;
-
*设置虚拟机类型,这个可以根据自己的喜好和具体要求来选,我这里选择Server,就没有可视化界面,这种方式也是占用空间最少的,可以选择Workstation有一个比较漂亮和完善的GUI页面。同时这里还可以根据自己的要求加装一些常用软件;
-
配置网卡,先查看主机VirtualBox Host-Only网卡适配器的ip地址,虚拟机enp0s3网卡的网段要和主机网卡的网段一致。将两张网卡都设置为on,修改虚拟机的Host Name,配置成功的话返回上一个界面会显示Connected: enp0s3, enp0s8;
-
**在网络畅通的基础上,执行虚拟机激活:点击CONNECT TO RED HAT,可以通过账号激活,也可以通过Activation key激活,这里采用后者,有兴趣的朋友可以尝试账号激活,激活成功后会显示The system has been properly subscribed (这一步是可选的,也可以在系统安装完成后通过命令的方式进行激活,在这里激活会更加直观一些)。
-
设置root账户密码。
-
一切就绪后就可以执行安装了,过程会比较长。
五、网络配置
RHEL 8/CentOS 8和RHEL 7/CentOS 7一个很大的区别就是网络,RHEL 7/CentOS 7网络管理同时支持NetWork和NetWorkManager,默认使用的是NetWork,也是大多数情况下我们使用的网络管理方式,常见命令:systemctl status network。而RHEL 8/CentOS 8默认只支持NetWorkManager,NetWorkManager比NetWork更加强大,同时也更加的复杂,所以通过以前NetWork的方式来管理是i行不通的。实际上NetWorkManager是可以做到不用修改任何配置文件来完成网络的管理的。这里为了贴合RHEL 7/CentOS 7的使用和方便理解还是采用修改配置文件的方式来完成新虚拟机网络的管理。
通过ip addr命令可以看到host-only网卡是没有真正被应用上的
修改host-only网卡配置文件
$ vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=enp0s3
UUID=c6fb4df1-4f02-4940-bacf-f496ac815c28
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.100
PREFIX=24
GATEWAY=192.168.56.1
DNS1=192.168.56.1
重启网卡enp0s3
$ nmcli c up enp0s3
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
查看所有网卡信息,结果字体返回绿色代表正常,反之不正常
$ nmcli c
NAME UUID TYPE DEVICE
enp0s8 87bd4bbe-566f-480b-950a-88164c722b08 ethernet enp0s8
enp0s3 c6fb4df1-4f02-4940-bacf-f496ac815c28 ethernet enp0s3
重新使用ip addr命令查看网络信息,发现网卡enp0s3和enp0s8都正确应用上了。
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:37:e6:a3 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.100/24 brd 192.168.56.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe37:e6a3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:a9:e6:80 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.7/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s8
valid_lft 465sec preferred_lft 465sec
inet6 fe80::a00:27ff:fea9:e680/64 scope link noprefixroute
valid_lft forever preferred_lft forever
可以通过yum update 命令检查系统是否激活、网络是否畅通。
$ yum update
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) 16 MB/s | 62 MB 00:03
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 13 MB/s | 58 MB 00:04
Last metadata expiration check: 0:00:07 ago on Mon 17 Jul 2023 11:15:43 PM CST.
Dependencies resolved.
Nothing to do.
Complete!
至此,RHEL 8.8虚拟机安装全部完成,可以尽情的享受全新的Red Hat带来的全新的体验了。
支持原创,转载请注明出处。