制作OpenStack centos7鏡像


 

制作OpenStack centos7鏡像 

##制作OpenStack centos7鏡像   

##宿主機操作
#首先創建一個qcow2格式鏡像文件,用於虛擬機的根磁盤,大小10G就夠了。

mkdir -p /data/kvms/images/
cd /data/kvms/images/

qemu-img create -f qcow2 centos.qcow2 10G 

#使用以下腳本創建並啟動虛擬機:
###先下載iso鏡像
###wget http://vault.centos.org/centos/6.9/isos/x86_64/CentOS-6.9-x86_64-minimal.iso

wget http://vault.centos.org/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso

NAME=centos
ROOT_DISK=centos.qcow2
CDROM=/data/kvms/images/CentOS-7-x86_64-Minimal-1708.iso

virt-install --virt-type kvm --name $NAME --ram 1024 --disk $ROOT_DISK,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --location=$CDROM 

#virt-install --name $NAME --ram 1024 --disk $ROOT_DISK,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --cdrom=$CDROM 

##查看vnc端口
virsh vncdisplay centos

#####:0     0代表是5900,大於0的從5900之后遞增。例如,顯示:1,則代表5901


##虛擬機操作

##如果沒有啟動成功,可以在server端 執行virsh reboot centos 命令。
##再連接,安裝acpi。acpid服務是用於可以讓hypervisior可以重啟或關閉虛擬機
yum install -y acpid

chkconfig acpid on

##安裝cloud-init。用於啟動虛擬機時候nova-meatdata服務進行密鑰注入到虛擬機。
yum install -y epel-release.noarch
yum install -y cloud-init

##修改cloud-init啟動模塊加載resolv-conf。
###在/etc/cloud/cloud.cfg文件中,cloud_init_modules屬性下添加一行:- resolv-conf
sed -i '/cloud_init_modules:/ a - resolv-conf' /etc/cloud/cloud.cfg
grep -A2 'cloud_init_modules' /etc/cloud/cloud.cfg

##開啟sshd密碼認證
sed -i 's/^ssh_pwauth:.*/ssh_pwauth:1/g' /etc/cloud/cloud.cfg


##安裝 cloud-utils-growpart。該然間是支持虛擬機磁盤擴容。
yum install -y cloud-utils-growpart

#####如果上面步驟不能安裝cloud-init,則可以在/etc/rc.d/rc.local文件中,在touch /var/lock/subsys/local這行前加入以下腳本

cat >>/etc/rc.local <<EOF [ \$(rpm
-aq |grep -c 'cloud-utils-growpart') -eq 0 ] && sed '/touch /var/lock/subsys/local/ a if [ ! -d /root/.ssh ]; then mkdir -p /root/.ssh chmod 700 /root/.ssh fi # Fetch public key using HTTP ATTEMPTS=30 FAILED=0 while [ ! -f /root/.ssh/authorized_keys ]; do curl -f http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key >/tmp/metadata-key 2>/dev/null if [ \$? -eq 0 ]; then cat /tmp/metadata-key >> /root/.ssh/authorized_keys chmod 0600 /root/.ssh/authorized_keys restorecon /root/.ssh/authorized_keys rm -f /tmp/metadata-key echo "Successfully retrieved public key from instance metadata" echo "*****************" echo "AUTHORIZED KEYS" echo "*****************" cat /root/.ssh/authorized_keys echo "*****************" fi done
EOF
############# ##關閉zeroconf route echo "NOZEROCONF=yes" >> /etc/sysconfig/network tail /etc/sysconfig/network ###配置console,為了確保控制台的信息出現在 dashboard 的日志標簽頁中,以及 nova console-log 輸出中。 ##centos 7 修改/etc/default/grub的配置GRUB_CMDLINE_LINUX選項. 刪除 rhgb quiet 添加 console=tty0 console=ttyS0,115200n8。 ###例子: #GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200n8 sed -i 's#GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"#GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap console=tty0 console=ttyS0,115200n8"#g' /etc/default/grub grep GRUB_CMDLINE_LINUX /etc/default/grub ####更新grub配置 grub2-mkconfig -o /boot/grub2/grub.cfg ###關閉虛擬機 shutdown -h now ##宿主機操作 ##在宿主機上運行以下命名,移除宿主機信息,比如mac地址等。 yum install -y libguestfs-tools

########清除網絡相關硬件生成信息
virt
-sysprep -d centos ##刪除虛擬機,鏡像制作完成。 ##virsh undefine centos source /root/admin-openrc.sh glance image-create --file /data/kvms/images/centos.qcow2 --disk-format qcow2 --container-format bare --name CentOS-7.4 --progress

 

/CentOS-7-x86_64-Minimal-1708.iso


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM