自制openstack centos7.8镜像

默认密码:000000,可以在下方c7op.ks文件中修改默认密码为其他。
安装KVM环境:(宿主机)

[root@locahost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@locahost ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@locahost ~]# yum install -y kvm virt-*  libvirt  bridge-utils qemu-img qemu-kvm-tools
[root@locahost ~]# systemctl start libvirtd
[root@locahost ~]# systemctl enable libvirtd
[root@locahost ~]# echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
[root@locahost ~]# sysctl -p

定义文件变量:(宿主机)

[root@locahost ~]# mkdir /kvm
[root@locahost ~]# ksname=c7op.ks
[root@locahost ~]# kvname=centos7-8
[root@locahost ~]# ISO=CentOS-7-x86_64-Everything-2003

编写ks文件与移动镜像:(宿主机)

[root@locahost ~]# cd /kvm
[root@locahost ~]# vi c7op.ks            #ks文件在最页面最下方
[root@locahost ~]# mv CentOS-7-x86_64-Everything-2003 /kvm

创建KVM虚拟机:(宿主机)

[root@locahost ~]# qemu-img create -f qcow2 /kvm/$kvname.qcow2 5G
[root@locahost ~]# virt-install --name $kvname --ram 2048 --vcpus 2 --os-type linux --os-variant rhel7 --arch=x86_64 --network network=default,model=virtio --disk path=/kvm/$kvname.qcow2,format=qcow2 \
 --location /kvm/$ISO --console pty,target_type=serial --initrd-inject=/kvm/$ksname --extra-args="console=ttyS0,115200n8 edd=off serial ks=file:/$ksname" --graphics none

重启虚拟机并连接:(宿主机)
# 安装完成后,按键Ctrl + ] 退出kvm虚拟机
# 密码在c7op.ks文件提前设置的

[root@locahost ~]# virsh destroy $kvname #强制关闭电源
[root@locahost ~]# cp /kvm/$kvname.qcow2{,.bak} #备份
[root@locahost ~]# ls -hl /kvm/$kvname*
[root@locahost ~]# virsh start   $kvname #开启
[root@locahost ~]# virsh console $kvname #登录

时区配置:(虚拟机)

[root@CentOS7 ~]# rm -f /etc/localtime
[root@CentOS7 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@CentOS7 ~]# ll /etc/localtime

使用阿里源:(虚拟机)

[root@CentOS7 ~]# [[ `uname -r` == *el6* ]] && { Ve=6; } || { Ve=7; }
[root@CentOS7 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-$Ve.repo
[root@CentOS7 ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-$Ve.repo
[root@CentOS7 ~]# sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo   # 删除阿里内网地址#
[root@CentOS7 ~]# yum clean all

安装插件包:(虚拟机)

[root@CentOS7 ~]# yum install -y acpid cloud-init cloud-utils jq parted qemu-guest-agent
[root@CentOS7 ~]# [[ `uname -r` == *el6* ]] && { yum install -y dracut-modules-growroot; }

cloud-int开启root密码登录:(虚拟机)

[root@CentOS7 ~]# sed -i 's/disable_root: 1/disable_root: 0/g' /etc/cloud/cloud.cfg
[root@CentOS7 ~]# sed -i 's/ssh_pwauth:   0/ssh_pwauth:   1/g' /etc/cloud/cloud.cfg
[root@CentOS7 ~]# echo 'NETWORKING=yes
NOZEROCONF=yes'>/etc/sysconfig/network

SSH配置:(虚拟机)

[root@CentOS7 ~]# sed  -i 's/^PasswordAu.*$/PasswordAuthentication yes/' /etc/ssh/sshd_config
[root@CentOS7 ~]# sed  -i 's/^GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config
[root@CentOS7 ~]# sed  -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config
[root@CentOS7 ~]# systemctl restart sshd

开机启动软件:(虚拟机)

[root@CentOS7 ~]# systemctl enable acpid cloud-init qemu-guest-agent
[root@CentOS7 ~]# sed -i 's/timeout=5/timeout=2/g' /boot/grub2/grub.cfg

清理垃圾数据:(虚拟机)

[root@CentOS7 ~]# yum clean all
[root@CentOS7 ~]# rm -rf /tmp/*
[root@CentOS7 ~]# rm -rf /root/*
[root@CentOS7 ~]# rm -f /var/log/wtmp /var/log/btmp
[root@CentOS7 ~]# >/var/log/cloud-init.log

删除网卡信息:(虚拟机)

[root@CentOS7 ~]# sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth*
[root@CentOS7 ~]# sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth*
[root@CentOS7 ~]# >/etc/udev/rules.d/7*.rules
[root@CentOS7 ~]# history -c
[root@CentOS7 ~]# poweroff #关机

清理任务后压缩文件:(宿主机)

[root@kvm ~]# virt-sysprep -d $kvname
[root@kvm ~]# virt-sparsify --compress /kvm/$kvname.qcow2 /kvm/$kvname-one.qcow2

上传镜像到OpenStack:(控制节点)

[root@controller ~]# openstack image create "centos7.8"  --file centos7-8-one.qcow2 --disk-format qcow2 --container-format bare --progress</kvm/centos7-8-one.qcow2

c7op.ks文件内容:
[root@kvm ~]# cat /kvm/c7op.ks

# centos 7 自动安装脚本
# openstack镜像制作,centos7自动安装ks脚本
# 使用实例
#by edison zhou

install
cdrom

text
keyboard us
lang en_US.UTF-8
authconfig --enableshadow --passalgo=sha512
rootpw 000000
skipx
timezone Asia/Shanghai --isUtc
firewall --enabled --port=22:tcp
selinux --disabled
firewall --disabled

#设置网络
bootloader --location=mbr  --driveorder=sda,sdb  #--append="net.ifnames=0 biosdevname=0"
network  --bootproto=dhcp   --onboot=yes --nameserver=8.8.8.8
network  --hostname=CentOS7

#分区
zerombr
clearpart --all --initlabel
#part /boot --asprimary --fstype="ext4" --size=300 --ondrive=sda
#part swap --fstype="swap" --size=2048
part / --asprimary --fstype=xfs --grow --size=1

reboot

#安装的软件包
%packages
@base
@core
@fonts
net-tools
ntp
tree
wget
vim
openssh
%end

%post
%end

提醒:在openstack中创建实例时可能会进入Probing EDD (edd=off to disable)…不用担心,耐心等待片刻就可以进去,如有大神发现解决方案,请私信或留言。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值