如何在OpenStack上创建CentOS 8 KVM镜像模板

时间:2020-02-23 14:30:29  来源:igfitidea点击:

本教程将在创建CentOS 8实例时讨论如何在OpenStack上使用CentOS 8 KVM镜像。
CentOS 8已于2019年9月24日发布,伙计们开始采用运行生产工作负载。
OpenStack是许多人使用的主要虚拟化/云环境之一。

第1步:下载CentOS 8 ISO镜像

将CentOS 8 ISO镜像下载到工作站。

wget http://isoredirect.centos.org/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso

将CentOS 8 ISO镜像上传到OpenStack。

openstack image create CentOS8-ISO \
--file CentOS-8-x86_64-1905-dvd1.iso \
--disk-format iso --container-format bare

从浏览中上传镜像上传。

$openstack image list
+--------------------------------------+---------------+--------+
| ID                                   | Name          | Status |
+--------------------------------------+---------------+--------+
| b8d75f31-fb6b-428b-8b83-f3904b0bd114 | CentOS-7      | active |
| 685d52c7-ad42-45e6-9419-a9971dcad9c1 | CentOS8-ISO   | active |
| fbcf16a0-c7cc-42c1-b836-a39bc34c9666 | Cirros        | active |
| d900bcad-047a-4d01-bcbc-42426bb4315d | CoreOS        | active |
| f0ac705b-ee73-4de8-95f7-4e06569f0f5c | Debian-10     | active |
| 01e6f07b-ca99-439d-9cd0-ab28c2573abf | Fedora-30     | active |
| 1953e548-779c-4fe5-86c1-854d71f35d14 | FreeBSD12     | active |
| 7bd462ad-cc11-4d89-8b85-9aab0cfe114b | Ubuntu-18     | active |
| 86e42aae-d959-4b79-b9a4-b899d85ba303 | fed31         | active |
| 3a56d733-de76-490a-9dac-1419219b5803 | manageiq      | active |
| 47b5b6ed-5599-420a-a602-35d964e86de5 | rhcos         | active |
| 6b3dc49b-a53f-4cfc-98e0-9eb6925219de | rhel-7        | active |
| 965cb833-b97e-4488-9bc6-84495b9a9b7b | rhel-8        | active |
+--------------------------------------+---------------+--------+

第2步:从ISO启动CentOS 8实例

登录OpenStack Horizo n Dashboard。

导航到Project> Compute>实例。

单击"启动实例"。
在详细信息部分下给VM名称和描述。

在源头下,选择镜像作为引导源,创建卷20GB,然后选择前面上传的CentOS 8 ISO镜像。

选择在下一页中使用的味道。
我将使用M1.Small味道,它具有20GB的磁盘空间,1VCPU和2GB的RAM。
有关更多详细信息,请参阅如何创建OpenStack Flavors。

选择要用于VM创建的网络。

选择安全组以分配和其他可选参数,然后启动实例。

等待实例输入"活动"状态。

第3步:创建Cinder 卷

一旦VM处于活动状态,通过遵循我们的教程,创建卷然后通过遵循如何创建OpenStack Cinder卷并添加到VM实例来创建和添加卷的卷。
这是运送操作系统的安装。

第4步:开始CentOS 8安装

添加卷后,单击实例,然后单击"控制台"选项卡

按照所涉及的标准CentOS安装:

通过屏幕截图将CentOS 8一步一步

但是在软件选择上,选择服务器。

选择为OS安装添加的第二个磁盘。

确认所有设置是可以的,开始安装CentOS 8.设置root密码。

可选地创建管理员用户,尽管云-Init将用于稍后创建用户。

完成CentOS 8配置。

安装完成后重新启动系统。

服务器尝试再次从ISO镜像引导。
按任意键停止倒计时。

第7步:终止CentOS 8构建实例

我们现在可以终止我们在Project> Compute>实例下创建的实例

选择"CentOS8-Build"并点击"删除实例"按钮。
确认删除。

步骤8:将卷转换为Qcow2镜像

使用CentOS 8安装将卷上传到浏览镜像。
这是通过导航到项目> Compute>卷来完成的。
选择卷,然后单击"上传到镜像"

给它一个名称并选择QCOW2磁盘格式。

确认镜像是否已在项目> Compute>镜像下成功上传

选择镜像并更新如下所示的元数据:

hypervisor_type: kvm
auto_disk_config: true
hw_qemu_guest_agent: trueTo update image Metadata, enter metadata name in the custom box and click on the + button, then provide the value on the right side box.Save settings when done. You can now delete the Volume on Project > Volumes > CentOS8-Template > DeleteStep 9: Create Instance from new ImageCreate an instance from the image we just uploaded to Glance. Click on Project > Compute > Instances > Launch Instance.Give the instance the name “centOS8-build”, use m1.small flavor (One with 20GB disk), and select “Boot from image” and the “CentOS8-Template” image.Launch the instance and wait for it to enter Active state. SSH to the new instance as “root“, using the root password used during setup, or access the instance using OpenStack Console.$ssh Hyman@theitroad
The authenticity of host '10.10.1.71 (10.10.1.71)' can't be established.
ECDSA key fingerprint is SHA256:9OOv/wC5aB5XownQPr4udNtiKvouvzr8UQoDcj6wdfE.
ECDSA key fingerprint is MD5:b6:32:c7:59:fd:25:48:07:11:f5:fb:cf:7e:cb:25:45.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.1.71' (ECDSA) to the list of known hosts.
Hyman@theitroad's password: 
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Sat Oct 26 21:44:14 2019 from 10.10.1.186
[Hyman@theitroad ~]# Prepare Instance to be used as OpenStack template.Update systemsudo yum -y update

安装Cloud-Init,Qemu Guest Agent,Vim,Bash完成,Cloud-Utils-Growpart。

sudo yum -y install vim bash-completion cloud-init qemu-guest-agent cloud-utils-growpart

启动并启用QEMU-Guest-Agent服务:

sudo systemctl enable --now qemu-guest-agent.service

禁用Zeroconf路由

对于访问元数据服务的实例,必须禁用默认的zeroconf路由:

echo "NOZEROCONF=yes" >> /etc/sysconfig/network

启用内核控制台日志记录:

打开文件/etc/sysconfig/grub

sudo vim /etc/sysconfig/grub

删除 rhgb quiet并添加 console=tty0 console=ttyS0,115200n8选择。
我的样子如下。

GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200n8"

运行以下命令以保存更改:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done

更新Cloud-Init配置文件

我们可以更改所使用的帐户的名称 cloud-init通过编辑 /etc/cloud/cloud.cfg文件并添加与其他用户的一行。

sudo vim /etc/cloud/cloud.cfg

创建的默认用户是云用户:

system_info:
  default_user:
    name: cloud-user
    lock_passwd: true
    gecos: Cloud User
    groups: [wheel, adm, systemd-journal]
    sudo: ["ALL=(ALL) NOPASSWD:ALL"]
    shell: /bin/bash
  distro: rhel
  paths:
    cloud_dir: /var/lib/cloud
    templates_dir: /etc/cloud/templates
  ssh_svcname: sshd

root帐户被禁用,启用,设置行(不推荐)

disable_root: 0

完成后,删除静态网络配置文件:

rm /etc/sysconfig/network-scripts/ifcfg-ens3

然后清除root用户的Bash历史记录。

rm /root/.bash_history; history -c

第10步:创建最终CentOS 8镜像

导航到计算>实例> CentOS8-Build>创建快照按钮。

给它一个名称然后创建快照。

我们现在可以删除前面创建的CentOS8-Build实例和CentOS8-模板镜像。
使用创建的镜像在OpenStack上启动CentOS 8实例。