G027-OP-INS-RHEL-04 RedHat OpenStack 创建自定义的QCOW2格式镜像

网友投稿 635 2022-11-14

G027-OP-INS-RHEL-04 RedHat OpenStack 创建自定义的QCOW2格式镜像

G027-OP-INS-RHEL-04 RedHat OpenStack 创建自定义的QCOW2格式镜像

1 您需要了解

相关文章 G016-OS-LIN-CENT-01 CentOS 7.8.2003 安装 G019-OP-INS-RHEL-01 PackStack 安装 RedHat OpenStack G020-OP-INS-RHEL-02 RedHat OpenStack 发放云主机(命令行) G023-OP-INS-RHEL-03 RedHat OpenStack Cinder 对接 NFS 后端存储

2 安装 KVM 虚机

2.1 虚机安装虚拟化软件包

注意:虚机 指的是 CentOS 7.8 #挂载光盘 [root@cloudcs ~]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only [root@cloudcs ~]# ls /mnt/ CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL

#配置本地YUM源[root@cloudcs ~]# mkdir /tmp/repo[root@cloudcs ~]# mv /etc/yum.repos.d/*.repo /tmp/repo/[root@cloudcs ~]# vim /etc/yum.repos.d/local.repo[root@cloudcs ~]# cat /etc/yum.repos.d/local.repo [local_repo]name = localbaseurl = file:///mnt/gpgcheck = 0

#安装虚拟化软件包及虚拟机镜像管理工具[root@cloudcs ~]# yum groupinstall -y "Virtualization*"[root@cloudcs ~]# yum install -y libguestfs-tools-c.x86_64

## 2.2 创建 KVM 虚机 > 注意:`虚机` 通过命令 `ifconfig` 可看到一张虚拟网卡 `vritbr0`,该虚拟网卡为 `kvm虚机` default 默认的 `NAT` 网络类型网卡(`192.168.122.1`) ```shell #创建目录上传ISO镜像 [root@cloudcs ~]# mkdir -p /soft/disk #将 CentOS 7.4 上传到 /soft 目录下 [root@cloudcs ~]# ls /soft/ CentOS-7-x86_64-DVD-1708.iso disk #创建 kvm虚机 使用的磁盘文件 [root@cloudcs ~]# qemu-img create -f qcow2 /soft/disk/centos7.qcow2 15G Formatting '/soft/disk/centos7.qcow2', fmt=qcow2 size=16106127360 encryption=off cluster_size=65536 lazy_refcounts=off #创建 kvm 虚机 virt-install \ --name centos \ --disk path=/soft/disk/centos7.qcow2 \ --vcpus 1 \ --memory 2048 \ --location /soft/CentOS-7-x86_64-DVD-1708.iso \ --network network=default

2.3 安装 KVM 虚机

2.3.1 语言选择

2.3.2 自动分区

2.3.3 网络及主机名

注意:当开启网络后,必须可以通过 DHCP 自动获取到 IP 地址,如下图

2.3.4 配置 ROOT 密码

默认采用最小化 minimal 安装

2.3.5 重启并测试网络

重启 kvm 虚机,并以 root 身份登录,测试 kvm 虚机 能否连通外网

3 配置 KVM 虚拟机

3.1 修改 KVM 虚机网络配置文件

注意:修改的是 kvm虚机,不是 虚机,概念分不清?参考第一部分 约定

# 修改 kvm 虚机网卡配置文件,使其只包括以下 4 行内容 [root@local ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 [root@local ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=dhcp DEVICE=eth0 ONBOOT=yes

3.2 安装 cloud-init 软件包

根据 2.3.5 小节测试,kvm 虚机可正常连通外网,此时直接在线安装软件包即可。目的是为了可以获取到客户自定义元数据信息,如主机名及root密码等。

[root@local ~]# yum install -y cloud-utils-growpart cloud-init #输出 Loaded plugins: fastestmirror base | 3.6 kB 00:00 extras | 2.9 kB 00:00 updates | 2.9 kB 00:00 (1/4): extras/7/x86_64/primary_db | 247 kB 00:00 (2/4): base/7/x86_64/group_gz | 153 kB 00:00 (3/4): updates/7/x86_64/primary_db | 16 MB 00:31 (4/4): base/7/x86_64/primary_db | 6.1 MB 00:36 Determining fastest mirrors * base: mirrors-99.com * extras: mirrors.ustc.edu- * updates: mirrors.ustc.edu- Resolving Dependencies --> Running transaction check ---> Package cloud-init.x86_64 0:19.4-7.el7.centos.6 will be installed --> Processing Dependency: python-six for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: python-setuptools for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: python-requests for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: python-prettytable for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: python-jsonpatch for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: python-jinja2 for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: pyserial for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: policycoreutils-python for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: net-tools for package: cloud-init-19.4-7.el7.centos.6.x86_64 --> Processing Dependency: PyYAML for package: cloud-init-19.4-7.el7.centos.6.x86_64 ---> Package cloud-utils-growpart.noarch 0:0.29-5.el7 will be installed --> Running transaction check ---> Package PyYAML.x86_64 0:3.10-11.el7 will be installed --> Processing Dependency: libyaml-0.so.2()(64bit) for package: PyYAML-3.10-11.el7.x86_64 ---> Package net-tools.x86_64 0:2.0-0.25.20131004git.el7 will be installed ---> Package policycoreutils-python.x86_64 0:2.5-34.el7 will be installed --> Processing Dependency: policycoreutils = 2.5-34.el7 for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: libsemanage-python >= 2.5-14 for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: audit-libs-python >= 2.1.3-4 for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: python-IPy for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: libqpol.so.1(VERS_1.4)(64bit) for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: libqpol.so.1(VERS_1.2)(64bit) for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: libcgroup for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: libapol.so.4(VERS_4.0)(64bit) for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: checkpolicy for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: libqpol.so.1()(64bit) for package: policycoreutils-python-2.5-34.el7.x86_64 --> Processing Dependency: libapol.so.4()(64bit) for package: policycoreutils-python-2.5-34.el7.x86_64 ---> Package pyserial.noarch 0:2.6-6.el7 will be installed ---> Package python-jinja2.noarch 0:2.7.2-4.el7 will be installed --> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-4.el7.noarch --> Processing Dependency: python-markupsafe for package: python-jinja2-2.7.2-4.el7.noarch ---> Package python-jsonpatch.noarch 0:1.2-4.el7 will be installed --> Processing Dependency: python-jsonpointer for package: python-jsonpatch-1.2-4.el7.noarch ---> Package python-prettytable.noarch 0:0.7.2-3.el7 will be installed ---> Package python-requests.noarch 0:2.6.0-10.el7 will be installed --> Processing Dependency: python-urllib3 >= 1.10.2-1 for package: python-requests-2.6.0-10.el7.noarch --> Processing Dependency: python-chardet >= 2.2.1-1 for package: python-requests-2.6.0-10.el7.noarch ---> Package python-setuptools.noarch 0:0.9.8-7.el7 will be installed --> Processing Dependency: python-backports-ssl_match_hostname for package: python-setuptools-0.9.8-7.el7.noarch ---> Package python-six.noarch 0:1.9.0-2.el7 will be installed --> Running transaction check ---> Package audit-libs-python.x86_64 0:2.8.5-4.el7 will be installed --> Processing Dependency: audit-libs(x86-64) = 2.8.5-4.el7 for package: audit-libs-python-2.8.5-4.el7.x86_64 ---> Package checkpolicy.x86_64 0:2.5-8.el7 will be installed ---> Package libcgroup.x86_64 0:0.41-21.el7 will be installed ---> Package libsemanage-python.x86_64 0:2.5-14.el7 will be installed --> Processing Dependency: libsemanage = 2.5-14.el7 for package: libsemanage-python-2.5-14.el7.x86_64 ---> Package libyaml.x86_64 0:0.1.4-11.el7_0 will be installed ---> Package policycoreutils.x86_64 0:2.5-17.1.el7 will be updated ---> Package policycoreutils.x86_64 0:2.5-34.el7 will be an update --> Processing Dependency: libsepol >= 2.5-10 for package: policycoreutils-2.5-34.el7.x86_64 --> Processing Dependency: libselinux-utils >= 2.5-14 for package: policycoreutils-2.5-34.el7.x86_64 ---> Package python-IPy.noarch 0:0.75-6.el7 will be installed ---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed ---> Package python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 will be installed --> Processing Dependency: python-ipaddress for package: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch --> Processing Dependency: python-backports for package: python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch ---> Package python-chardet.noarch 0:2.2.1-3.el7 will be installed ---> Package python-jsonpointer.noarch 0:1.9-2.el7 will be installed ---> Package python-markupsafe.x86_64 0:0.11-10.el7 will be installed ---> Package python-urllib3.noarch 0:1.10.2-7.el7 will be installed ---> Package setools-libs.x86_64 0:3.3.8-4.el7 will be installed --> Processing Dependency: libselinux >= 2.5-14.1 for package: setools-libs-3.3.8-4.el7.x86_64 --> Running transaction check ---> Package audit-libs.x86_64 0:2.7.6-3.el7 will be updated --> Processing Dependency: audit-libs(x86-64) = 2.7.6-3.el7 for package: audit-2.7.6-3.el7.x86_64 ---> Package audit-libs.x86_64 0:2.8.5-4.el7 will be an update ---> Package libselinux.x86_64 0:2.5-11.el7 will be updated --> Processing Dependency: libselinux(x86-64) = 2.5-11.el7 for package: libselinux-python-2.5-11.el7.x86_64 ---> Package libselinux.x86_64 0:2.5-15.el7 will be an update ---> Package libselinux-utils.x86_64 0:2.5-11.el7 will be updated ---> Package libselinux-utils.x86_64 0:2.5-15.el7 will be an update ---> Package libsemanage.x86_64 0:2.5-8.el7 will be updated ---> Package libsemanage.x86_64 0:2.5-14.el7 will be an update ---> Package libsepol.x86_64 0:2.5-6.el7 will be updated ---> Package libsepol.x86_64 0:2.5-10.el7 will be an update ---> Package python-backports.x86_64 0:1.0-8.el7 will be installed ---> Package python-ipaddress.noarch 0:1.0.16-2.el7 will be installed --> Running transaction check ---> Package audit.x86_64 0:2.7.6-3.el7 will be updated ---> Package audit.x86_64 0:2.8.5-4.el7 will be an update ---> Package libselinux-python.x86_64 0:2.5-11.el7 will be updated ---> Package libselinux-python.x86_64 0:2.5-15.el7 will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: cloud-init x86_64 19.4-7.el7.centos.6 updates 933 k cloud-utils-growpart noarch 0.29-5.el7 base 27 k Installing for dependencies: PyYAML x86_64 3.10-11.el7 base 153 k audit-libs-python x86_64 2.8.5-4.el7 base 76 k checkpolicy x86_64 2.5-8.el7 base 295 k libcgroup x86_64 0.41-21.el7 base 66 k libsemanage-python x86_64 2.5-14.el7 base 113 k libyaml x86_64 0.1.4-11.el7_0 base 55 k net-tools x86_64 2.0-0.25.20131004git.el7 base 306 k policycoreutils-python x86_64 2.5-34.el7 base 457 k pyserial noarch 2.6-6.el7 base 124 k python-IPy noarch 0.75-6.el7 base 32 k python-babel noarch 0.9.6-8.el7 base 1.4 M python-backports x86_64 1.0-8.el7 base 5.8 k python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 base 13 k python-chardet noarch 2.2.1-3.el7 base 227 k python-ipaddress noarch 1.0.16-2.el7 base 34 k python-jinja2 noarch 2.7.2-4.el7 base 519 k python-jsonpatch noarch 1.2-4.el7 base 15 k python-jsonpointer noarch 1.9-2.el7 base 13 k python-markupsafe x86_64 0.11-10.el7 base 25 k python-prettytable noarch 0.7.2-3.el7 base 37 k python-requests noarch 2.6.0-10.el7 base 95 k python-setuptools noarch 0.9.8-7.el7 base 397 k python-six noarch 1.9.0-2.el7 base 29 k python-urllib3 noarch 1.10.2-7.el7 base 103 k setools-libs x86_64 3.3.8-4.el7 base 620 k Updating for dependencies: audit x86_64 2.8.5-4.el7 base 256 k audit-libs x86_64 2.8.5-4.el7 base 102 k libselinux x86_64 2.5-15.el7 base 162 k libselinux-python x86_64 2.5-15.el7 base 236 k libselinux-utils x86_64 2.5-15.el7 base 151 k libsemanage x86_64 2.5-14.el7 base 151 k libsepol x86_64 2.5-10.el7 base 297 k policycoreutils x86_64 2.5-34.el7 base 917 k Transaction Summary ================================================================================ Install 2 Packages (+25 Dependent packages) Upgrade ( 8 Dependent packages) Total download size: 8.2 M Downloading packages: Delta RPMs disabled because /usr/bin/applydeltarpm not installed. warning: /var/cache/yum/x86_64/7/base/packages/PyYAML-3.10-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Public key for PyYAML-3.10-11.el7.x86_64.rpm is not installed (1/35): PyYAML-3.10-11.el7.x86_64.rpm | 153 kB 00:00 (2/35): audit-libs-python-2.8.5-4.el7.x86_64.rpm | 76 kB 00:00 (3/35): cloud-utils-growpart-0.29-5.el7.noarch.rpm | 27 kB 00:00 (4/35): audit-2.8.5-4.el7.x86_64.rpm | 256 kB 00:00 (5/35): audit-libs-2.8.5-4.el7.x86_64.rpm | 102 kB 00:00 (6/35): libcgroup-0.41-21.el7.x86_64.rpm | 66 kB 00:00 (7/35): libselinux-utils-2.5-15.el7.x86_64.rpm | 151 kB 00:00 (8/35): libselinux-python-2.5-15.el7.x86_64.rpm | 236 kB 00:00 (9/35): libselinux-2.5-15.el7.x86_64.rpm | 162 kB 00:00 (10/35): libsemanage-2.5-14.el7.x86_64.rpm | 151 kB 00:00 (11/35): checkpolicy-2.5-8.el7.x86_64.rpm | 295 kB 00:00 (12/35): libyaml-0.1.4-11.el7_0.x86_64.rpm | 55 kB 00:00 (13/35): libsemanage-python-2.5-14.el7.x86_64.rpm | 113 kB 00:00 (14/35): libsepol-2.5-10.el7.x86_64.rpm | 297 kB 00:00 (15/35): net-tools-2.0-0.25.20131004git.el7.x86_64.rpm | 306 kB 00:00 Public key for cloud-init-19.4-7.el7.centos.6.x86_64.rpm is not installed03 ETA (16/35): cloud-init-19.4-7.el7.centos.6.x86_64.rpm | 933 kB 00:01 (17/35): policycoreutils-python-2.5-34.el7.x86_64.rpm | 457 kB 00:00 (18/35): python-IPy-0.75-6.el7.noarch.rpm | 32 kB 00:00 (19/35): python-backports-1.0-8.el7.x86_64.rpm | 5.8 kB 00:00 (20/35): policycoreutils-2.5-34.el7.x86_64.rpm | 917 kB 00:00 (21/35): pyserial-2.6-6.el7.noarch.rpm | 124 kB 00:00 (22/35): python-backports-ssl_match_hostname-3.5.0.1-1.el7 | 13 kB 00:00 (23/35): python-ipaddress-1.0.16-2.el7.noarch.rpm | 34 kB 00:00 (24/35): python-jsonpatch-1.2-4.el7.noarch.rpm | 15 kB 00:00 (25/35): python-jsonpointer-1.9-2.el7.noarch.rpm | 13 kB 00:00 (26/35): python-prettytable-0.7.2-3.el7.noarch.rpm | 37 kB 00:00 (27/35): python-markupsafe-0.11-10.el7.x86_64.rpm | 25 kB 00:00 (28/35): python-requests-2.6.0-10.el7.noarch.rpm | 95 kB 00:00 (29/35): python-chardet-2.2.1-3.el7.noarch.rpm | 227 kB 00:00 (30/35): python-six-1.9.0-2.el7.noarch.rpm | 29 kB 00:00 (31/35): python-urllib3-1.10.2-7.el7.noarch.rpm | 103 kB 00:00 (32/35): python-jinja2-2.7.2-4.el7.noarch.rpm | 519 kB 00:00 (33/35): setools-libs-3.3.8-4.el7.x86_64.rpm | 620 kB 00:00 (34/35): python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00 (35/35): python-babel-0.9.6-8.el7.noarch.rpm | 1.4 MB 00:02 -------------------------------------------------------------------------------- Total 2.0 MB/s | 8.2 MB 00:04 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Importing GPG key 0xF4A80EB5: Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) " Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Package : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : libsepol-2.5-10.el7.x86_64 1/43 Updating : libselinux-2.5-15.el7.x86_64 2/43 Updating : audit-libs-2.8.5-4.el7.x86_64 3/43 Updating : libsemanage-2.5-14.el7.x86_64 4/43 Updating : libselinux-python-2.5-15.el7.x86_64 5/43 Installing : python-ipaddress-1.0.16-2.el7.noarch 6/43 Installing : python-six-1.9.0-2.el7.noarch 7/43 Installing : libsemanage-python-2.5-14.el7.x86_64 8/43 Installing : audit-libs-python-2.8.5-4.el7.x86_64 9/43 Installing : net-tools-2.0-0.25.20131004git.el7.x86_64 10/43 Updating : libselinux-utils-2.5-15.el7.x86_64 11/43 Updating : policycoreutils-2.5-34.el7.x86_64 12/43 Installing : setools-libs-3.3.8-4.el7.x86_64 13/43 Installing : libcgroup-0.41-21.el7.x86_64 14/43 Installing : python-prettytable-0.7.2-3.el7.noarch 15/43 Installing : libyaml-0.1.4-11.el7_0.x86_64 16/43 Installing : PyYAML-3.10-11.el7.x86_64 17/43 Installing : python-chardet-2.2.1-3.el7.noarch 18/43 Installing : python-jsonpointer-1.9-2.el7.noarch 19/43 Installing : python-jsonpatch-1.2-4.el7.noarch 20/43 Installing : python-backports-1.0-8.el7.x86_64 21/43 Installing : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 22/43 Installing : python-setuptools-0.9.8-7.el7.noarch 23/43 Installing : python-urllib3-1.10.2-7.el7.noarch 24/43 Installing : python-requests-2.6.0-10.el7.noarch 25/43 Installing : python-babel-0.9.6-8.el7.noarch 26/43 Installing : python-markupsafe-0.11-10.el7.x86_64 27/43 Installing : python-jinja2-2.7.2-4.el7.noarch 28/43 Installing : python-IPy-0.75-6.el7.noarch 29/43 Installing : checkpolicy-2.5-8.el7.x86_64 30/43 Installing : policycoreutils-python-2.5-34.el7.x86_64 31/43 Installing : pyserial-2.6-6.el7.noarch 32/43 Installing : cloud-init-19.4-7.el7.centos.6.x86_64 33/43 Updating : audit-2.8.5-4.el7.x86_64 34/43 Installing : cloud-utils-growpart-0.29-5.el7.noarch 35/43 Cleanup : policycoreutils-2.5-17.1.el7.x86_64 36/43 Cleanup : libsemanage-2.5-8.el7.x86_64 37/43 Cleanup : libselinux-utils-2.5-11.el7.x86_64 38/43 Cleanup : audit-2.7.6-3.el7.x86_64 39/43 Cleanup : libselinux-python-2.5-11.el7.x86_64 40/43 Cleanup : libselinux-2.5-11.el7.x86_64 41/43 Cleanup : libsepol-2.5-6.el7.x86_64 42/43 Cleanup : audit-libs-2.7.6-3.el7.x86_64 43/43 Verifying : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 1/43 Verifying : libselinux-2.5-15.el7.x86_64 2/43 Verifying : libselinux-python-2.5-15.el7.x86_64 3/43 Verifying : python-setuptools-0.9.8-7.el7.noarch 4/43 Verifying : pyserial-2.6-6.el7.noarch 5/43 Verifying : python-urllib3-1.10.2-7.el7.noarch 6/43 Verifying : audit-libs-2.8.5-4.el7.x86_64 7/43 Verifying : checkpolicy-2.5-8.el7.x86_64 8/43 Verifying : policycoreutils-2.5-34.el7.x86_64 9/43 Verifying : libsepol-2.5-10.el7.x86_64 10/43 Verifying : net-tools-2.0-0.25.20131004git.el7.x86_64 11/43 Verifying : python-IPy-0.75-6.el7.noarch 12/43 Verifying : python-jinja2-2.7.2-4.el7.noarch 13/43 Verifying : libselinux-utils-2.5-15.el7.x86_64 14/43 Verifying : policycoreutils-python-2.5-34.el7.x86_64 15/43 Verifying : python-six-1.9.0-2.el7.noarch 16/43 Verifying : setools-libs-3.3.8-4.el7.x86_64 17/43 Verifying : python-markupsafe-0.11-10.el7.x86_64 18/43 Verifying : audit-2.8.5-4.el7.x86_64 19/43 Verifying : python-babel-0.9.6-8.el7.noarch 20/43 Verifying : libsemanage-python-2.5-14.el7.x86_64 21/43 Verifying : libsemanage-2.5-14.el7.x86_64 22/43 Verifying : python-backports-1.0-8.el7.x86_64 23/43 Verifying : cloud-init-19.4-7.el7.centos.6.x86_64 24/43 Verifying : python-jsonpointer-1.9-2.el7.noarch 25/43 Verifying : python-jsonpatch-1.2-4.el7.noarch 26/43 Verifying : audit-libs-python-2.8.5-4.el7.x86_64 27/43 Verifying : python-chardet-2.2.1-3.el7.noarch 28/43 Verifying : libyaml-0.1.4-11.el7_0.x86_64 29/43 Verifying : python-prettytable-0.7.2-3.el7.noarch 30/43 Verifying : python-requests-2.6.0-10.el7.noarch 31/43 Verifying : python-ipaddress-1.0.16-2.el7.noarch 32/43 Verifying : PyYAML-3.10-11.el7.x86_64 33/43 Verifying : cloud-utils-growpart-0.29-5.el7.noarch 34/43 Verifying : libcgroup-0.41-21.el7.x86_64 35/43 Verifying : libselinux-utils-2.5-11.el7.x86_64 36/43 Verifying : libselinux-2.5-11.el7.x86_64 37/43 Verifying : libsemanage-2.5-8.el7.x86_64 38/43 Verifying : audit-2.7.6-3.el7.x86_64 39/43 Verifying : policycoreutils-2.5-17.1.el7.x86_64 40/43 Verifying : libsepol-2.5-6.el7.x86_64 41/43 Verifying : audit-libs-2.7.6-3.el7.x86_64 42/43 Verifying : libselinux-python-2.5-11.el7.x86_64 43/43 Installed: cloud-init.x86_64 0:19.4-7.el7.centos.6 cloud-utils-growpart.noarch 0:0.29-5.el7 Dependency Installed: PyYAML.x86_64 0:3.10-11.el7 audit-libs-python.x86_64 0:2.8.5-4.el7 checkpolicy.x86_64 0:2.5-8.el7 libcgroup.x86_64 0:0.41-21.el7 libsemanage-python.x86_64 0:2.5-14.el7 libyaml.x86_64 0:0.1.4-11.el7_0 net-tools.x86_64 0:2.0-0.25.20131004git.el7 policycoreutils-python.x86_64 0:2.5-34.el7 pyserial.noarch 0:2.6-6.el7 python-IPy.noarch 0:0.75-6.el7 python-babel.noarch 0:0.9.6-8.el7 python-backports.x86_64 0:1.0-8.el7 python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7 python-chardet.noarch 0:2.2.1-3.el7 python-ipaddress.noarch 0:1.0.16-2.el7 python-jinja2.noarch 0:2.7.2-4.el7 python-jsonpatch.noarch 0:1.2-4.el7 python-jsonpointer.noarch 0:1.9-2.el7 python-markupsafe.x86_64 0:0.11-10.el7 python-prettytable.noarch 0:0.7.2-3.el7 python-requests.noarch 0:2.6.0-10.el7 python-setuptools.noarch 0:0.9.8-7.el7 python-six.noarch 0:1.9.0-2.el7 python-urllib3.noarch 0:1.10.2-7.el7 setools-libs.x86_64 0:3.3.8-4.el7 Dependency Updated: audit.x86_64 0:2.8.5-4.el7 audit-libs.x86_64 0:2.8.5-4.el7 libselinux.x86_64 0:2.5-15.el7 libselinux-python.x86_64 0:2.5-15.el7 libselinux-utils.x86_64 0:2.5-15.el7 libsemanage.x86_64 0:2.5-14.el7 libsepol.x86_64 0:2.5-10.el7 policycoreutils.x86_64 0:2.5-34.el7 Complete!

3.3 编辑 cloud.cfg 文件

编辑 /etc/cloud/cloud.cfg 配置文件,在 cloud_init_modules 下添加以下内容

#添加内容 - resolv-conf #最终配置文件效果 [root@local ~]# vi /etc/cloud/cloud.cfg [root@local ~]# cat /etc/cloud/cloud.cfg users: - default disable_root: 1 ssh_pwauth: 0 mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2'] resize_rootfs_tmp: /dev ssh_deletekeys: 1 ssh_genkeytypes: ~ syslog_fix_perms: ~ disable_vmware_customization: false cloud_init_modules: - disk_setup - migrator - bootcmd - write-files - growpart - resizefs - set_hostname - update_hostname - update_etc_hosts - rsyslog - users-groups - ssh - resolv-conf cloud_config_modules: - mounts - locale - set-passwords - rh_subscription - yum-add-repo - package-update-upgrade-install - timezone - puppet - chef - salt-minion - mcollective - disable-ec2-metadata - runcmd cloud_final_modules: - rightscale_userdata - scripts-per-once - scripts-per-boot - scripts-per-instance - scripts-user - ssh-authkey-fingerprints - keys-to-console - phone-home - final-message - power-state-change system_info: default_user: name: centos lock_passwd: true gecos: Cloud User groups: [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 # vim:syntax=yaml

3.4 编辑 network 文件

编辑 /etc/sysconfig/network 配置文件,使其包含以下内容,避免访问 EC2 元数据服务时出现问题。

#添加内容 NOZEROCONF=yes #最终配置文件效果 [root@local ~]# vi /etc/sysconfig/network [root@local ~]# cat /etc/sysconfig/network #Created by anaconda NOZEROCONF=yes

3.5 编辑 grub 文件

编辑 /etc/default/grub 配置文件,使其包含以下引导选项内容,为了确保控制台的信息出现在 dashboard 的日志标签页中,以及 nova console-log 日志的输出内容中。

#添加内容 GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8" #最终配置文件效果 [root@local ~]# vi /etc/default/grub [root@local ~]# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet" GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8" GRUB_DISABLE_RECOVERY="true" #执行命令使参数生效 [root@local ~]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-c515a8f65bf14e138d99b2c451179327 Found initrd image: /boot/initramfs-0-rescue-c515a8f65bf14e138d99b2c451179327.img done

3.6 关闭 KVM 虚拟机

[root@local ~]# init 0

4 创建 QCOW2 镜像

注意:以下步骤在 虚机 中操作,不是 kvm 虚机,概念分不清?参考第一部分 约定

4.1 重置并清理镜像

[root@cloudcs ~]# virsh list --all Id Name State ---------------------------------------------------- - centos shut off [root@cloudcs ~]# virt-sysprep -d centos #输出 [ 0.0] Examining the guest ... [ 25.4] Performing "abrt-data" ... [ 25.4] Performing "backup-files" ... [ 26.3] Performing "bash-history" ... [ 26.4] Performing "blkid-tab" ... [ 26.4] Performing "crash-data" ... [ 26.4] Performing "cron-spool" ... [ 26.4] Performing "dhcp-client-state" ... [ 26.4] Performing "dhcp-server-state" ... [ 26.4] Performing "dovecot-data" ... [ 26.4] Performing "logfiles" ... [ 26.5] Performing "machine-id" ... [ 26.5] Performing "mail-spool" ... [ 26.5] Performing "net-hostname" ... [ 26.5] Performing "net-hwaddr" ... [ 26.5] Performing "pacct-log" ... [ 26.5] Performing "package-manager-cache" ... [ 26.5] Performing "pam-data" ... [ 26.5] Performing "passwd-backups" ... [ 26.5] Performing "puppet-data-log" ... [ 26.6] Performing "rh-subscription-manager" ... [ 26.6] Performing "rhn-systemid" ... [ 26.6] Performing "rpm-db" ... [ 26.6] Performing "samba-db-log" ... [ 26.6] Performing "script" ... [ 26.6] Performing "smolt-uuid" ... [ 26.6] Performing "ssh-hostkeys" ... [ 26.6] Performing "ssh-userdir" ... [ 26.6] Performing "sssd-db-log" ... [ 26.6] Performing "tmp-files" ... [ 26.6] Performing "udev-persistent-net" ... [ 26.6] Performing "utmp" ... [ 26.6] Performing "yum-uuid" ... [ 26.6] Performing "customize" ... [ 26.6] Setting a random seed [ 26.6] Setting the machine ID in /etc/machine-id [ 26.7] Performing "lvm-uuids" ...

4.2 创建并压缩镜像

#查找 centos 实例对应的磁盘文件 [root@cloudcs ~]# virsh domblklist centos Target Source ------------------------------------------------ vda /soft/disk/centos7.qcow2 hda - #创建并清理压缩镜像 [root@cloudcs ~]# virt-sparsify --compress /soft/disk/centos7.qcow2 /tmp/centos-cloud.qcow2 #输出 [ 0.0] Create overlay file in /tmp to protect source disk [ 0.1] Examine source disk 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 13.6] Fill free space in /dev/centos/root with zero 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00 [ 31.5] Clearing Linux swap on /dev/centos/swap [ 33.3] Fill free space in /dev/sda1 with zero [ 40.9] Copy to destination and make sparse [ 101.4] Sparsify operation completed with no errors. virt-sparsify: Before deleting the old disk, carefully check that the target disk boots and works correctly.

5 测试镜像启动

5.1 注册镜像

将镜像 centos-cloud.qcow2 注册到 OpenStack 平台,以下为图形化注册演示,命令行注册请参考博文 G020-OP-INS-RHEL-02 RedHat OpenStack 发放云主机(命令行)

5.2 创建云主机类型(规格)

5.3 发放云主机测试

注意:网络及路由请参考 G020 创建,务必保证路由及网关存在,否则无法获取到客户自定义主机名

观察启动流程及尝试登录,测试镜像正确无误

END

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:dremio InfoSchemaScanCreator 参考调用链
下一篇:SpringMVC 重定向参数RedirectAttributes实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~