制作 OpenStack Linux 鏡像 - 每天5分鍾玩轉 OpenStack(151)


這是 OpenStack 實施經驗分享系列的第 1 篇。

 

OpenStack 的 instance 是通過 Glance 鏡像部署的,所以准備鏡像是必須要做的工作。本節介紹 Linux 鏡像的制作方法,后面還會討論 Windows 鏡像。

下載clould 鏡像

最簡單的方法是使用標准鏡像。主流的Linux發行版都提供可以在 OpenStack 中直接使用的cloud鏡像,下載地址:

CentOS6:http://cloud.centos.org/centos/6/images/


CentOS7:http://cloud.centos.org/centos/7/images/


Ubuntu14.04:http://cloud-images.ubuntu.com/trusty/current/


Ubuntu16.04:http://cloud-images.ubuntu.com/xenial/current/


下面以Ubuntu16.04為例演示如何將標准鏡像導入 Glance。

創建Glance鏡像

登錄 OpenStack,打開 “項目->Compute->鏡像”菜單。



點擊“創建鏡像”按鈕。

在創建頁面填寫鏡像相關信息,其中包括:


  1. 鏡像名稱為“Ubuntu 16.04”


  2.  “鏡像源”選擇“鏡像文件”


  3. 點擊“選擇文件”定位Ubuntu 16.04的Cloud image文件xenial-server-cloudimg-amd64-disk1.img


  4. “鏡像格式”選擇“QCOW2”


  5. 最小磁盤填寫“20”,這相當於設置instance啟動盤的最小容量


  6. 勾選“共有”選擇框,這樣所有Project都可以使用該鏡像


點擊“創建鏡像”按鈕,開始上傳鏡像。完成后,新的鏡像將出現在鏡像列表上。


定制鏡像

cloud 鏡像是標准鏡像,沒有圖像界面,是美國時區,而且只能通過密鑰登錄。可以根據需要對該鏡像進行定制,其方法是:


  1. 通過 cloud 鏡像部署出一個實例。


  2. 定制該實例。


  3. 創建該實例的快照,該快照將保存在Glance中。


  4. 以后通過該快照部署新的實例。


下面我們以CentOS標准鏡像為例演示定制鏡像的每個步驟,定制內容包括:添加圖形界面,設置中國時區,設置ssh密碼登錄等。

1. 通過cloud鏡像部署出一個實例

進入 “項目->Compute->鏡像”菜單,點擊鏡像“CentOS6”后面的“啟動雲主機”按鈕。



命名為“centos6-vm”。


 

因為cloud鏡像默認是通過密鑰對訪問,點擊“訪問&安全”標簽,選擇事先創建好的密鑰對“template”。



點擊“運行”, centos6-vm部署成功。



 在“項目->Compute->訪問&安全”菜單中管理密鑰對。“template”就是在這里創建的。也支持已有的密鑰對。


 

在創建密鑰時下載並保管好私鑰文件template.pem,下面通過此文件登錄centos6-vm。


ssh -i <key-path>/template.pem centos@172.17.24.97


然后切換到root用戶:

sudo su –


2. 定制該實例

設置中國時區

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime



設置yum 源


因為要安裝圖形等相關包,yum源需提前准備好(當然也可以用官網的源)。然后編輯 /etc/yum.repos.d/CentOS-Base.repo 



如果是CentOS7,內容如下:


 

安裝開發工具和圖形界面


CentOS6安裝如下包:

yum groupinstall "Desktop"

yum groupinstall "X Window System"

yum groupinstall "Development tools"

 

CentOS7安裝如下包:

yum groupinstall "Server with GUI"

yum groupinstall "GNOME Desktop"

yum groupinstall "Development Tools"

 

設置系統默認啟動圖形界面


CentOS6,編輯 /etc/inittab,



 

CentOS7,執行 systemctl set-default graphical.target



設置 root密碼


設置root密碼默認為“passw0rd”


 

允許root 通過密碼ssh登錄


編輯 /etc/ssh/sshd_config,作以下修改。



重啟ssh服務


service sshd restart



 

修改 /etc/cloud/cloud.cfg

cloud image都是用 cloudinit 初始化instance,比如配置網絡,extend 系統盤等,cloudinit 所有的配置都寫在/etc/cloud/cloud.cfg,下面的配置將允許 root 通過password  ssh 登錄。




至此,centos6-vm已經可以啟動圖形界面,並且可以用密碼通過ssh登錄了。

 

安裝cloud-utils-growpart(CentOS 6 only)


cloudint 會用到這個軟件管理磁盤分區,因為 CentOS6 cloud image 中沒有安裝,所以這里需要手工安裝。下載地址:https://pkgs.org/centos-6/epel-x86_64/cloud-utils-growpart-0.27-10.el6.x86_64.rpm/download/

rpm -Uvh cloud-utils-growpart-0.27-10.el6.x86_64.rpm


3. 創建新鏡像

我們在instance中完成了定制工作,接下來對instance做個快照,生成新的鏡像。點擊“centos6-vm”后面的“創建快照”按鈕。



為快照命名。

點擊“創建快照”。


4. 部署新實例

點擊“啟動雲主機”通過快照部署新的實例。


點擊“運行”,實例部署成功。


 

可以看到,該實例已經啟動了圖形界面,並且root可以通過ssh密碼登錄。



將 snapshot 轉化為 image(可選)

Glance鏡像有兩類:image和snapshot,前面通過對instance做快照創建的鏡像類型為 snapshot,有時候可能會覺得不太方便,可以將snapshot轉化為image。



以 CentOS 6.7n為例,可以直接glance image-create命令通過將其轉化為image類型。步驟如下:


1. 在其詳細信息里面記錄下ID為:228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b



2. 該鏡像默認存放於控制節點 /var/lib/glance/images/228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b。


3. 執行glance image-create創建新的鏡像。

glance image-create --name "CentOS 6.7" --file 228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b --disk-format qcow2 --container-format bare --is-public true --progress       



4. 新創建的鏡像類型為image。



以上就是定制 OpenStack Linux 鏡像的常規操作,下一節我們討論 Windows 鏡像的制作方法。



免責聲明!

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



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