由于公司最近要求部分项目上线到Azure云上,要求操作系统使用的Redhat 8.x,而且必须加固

而在Azure官网提供的镜像中,又没有Redhat,于是只有自己自定义Redhat镜像,最后加固,作为公司通用的基础镜像

于是在此记录部分重要的注意事项,及一些重要的操作过程,使用 Hyper-V 管理器准备RHEL 8 虚拟机。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文假定已经从 Red Hat 网站获取 ISO 文件并将 RHEL 映像通过Hyper-V 管理器,安装到虚拟硬盘 (VHD),RHEL 安装说明,如下:

1、Azure 不支持 VHDX 格式。 Azure 仅支持固定 VHD。

可使用 Hyper-V 管理器将磁盘转换为 VHD 格式,也可以使用 convert-vhd cmdlet。

如果使用 VirtualBox,则选择“固定大小”,而不是在创建磁盘时默认动态分配选项。

2、Azure 支持 Gen1(BIOS 引导)和Gen2(UEFI 引导)虚拟机。

3、VHD 允许的最大大小为 1,023 GB

4、支持逻辑卷管理器 (LVM),该管理器可以在 Azure 虚拟机中的 OS 磁盘或数据磁盘上使用。

但是,通常建议在 OS 磁盘上使用标准分区而不是 LVM。

这种做法可以避免 LVM 名称与克隆的虚拟机冲突,尤其是当需要将操作系统磁盘附加到另一台相同的虚拟机进行故障排除时

5、对装载通用磁盘格式 (UDF) 文件系统的内核支持是必需的。

在 Azure 上首次启动时,附加到来宾的 UDF 格式媒体会将预配配置传递到 Linux 虚拟机。

Azure Linux 代理必须能够装载 UDF 文件系统以读取其配置并预配虚拟机,如果没有此支持,预配将失败!

6、不要在操作系统磁盘上配置交换分区

7、Azure 上的所有 VHD 必须已将虚拟大小调整为 1MB。 从原始磁盘转换为 VHD 时,必须确保在转换前原始磁盘大小是 1MB 的倍数。

+++RHEL 8(使用 Hyper-V 管理器)过程++++++++++++++++++++++++++++++++++++++++++++++++++++

详细的过程,可以参考如下URL:

https://docs.microsoft.com/zh-cn/azure/virtual-machines/linux/redhat-create-upload-vhd#rhel-8-using-hyper-v-manager

1、在 Hyper-V 管理器中安装完Redhat 8.x 操作系统后,通过控制台登录上(也可以配置上网络,ssh连接上)

2、通过运行以下命令,确保网络管理器服务会在引导时启动:

sudo systemctl enable NetworkManager.service

3、将网络接口配置为在启动时自动启动,并使用 DHCP

nmcli con mod eth0 connection.autoconnect yes ipv4.method auto

4、注册 Red Hat 订阅,以通过运行以下命令来启用来自 RHEL 存储库中的包的安装(也可以后续在Azure上操作):

# sudo subscription-manager register --auto-attach --username=XXX --password=XXX
# 补充:取消注册订阅,可以运行以下命令
# sudo subscription-manager unregister

5、在 grub 配置中修改内核引导行,使其包含 Azure 的其他内核参数并启用串行控制台。

# 删除当前的 GRUB 参数:
grub2-editenv - unset kernelopts # 在文本编辑器中编辑 /etc/default/grub,并添加以下参数
# 遇到相同的选项,可以删除,只保留如下3行即可,笔者把lvm相关的都删除了,可以正常启动的
GRUB_CMDLINE_LINUX="rootdelay=300 console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 earlyprintk=ttyS0 net.ifnames=0"
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

6、完成 /etc/default/grub 编辑后,运行以下命令以重新生成 grub 配置

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# 对于启用了 UEFI 的 VM,请运行以下命令(笔者因为没有使用到,因此使用不到如下命令):
# sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

7、请确保 SSH 服务器已安装且已配置为在引导时启动(默认采用此配置)。 修改 /etc/ssh/sshd_config 以包含以下行:

ClientAliveInterval 180

最后,检查一下网卡配置文件,删除UUID或者其他选项,保障sshd服务是开机自动启动的,然后重启一下,保障系统能正常重新启动

当然还有一些其他步骤,这里先不在 Hyper-V 管理器 中操作了

8、重启没有问题,就关机,通过 Hyper-V 管理器将虚拟机磁盘格式转换为VHD,最后上传到Azure下的Blob存储中

9、使用Blob中的VDH磁盘文件,创建托管磁盘,最后再使用这个磁盘创建一个VM

10、然后根据官网文档的步骤做完善,最后生成映像,通过对映像创建的虚拟机,进行OS hardening

当然,这里笔者在本应该在Hyper-V 管理器上的操作,缩减了很多(只做了一些相对重要的操作),

然后放到Azure上继续完善,主要是为了快速的实现Hyper-V到Azure云,可以避免一些错误,节省时间

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/15034862.html

 

为Azure-云准备一个基于Red Hat 8.x 的虚拟机镜像的更多相关文章

  1. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.6】

    不为什么,就为了方便搜索,特把红帽EL 5.EL6.EL7 的各版本整理一下,共享出来.原文链接正式发布 7.6 :RedHat Enterprise Server 7.6 for x86_64:rh ...

  2. memcache安装 基于Red Hat 7.4

    Linux版本为 Red Hat 7.4 一.安装 1.下载:http://memcached.org/downloads 解压: tar -xzvf memcached-1.5.3.tar.gz 得 ...

  3. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】(转载)

    不为什么,就为了方便搜索,特把红帽EL 5.EL6.EL7 的各版本整理一下,共享出来.正式发布 6.9 :RedHat Enterprise Server 6.9 for x86_64:rhel-s ...

  4. 红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新7.2】

    RedHat Enterprise Server 6.7 for i386 Boot Disk:rhel-server-6.7-i386-boot.iso SHA-256 Checksum: 798d ...

  5. (转)红帽 Red Hat Linux相关产品iso镜像下载【百度云】【更新6.7 Boot Disk】

    不为什么,就为了方便搜索,特把红帽EL 5.EL6 的各版本整理一下,共享出来. RedHat Enterprise Server 6.7 for i386 Boot Disk:rhel-server ...

  6. [转]Red Hat Linux相关产品iso镜像下载【百度云】

    超强汇总!献上大佬链接:http://www.linuxfly.org/post/659/ 还有一些可用链接: 下面的直接复制到迅雷下载,链接是打不开的. RHEL 5.4 ISO下载http://r ...

  7. ORACLE 11G 单实例 磁盘文件系统 DG 归档日志删除脚本 基于RED HAT LINUX 5.3 X86 64BIT

    近期做个DG的归档日志删除, [oracle@.local logs]crontab -l * 8 * * * sh /home/oracle/dbscripts/del_arc.sh 该脚本分别调用 ...

  8. docker19.03制作一个基于centos8的带有nfs4服务的镜像

    一,下载centos的image 1,下载centos最新image [root@localhost ~]# docker pull centos 2,查看是否成功下载到本地image [root@l ...

  9. Red Hat Linux相关产品iso镜像下载

    Linux系统各发行版镜像下载(持续更新) http://www.linuxfly.org/post/659/ http://www.linuxidc.com/Linux/2007-09/7399.h ...

随机推荐

  1. javascript的原型链那些事

    如果你对javascript的原型链还有任何疑问,请看这篇文章 进入主题 前言 原型链的规则不百分百适用于所有情况 显式原型:prototype,是一个对象{} 隐式原型:__proto__,是一个对 ...

  2. php和js的不定参

    function my_func() { $args = func_get_args(); print_r($args); } my_func('php','java','node.js'); jav ...

  3. YII类的映射表机制

    <?php /** * Created by PhpStorm. * Date: 2016/5/25 * Time: 19:09 * * YII的类的映射表 */ namespace front ...

  4. Axure RP 8 实现 圆角文本框 圆角带筛选的下拉列表框 可自动显示滚动条

    刚开始用Axure 会发现 Axure 元件库并不是很齐全,很多元件需要自己想办法解决 或者去网上去找.其实个人建议网上有现成的元件可以就下载就不必花时间去折腾.除非你也想练练手,原型这种东西除非高保 ...

  5. Jmix- 业务系统高效开发的新方式

    企业在数字化转型的过程中,都面临将现有的业务流程进行"软件化"的过程.然而,在我们的印象中,通常会觉得针对业务系统的软件开发不是特别高效.这背后有很多原因,从开发角度看,有一个主要 ...

  6. 从零开始Blazor Server(8)--增加菜单以及调整位置

    这篇干啥 这篇文章主要是把前面的一些东西稍微调整一下,使其更适合后面的内容. 主要是两个事,一个是把原来的PermissionEntity直接变成MenuEntity,直接让最后一级是菜单,这样后面就 ...

  7. Flutter-填平菜鸟和高手之间的沟壑

    Flutter-填平菜鸟和高手之间的沟壑 准备写作中... 1.Flutter-skia-影像,Flutter skia-图形渲染层.应用渲染层2.方法通道使用示例,用于演示如何使用方法通道实现与原生 ...

  8. @Autowired注解 --required a single bean, but 2 were found出现的原因以及解决方法

    @Autowired注解是spring用来支持依赖注入的核心利器之一,但是我们或多或少都会遇到required a single bean, but 2 were found(2可能是其他数字)的问题 ...

  9. Luogu1088 火星人 (康托展开)

    皮一波 #include <iostream> #include <cstdio> #include <cstring> #include <algorith ...

  10. Spring 02 控制反转

    简介 IOC IOC(Inversion of Control),即控制反转. 这不是一项技术,而是一种思想. 其根本就是对象创建的控制权由使用它的对象转变为第三方的容器,即控制权的反转. DI DI ...