成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手動制作Openstack鏡像

開發 開發工具 OpenStack
本文以制作Centos7.2鏡像為例,詳細介紹制作鏡像的步驟。

[[187428]]

本文以制作Centos7.2鏡像為例,詳細介紹制作鏡像的步驟,該鏡像上傳到Openstack Glance中,相對于官方鏡像,增加如下幾個功能:

  • 支持密碼注入功能(nova boot時通過--admin-pass參數指定設置初始密碼)
  • 支持根分區自動調整(根分區自動調整為flavor disk大小,而不是原始鏡像分區大小)
  • 支持動態修改密碼(使用nova set-password命令可以修改管理員密碼)

本文制作鏡像的宿主機操作系統為Ubuntu14.04,開啟了VT功能(使用kvm-ok命令驗證)并安裝了libvirt系列工具,包括virsh、virt-manager、libguestfs-tools等。

1.下載鏡像

直接訪問官方鏡像地址下載,注意選擇中國的鏡像源,相對國外鏡像下載速率比較快,進入后選擇版本為7.2.1511,在isos目錄下下載x86_64的Minimal鏡像,如果網速不給力,最好不要選擇下載Netinstall鏡像,因為這會在安裝時聯網下載大量的軟件包,重新安裝時需要重新下載這些軟件包,浪費大量的時間。

2.創建虛擬機

首先需要創建一個qcow2格式鏡像文件,用于作為虛擬機的磁盤,大小10G足矣。

  1. qemu-img create -f qcow2 centos.qcow2 10G # create disk image 

使用以下腳本快速創建并啟動虛擬機:

  1. NAME=centos 
  2. ROOT_DISK=centos.qcow2 
  3. CDROM=`pwd`/CentOS-7-x86_64-Minimal-1511.iso 
  4. sudo virt-install --virt-type kvm --name $NAME --ram 1024 \ 
  5.   --disk $ROOT_DISK,format=qcow2 \ 
  6.   --network network=default \ 
  7.   --graphics vnc,listen=0.0.0.0 --noautoconsole \ 
  8.   --os-type=linux --os-variant=rhel7 \ 
  9.   --cdrom=$CDROM 

啟動完成后,使用vnc client連接,個人認為直接使用virt-manager或者virt-viewer更直接方便。

3. 安裝OS

進入虛擬機控制臺可以看到Centos的啟動菜單,選擇Install Centos 7,繼續選擇語言后將進入INSTALLION SUMMARY,其中大多數配置默認即可,SOFTWARE SELECTION選擇Minimal Install,INSTALLATION DESTINATION需要選擇手動配置分區,我們只需要一個根分區即可,不需要swap分區,文件系統選擇ext4,存儲驅動選擇Virtio Block Device,如圖:

配置完成后就可以開始安裝了,在CONFIGURATION中設置root臨時密碼,自己記住即可,制作完后cloud-init將會重新設置root初始密碼。

大約幾分鐘后,即可自動完成安裝配置工作,最后點擊右下角的reboot重啟退出虛擬機。

4. 配置OS

安裝好系統后,還需要進行配置才能作為glance鏡像使用。首先需要啟動虛擬機(雖然上一步執行的是reboot,但貌似并不會自動啟動):

  1. sudo virsh start centos 

客戶的云主機需要支持root ssh遠程登錄,因此需要開啟root遠程ssh登錄功能,修改配置文件/etc/ssh/sshd_config并修改PermitRootLogin值為yes,重啟ssh服務生效:

  1. sudo systemctl restart sshd 

接下來的所有操作均通過宿主機ssh登錄到虛擬機執行,這樣方便復制(默認終端不和宿主機共享粘貼緩沖區)。

為了加快安裝速度,建議配置本地軟件源倉庫,若沒有本地鏡像倉庫,則選擇國內的軟件源,會相對官網的速度下載要快,提高執行效率。

  1. mv my_repo.repo /etc/yum.repos.d/ 

hypervisor通過發送對應的信號、事件等到虛擬機中,虛擬機根據接收的信號或者事件執行相應的操作,比如關機、重啟等。虛擬機需要開啟acpid(Advanced Configuration and Power Interface event daemon)服務,關于acpid的更多資料,參考Arch文檔中關于acpid的介紹以及使用。為了開啟該服務,首先需要安裝acpid服務,并設置開機自啟動:

  1. yum install -y acpid 
  2. systemctl enable acpid 

為了方便調試排錯,虛擬機需要打開boot日志功能,并指定console,這樣nova console-log才能獲取虛擬機啟動時的日志。修改配置文件/etc/default/grub,設置GRUB_CMDLINE_LINUX為:

  1. GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200n8" 

Openstack動態修改root密碼以及密鑰,需要虛擬機內部安裝agent程序,agent會創建一個虛擬串行字符設備,用于和外部qemu通信,qemu通過這個虛擬字符設備向agent發送事件指令,agent接收事件并執行相應的指令完成用戶功能,更多關于qemu-guest-agent請參考官方文檔。ISO鏡像中默認沒有預安裝agent,我們需要手動安裝qemu-guest-agent:

  1. yum install -y qemu-guest-agent 

配置qemu-ga,修改/etc/sysconfig/qemu-ga,配置內容為:

  1. TRANSPORT_METHOD="virtio-serial" 
  2. DEVPATH="/dev/virtio-ports/org.qemu.guest_agent.0" 
  3. LOGFILE="/var/log/qemu-ga/qemu-ga.log" 
  4. PIDFILE="/var/run/qemu-ga.pid" 
  5. BLACKLIST_RPC="" 
  6. FSFREEZE_HOOK_ENABLE=0 

虛擬機需要從metadata服務中獲取元數據,比如啟動時的主機名、初始化密碼等,為了使虛擬機能夠和外部的metadata service通信,需要禁用默認的zeroconf route:

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

最后安裝cloud-init,cloud-init是虛擬機第一次啟動時執行的腳本,主要負責從metadata服務中拉取配置信息,完成虛擬機的初始化工作,比如設置主機名、初始化密碼以及注入密鑰等。我們通常會實現自己的cloud-init,用來完成虛擬機的一些定制化初始化工作,如果沒有自己的cloud-init,直接從官方源下載即可。

  1. # yum install -y cloud-init-0.7.6-bzr1.el7.centos.noarch.rpm 
  2. yum install -y cloud-init 

虛擬機制作鏡像時指定了根分區大小(比如我們設置為10GB),為了使虛擬機能夠自動調整為flavor disk指定的根磁盤大小,即自動擴容, 我們需要安裝glowpart(老版本叫growroot)并完成以下配置:

  1. yum update -y 
  2. yum install -y epel-release 
  3. yum install -y cloud-utils-growpart.x86.64 
  4. rpm -qa kernel | sed 's/^kernel-//'  | xargs -I {} dracut -f /boot/initramfs-{}.img {} 

自此,鏡像基本制作完成了,最后執行關機操作。

  1. /sbin/shutdown -h now 

5.清理工作

在宿主機上運行以下命名,移除宿主機信息,比如mac地址等。

  1. virt-sysprep -d centos # cleanup tasks such as removing the MAC address references 

最后,刪除虛擬機,因為鏡像已經制作完成,可以上傳到glance了。

  1. virsh undefine centos # 刪除虛擬機 

6.上傳鏡像

鏡像制作完成,上傳centos.qcow2到glance服務中,如果使用ceph作為存儲后端,為了提高上傳速度(使用glance上傳走的http方式,必然很慢),我們需要另辟蹊徑,我們只使用glance創建實例記錄,并不使用glance上傳鏡像,而是借用ceph rbd的import操作實現鏡像上傳,包括以下幾個步驟:

  • 使用qemu-img轉換qcow2格式為raw格式。
  1. qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw 
  • 使用glance create創建一條鏡像記錄并記錄ID(不需要指定文件路徑以及其他屬性,只是占個坑)
  1. glance image-create 
  • 使用ceph import鏡像并設置快照(glance實現)
  1. rbd --pool=glance_images import  centos.raw  --image=$IMAGE_ID --new-format --order 24 
  2. rbd --pool=glance_images --image=$IMAGE_ID --snap=snap snap create 
  3. rbd --pool=glance_images --image=$IMAGE_ID --snap=snap snap protect 
  • 使用glance命令設置鏡像的location url:
  1. FS_ROOT=`ceph -s | grep cluster | awk '{print $2}'
  2. glance location-add --url rbd://$FS_ROOT/glance_images/$IMAGE_ID/snap $IMAGE_ID 
  • 完善鏡像信息,比如name等其他屬性:
  1. glance image-update --name="centos-7.2-64bit" --disk-format=raw --container-format=bare 
  2.  
  3. # 配置qemu-ga 
  4. glance image-update --property hw_qemu_guest_agent=yes $IMAGE_ID 
  5.  
  6. # ... 其他屬性配置 

務必設置property的hw_qemu_guest_agent=yes,否則libvert啟動虛擬機時不會生成qemu-ga配置項,導致虛擬機內部的qemu-ga由于找不到對應的虛擬串行字符設備而啟動失敗,提示找不到channel。

7.驗證

首先使用創建的鏡像啟動一臺新云主機(終于叫云主機,不叫虛擬機了==),如果使用nova CLI工具,需要傳遞--admin-pass參數并指定密碼,并指定flavor,要求disk大小為20GB。如果使用Openstack dashborad創建,需要簡單配置下dashborad使其支持配置云主機密碼面板,如圖:

創建成功后進入控制臺,使用root賬號以及設置的新密碼,如果使用創建時設置的密碼登錄成功,說明注入密碼成功。

接下來運行以下命令檢查磁盤是否自動調整大小:

  1. lsblk 
  2. df -h 

如圖:

鏡像原始根分區大小為10GB,如果lsblk顯示vda大小為20GB,說明文件系統自動識別了磁盤大小。如果df顯示/dev/sda1size為20GB,說明根分區自動完成了擴容操作。

接下來測試動態修改密碼,由于默認dashboard頁面沒有實現修改密碼面板功能,我們需要在后臺操作。

首先使用nova list獲取云主機ID,然后調用nova set-password命令修改密碼:

  1. nova set-password $ID 

重復輸入兩次新的密碼,如果執行成功,不會有任何輸出。

回到終端,退出之前的登錄,然后使用新的密碼重新登錄,如果登錄成功,則說明動態修改密碼成功!

若以上其中一個步驟失敗,則說明鏡像制作失敗,請檢查以上步驟是否疏漏。

【本文是51CTO專欄作者“付廣平”的原創文章,如需轉載請通過51CTO獲得聯系】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2012-02-03 09:22:57

2011-12-02 10:01:09

OpenNebulaUbuntu

2020-11-25 08:57:29

Redis Docke

2015-04-09 11:05:55

openstack公有云openstack鏡像

2009-12-22 16:49:38

Linux制作軟盤

2015-09-22 13:32:03

降低成本OpenStack自動回收

2009-08-14 09:06:58

Daemon ToolWindows 7鏡像

2009-04-24 09:13:15

Ubuntu 9.04正式版鏡像

2009-04-24 14:54:32

LinuxUbuntu 9.04正式版

2010-04-22 10:42:22

2009-11-17 10:45:47

ubuntuLive-USB安裝系統

2010-06-28 10:18:13

桌面虛擬化虛擬化MED-V

2022-09-21 08:46:59

微軟Windows 11

2013-01-08 10:59:14

IBMdW

2012-11-30 09:56:00

OpenStackAlan ClarkSUSE

2015-03-04 13:33:20

OpenStack K云平臺開源

2013-11-11 15:00:50

OpenStack

2017-05-03 09:49:14

OpenStack私有云搭建

2013-11-21 09:08:12

OpenStack

2012-09-07 10:50:58

開源云平臺OpenStackCloudStack
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品一区二区 | 日韩国产免费观看 | 欧美1区2区 | 久久精品亚洲一区二区三区浴池 | 国产香蕉视频在线播放 | 91视频网址 | 亚洲激情在线观看 | 色婷婷狠狠 | 另类专区亚洲 | 免费国产一区二区视频 | 欧美天堂 | 请别相信他免费喜剧电影在线观看 | 午夜亚洲| 亚洲欧洲在线视频 | 国产精品免费在线 | 黄色大片观看 | 精品中文字幕一区二区三区 | 国产精品视频久久 | 日韩福利电影 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 天天干天天操天天爽 | 中文字幕高清av | 黄色网址在线播放 | 成人免费观看男女羞羞视频 | 视频一区二区中文字幕 | 欧美在线a | 日韩欧美国产精品 | 99久久亚洲 | 一级毛片免费看 | 欧美日韩a | 国产亚洲精品久久19p | 久久久精品国产 | 国产一区二区三区色淫影院 | 亚洲区一区二区 | 精品蜜桃一区二区三区 | 亚洲综合色自拍一区 | 夜夜操操操 | 亚洲精品大片 | 成人久久久久 | 国产精品99久久久久久动医院 | 视频二区国产 |