---
# System prepended metadata

title: 安裝OpenStack並建置虛擬機

---

# 安裝OpenStack並建置虛擬機
**1. 緣由**

   由於目前就讀於嘉義大學資工系
這學期修了一門選修叫做雲端技術實務
此篇筆記是用於紀錄以及介紹課堂內李龍盛教授所教導的環境安裝與執行

**2. 系統簡介**
在unbuntu上安裝OpenStack並建置虛擬機

OpenStack是一個自由、開源的雲端運算平台。它主要作為基礎設施即服務（IaaS）部署在公用雲和私有雲中，提供虛擬伺服器和其他資源給使用者使用。該軟體平台由相互關聯的組件組成，控制著整個資料中心內不同的廠商的處理器、儲存和網路資源的硬體池。使用者可以通過基於網路的儀器盤、命令列工具或RESTful網路服務來管理。

**3. 安裝過程**

根據ppt上的內容
    輸入**sudo apt-get update**
    輸入**sudo apt-get upgrade -y**
    檢察系統是否有更新▼
    ![](https://i.imgur.com/PwVRVOr.png)
    
輸入**sudo useradd -s /bin/bash -d /opt/stack -m stack**
    創建一個名為 stack 的新用戶▼
    ![](https://i.imgur.com/meAWdSs.png)
    
輸入**echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack**
    讓用戶"stack"有root的管理員權限且不用輸入密碼
    輸入**sudo su - stack**以登入▼
    ![](https://i.imgur.com/NPiWssm.png)
    
輸入**sudo apt-get install -y git**
    安裝git套件▼
    ![](https://i.imgur.com/KRDfQbP.png)
    
輸入**git clone https://git.openstack.org/openstackdev/devstack**
    將存儲庫download/cloned devstack載入到系統中▼
    ![](https://i.imgur.com/qMzYNFe.png)
    
輸入**cd devstack**
    將當前位置導到devstack文件夾中▼
    ![](https://i.imgur.com/gszFSdv.png)
輸入**ip addr show(or ifconfig)**
    查詢自己的IP給後面的文件使用▼
    ![](https://i.imgur.com/qD6nNwA.png)
    輸入**vim local.conf**
    建立一個名為 local.conf 文件▼
    ![](https://i.imgur.com/bc8msEU.png)
    文件內容為下:
    [[local|localrc]]
    # Password for KeyStone, Database, RabbitMQ and Service
    ADMIN_PASSWORD=StrongAdminSecret
    DATABASE_PASSWORD= $ADMIN_PASSWORD
    RABBIT_PASSWORD= $ADMIN_PASSWORD
    SERVICE_PASSWORD= $ADMIN_PASSWORD
    # Host IP - get your Server/VM IP address from ip addr command
    
HOST_IP=填入剛剛查到的IP
    輸入.**/stack.sh**
    
開始安裝openstack
    下圖為安裝成功後所顯示的內容，這邊要注意的是default user為admin及demo 
    以及要記住自己的password▼
    ![](https://i.imgur.com/P9za9Lg.png)
    前往登入openstack的網址為http://自己的IP/dashboard
    接著使用default user admin 或 demo和配置的密碼登入。
    這樣就完成安裝了，接下來就是安裝VM

打開CMD
    輸入**source openrc**
    輸入**ssh-keygen**
    產生金鑰對(這邊要注意的金鑰是存在哪裡)▼
    ![](https://i.imgur.com/T8b1HcC.png)

輸入**nova keypair-add --pub-key /opt/stack/.ssh/id_rsa.pub admin-key**
    輸入**nova keypair-list**
    檢查是否已將公開金鑰匯入OpenStack環境中▼
![](https://i.imgur.com/Cinm0q1.png)

輸入**openstack flavor list**▼
![](https://i.imgur.com/XwEzLV3.png)

輸入**openstack image list**▼
![](https://i.imgur.com/wpHS1mj.png)

選擇下面的cirros-0.5.2-x86_64-disk
    輸入**neutron net-list**▼
![](https://i.imgur.com/lefY8Ha.png)

使用第二行的shared
    輸入**openstack security group list**▼
![](https://i.imgur.com/LonDxq5.png)

所有條件都達成後，透過下方的指令啟動VM instance▼
![](https://i.imgur.com/ovCCRWP.png)
![](https://i.imgur.com/lcCt4KS.png) 
    
上述指令完成後，Nova Scheduler會去找合適的 compute node去將VM instance啟動
   由於我們在之前有設定noVNC，可透過瀏覽器連線到目前運行中的VM instance▼
![](https://i.imgur.com/E9FLgxm.png)

有了以上的網址後，我們就可以透過瀏覽器以noVNC的方式連線到VM instance
    登入後,輸入**hostname**
    可看到系統已將hostname改成我們自己的學號了▼
![](https://i.imgur.com/UvjZYSF.png)

**4. 結論**
老實說這次作業壓力還蠻大的，因為在線上授課前兩個禮拜老師就有指派作業了，自己不但沒有把程式出來就算了，之後上網查也不太知道怎麼做出來，還好之後有再去詢問同學該如何製作，同學也很熱心願意指導我
只是當下裝完openstack的過程中忘記截圖了，還好後來的VM製作自己大致上都會，且有順利做出來
(雖然大多都是跟著網站做的......)
過程中遇到了蠻多問題的，但還是有勉強解決，只是感覺有點瑜不掩瑕，覺得自己在壓力大的情況下常常都做不太好事情，很沒有自信，透過這次作業希望能夠讓我找到更多自信。