zoukankan      html  css  js  c++  java
  • 为Azure-云准备一个基于Red Hat 8.x 的虚拟机镜像

    由于公司最近要求部分项目上线到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

     

    作者:一名卑微的IT民工

    出处:https://www.cnblogs.com/5201351

    本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。

    博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。

    博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!

  • 相关阅读:
    linux 解压tgz 文件指令
    shell 脚本没有执行权限 报错 bash: ./myshell.sh: Permission denied
    linux 启动solr 报错 Your Max Processes Limit is currently 31202. It should be set to 65000 to avoid operational disruption.
    远程查询批量导入数据
    修改 MZTreeView 赋权节点父节点选中子节点自动选中的问题
    关于乱码的问题解决记录
    我的网站优化之路
    对设计及重构的一点反思
    我的五年岁月
    奔三的路上
  • 原文地址:https://www.cnblogs.com/5201351/p/15034862.html
Copyright © 2011-2022 走看看