1,找一台宿主机安装kvm并检查是否支持虚拟化,这里我用的是vmware来做宿主机

egrep '(vmx|svm)' /proc/cpuinfo

然后安装kvm:

yum install epel-release net-tools vim unzip zip wget  qemu-kvm libvirt virt-install bridge-utils

验证是否安装成功:

[root@osa ~]# lsmod | grep kvm
kvm_intel
kvm kvm_intel
irqbypass kvm

启动kvm

[root@osa ~]# systemctl start libvirtd

加入开机自启动

[root@osa ~]# systemctl enable libvirtd

2 删除默认网桥并新建网桥

virsh net-destroy default
virsh net-undefine default

备份默认网卡配置文件

cp ifcfg-ens160 ifcfg-ens160.bak

新建br0:

vim /etc/sysconfig/network-scripts/ifcfg-br0

BOOTPROTO=static
DEVICE=br0
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=172.100.60.80
NETMASK=255.255.255.0
GATEWAY=172.100.60.1
DNS1=172.100.60.31

修改原有的网卡配置文件ens160:

vim /etc/sysconfig/network-scripts/ifcfg-ens160

BOOTPROTO=none
DEVICE=ens160
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br0

然后重启网卡:

service network restart

3 开始创建kvm虚拟机:

首先创建img文件:

qemu-img create -f qcow2 centos-7.1.qcow2 20g

然后创建虚拟机:

virt-install --name centos-7.1. --ram  --vcpu  --cdrom=/data/iso/CentOS--x86_64-DVD1511.iso --disk path=/data/images/centos-7.1..qcow2,bus=vi
rtio --os-variant=rhel6 --bridge=br0 --vnclisten=0.0.0.0 --vncport= --vnc

然后使用vnc连接

然后更新系统安装一些自己需要的软件

4,安装choud-init jq acpid

yum -y install acpid cloud-init  jq

chkconfig acpid on

chkconfig cloud-init on

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

5,修改内核参数,并更新内核

编辑/etc/default/grub配置GRUB_CMDLINE_LINUX选项删除rhgb quiet 然后增加 console=tty0console=ttyS0,115200n8

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap console=tty0 console=ttyS0,115200n8"
grub2-mkconfig -o /boot/grub2/grub.cfg

6,编辑配置cloud.cfg文件

红色部分为修改部分

users:
- default disable_root: 0
ssh_pwauth: 1 locale_configfile: /etc/sysconfig/i18n
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '', '']
resize_rootfs_tmp: /dev
ssh_deletekeys:
ssh_genkeytypes: ~
syslog_fix_perms: ~ cloud_init_modules:
- migrator
- bootcmd
- write-files
- growpart
- resizefs
- set_hostname
- update_hostname
- update_etc_hosts
- rsyslog
- users-groups
- ssh cloud_config_modules:
- mounts
- locale
- set-passwords
- 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 system_info:
default_user:
name: root
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 # vim:syntax=yaml

7 关机

poweroff

8,执行清理任务在宿主机上

virt-sysprep -d CentOS7

9,拷贝镜像到glance节点上传镜像

openstack镜像制作centos7的更多相关文章

  1. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作centos7.8-15

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作centos7.8-15 欢迎加QQ群:1026880196 进行交流学习   制作OpenS ...

  2. openStack镜像制作

    参考链接: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/OpenStack/page/Creating ...

  3. OpenStack 镜像制作

    Contents [hide] 1 Centos6.5 img制作 1.1 基础环境安装 1.2 下载或从本地上传系统镜像 1.3 启动服务 1.4 建立镜像文件 1.5 通过virt-install ...

  4. OpenStack镜像制作-CentOS

    云平台中镜像还是很重要的,提供各种定制化的镜像使得用户体验更好. 最开始玩OpenStack的时候用的是安装文档中提到的cirros,其密码cubswin:) 刚开始感觉很怪,现在已经可以随手打出.p ...

  5. openstack镜像制作思路、指导及问题总结

    一.思路就4步:1.创建镜像文件2.用nova-compute自带的kvm,启动.iso文件,用vncviewer完成OS的安装过程3.OS安装完毕,停止虚拟机,kvm重启镜像,安装必要的软件4.后续 ...

  6. openStack 镜像制作,镜像裁剪一般步骤

    镜像制作一般裁剪步骤 1, linux系统安装CentOs/RHEL Desktop桌面系统,分区划分但分区/挂载点.设置Selinux=disabled关闭iptables安装cloud-init[ ...

  7. OpenStack 镜像制作之cloud-init

    Contents [hide] 1 背景 2 密钥登录 2.1 密钥登录的原理 2.1.1 openstack的私钥 2.1.2 密码注入 = 2.1.3 实际遇到的情况 2.1.4 解决办法 背景 ...

  8. 云计算---openstack镜像制作

    一:本地部署KVM 1.安装KVM 1.1安装须知 查看CPU是否支持kvm完全虚拟机. [root@LINUX ~]# grep "flags" /proc/cpuinfofla ...

  9. 云计算---openstack镜像制作详解

    一:本地部署KVM 1.安装KVM 1.1安装须知 查看CPU是否支持kvm完全虚拟机. [root@LINUX ~]# grep "flags" /proc/cpuinfofla ...

随机推荐

  1. kylin配置

    hadoop 2.7.4,hive 2.1.1,hbase 1.4.4 配置好的情况下 下载apache-kylin-2.1.0-bin-hbase1x.tar.gz 解压后,配置环境变量 expor ...

  2. pyqt-QGrapicsView类

    QGrapicsView类 QGraphicsView提供一个显示QGraphicsScene内容的窗口,该窗口可以滚动,可以在构造时候把场景对象作为参数,或者之后使用setScene()来设置vie ...

  3. Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 报错

    项目中遇到的获取https的数据接口数据时,Unexpected error: java.security.InvalidAlgorithmParameterException: the trustA ...

  4. 如何实现word上传服务器

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  5. spring boot 与servlet

    servlet:      基于java的web组件,用于生成动态内容,由容器管理.      类似其他java技术组件,由平台无关的java类组成,并且由java web服务器加载执行   serv ...

  6. C语言典型编程2

    关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言.同一问题,算法多种. //任意整数的任意次方取后3位(算数取位)#include<st ...

  7. Mysql数据存在更新,不存在则插入的实现

    有些情况下,我们需要对数据库进行插入或更新操作的时候需要先根据特定的字段去判断是否已存在,然后做出不同的插入或者跟新操作. replace函数: 我们要在需要判断的字段上建立一个唯一索引,且这个字段不 ...

  8. python windows环境响铃

    import winsound winsound.Beep(600,1000) #其中600表示声音大小,1000表示发生时长,1000为1秒

  9. jquery的$(selector).each(function(index,element))和$.each(dataresource,function(index,element))的区别

    $(selector).each(function(index,element)) 定义和用法 each() 方法规定为每个匹配元素规定运行的函数. $(selector).each(function ...

  10. ES6学习笔记(字符串和数值)

    (一)字符串的扩展 1.字符串的遍历 for (let codePoint of 'foo') { console.log(codePoint) } // "f" // " ...