這是 OpenStack 實施經驗分享系列的第 1 篇。ubuntu
OpenStack 的 instance 是經過 Glance 鏡像部署的,因此準備鏡像是必需要作的工做。本節介紹 Linux 鏡像的製做方法,後面還會討論 Windows 鏡像。centos
最簡單的方法是使用標準鏡像。主流的Linux發行版都提供能夠在 OpenStack 中直接使用的cloud鏡像,下載地址:
安全
CentOS6:http://cloud.centos.org/centos/6/p_w_picpaths/網絡
CentOS7:http://cloud.centos.org/centos/7/p_w_picpaths/ssh
Ubuntu14.04:http://cloud-p_w_picpaths.ubuntu.com/trusty/current/ide
Ubuntu16.04:http://cloud-p_w_picpaths.ubuntu.com/xenial/current/工具
下面以Ubuntu16.04爲例演示如何將標準鏡像導入 Glance。開發工具
登陸 OpenStack,打開 「項目->Compute->鏡像」菜單。spa
點擊「建立鏡像」按鈕。rest
在建立頁面填寫鏡像相關信息,其中包括:
鏡像名稱爲「Ubuntu 16.04」
「鏡像源」選擇「鏡像文件」
點擊「選擇文件」定位Ubuntu 16.04的Cloud p_w_picpath文件xenial-server-cloudimg-amd64-disk1.img
「鏡像格式」選擇「QCOW2」
最小磁盤填寫「20」,這至關於設置instance啓動盤的最小容量
勾選「共有」選擇框,這樣全部Project均可以使用該鏡像
點擊「建立鏡像」按鈕,開始上傳鏡像。完成後,新的鏡像將出如今鏡像列表上。
cloud 鏡像是標準鏡像,沒有圖像界面,是美國時區,並且只能經過密鑰登陸。能夠根據須要對該鏡像進行定製,其方法是:
經過 cloud 鏡像部署出一個實例。
定製該實例。
建立該實例的快照,該快照將保存在Glance中。
之後經過該快照部署新的實例。
下面咱們以CentOS標準鏡像爲例演示定製鏡像的每一個步驟,定製內容包括:添加圖形界面,設置中國時區,設置ssh密碼登陸等。
進入 「項目->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 –
設置中國時區
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 p_w_picpath都是用 cloudinit 初始化instance,好比配置網絡,extend 系統盤等,cloudinit 全部的配置都寫在/etc/cloud/cloud.cfg,下面的配置將容許 root 經過password ssh 登陸。
至此,centos6-vm已經能夠啓動圖形界面,而且能夠用密碼經過ssh登陸了。
安裝cloud-utils-growpart(CentOS 6 only)
cloudint 會用到這個軟件管理磁盤分區,由於 CentOS6 cloud p_w_picpath 中沒有安裝,因此這裏須要手工安裝。下載地址: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
咱們在instance中完成了定製工做,接下來對instance作個快照,生成新的鏡像。點擊「centos6-vm」後面的「建立快照」按鈕。
爲快照命名。
點擊「建立快照」。
點擊「啓動雲主機」經過快照部署新的實例。
點擊「運行」,實例部署成功。
能夠看到,該實例已經啓動了圖形界面,而且root能夠經過ssh密碼登陸。
Glance鏡像有兩類:p_w_picpath和snapshot,前面經過對instance作快照建立的鏡像類型爲 snapshot,有時候可能會以爲不太方便,能夠將snapshot轉化爲p_w_picpath。
以 CentOS 6.7n爲例,能夠直接glance p_w_picpath-create命令經過將其轉化爲p_w_picpath類型。步驟以下:
1. 在其詳細信息裏面記錄下ID爲:228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b
2. 該鏡像默認存放於控制節點 /var/lib/glance/p_w_picpaths/228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b。
3. 執行glance p_w_picpath-create建立新的鏡像。
glance p_w_picpath-create --name "CentOS 6.7" --file 228f7bdc-fcf1-4f6a-8a7a-298b86f9e94b --disk-format qcow2 --container-format bare --is-public true --progress
4. 新建立的鏡像類型爲p_w_picpath。
以上就是定製 OpenStack Linux 鏡像的常規操做,下一節咱們討論 Windows 鏡像的製做方法。