openstack鏡像之centos


環境聲明:

os centos6

openstack mitaka

本文修改主機密碼的方式爲 metadata 注入方式,在雲主機內部再配合一個修改密碼的腳本,達到重置雲主機密碼的作用

原文鏈接:http://readshlinux.blog.51cto.com/9322509/1900532


參考文檔:

https://docs.openstack.org/image-guide/centos-image.html  

http://www.cnblogs.com/CLTANG/p/4332612.html



本文就不說安裝虛擬機那一部分啦,不會的親,請自行百度,google


鏡像製作開始

1.修改主機的網卡配置文件,將網卡改爲開機啓動

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

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=dhcp

/etc/init.d/network restart



2.禁用zeroconf路由,實例訪問元數據,必須要禁用默認的zeroconf路由

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



3.安裝acpid,cloud-init包

acpid服務作用:重新引導或關閉實例

yum -y install epel-release && yum makecache && yum -y install acpid cloud-init 
chkconfig acpid on
chkconfig cloud-init on
chkconfig cloud-init-local on



4.配置控制檯日誌顯示(nova console-log)


添加本文紅色字體內容即可

vim /boot/grub/menu.lst

default=0

timeout=5

serial --unit=0 --speed=115200

terminal --timeout=10 console serial

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.32-431.el6.x86_64)

        root (hd0,0)

        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb console=tty0 console=ttyS0,115200n8 quiet

        initrd /initramfs-2.6.32-431.el6.x86_64.img



5.配置cloud-init

vim /etc/cloud/cloud.cfg


users:

 - default

disable_root: 0

ssh_pwauth:   1

... ...


system_info:

  default_user:

    name: root

    lock_passwd: true

... ... 




6.修改、重置密碼腳本(同一個)

#!/bin/bash
#
curl="curl http://169.254.169.254/openstack/latest/meta_data.json"
changepw=`$curl | sed 's/{"random_seed.*{"admin_pass": "//' | sed 's/}, "project_id.*//' | awk -F'"' '{print $5}'`
mima=`$curl | sed 's/{"random_seed.*{"admin_pass": "//' | sed 's/}, "project_id.*//' | awk -F'"' '{print $1}'`
if [ $changepw == True ]
then
echo root:$mima | chpasswd
fi


7.開機啓動服務腳本

vim /etc/init.d/reset-root-pw 


#!/bin/bash
#
# reset-root-pw         Start up reset-root-pw the  server daemon
#
# chkconfig: 5000 55 25
# description: reset-root-pw is yindun-cloud daemon
#
RESET_PW_root=/sbin/reset-root-pw
$RESET_PW_root &> /dev/null


8.爲上面兩個腳本添加相應的權限,並加入到開機自啓

chmod +x /etc/init.d/reset-root-pw
chmod +x /sbin/reset-root-pw
chkconfig reset-root-pw --add
chkconfig reset-root-pw on
chkconfig reset-root-pw --list




做到現在的話鏡像就快要完成啦,還需要其他功能的,自行百度添加吧

不需要的話直接關機就ok


9.鏡像配置好後,將其壓縮就可以上傳到openstack鏡像列表中啦

下面是我做鏡像收尾時用到的命令


顯示kvm中所有虛擬機

virsh list --all


執行清理任務,如,之前的歷史命令,mac地址,ip地址等 

virt-sysprep -d CentOS6


在kvm中刪除虛擬機,僅僅刪除xml文件,不會刪除鏡像文件

virsh undefine CentOS6


將鏡像壓縮

qemu-img convert -c -O qcow2    壓縮之前的路徑+名字 壓縮之後的路徑+名字













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章