# **安裝OpenStack並建置虛擬機** ### 1. 緣由 雲端技術實務課程作業要求 ### 2. 系統簡介 在unbuntu上安裝OpenStack並建置虛擬機 ### 3. 安裝過程(虛擬機建立並將hostname改為學號,IP設定正確並確認網路可通) (本次作業由於本機的openstack登入不了,所以改用第二次作業所建立的VM來安裝openstack,但是安裝openstack的部分因為忘記截圖,所以用之前在本機上安裝openstack的截圖來代替) 首先,依照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 的新用戶(用以安裝OpenStack) ![](https://i.imgur.com/meAWdSs.png) 輸入**echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack** 使用戶stack具有root權限且運行不用密碼 輸入**sudo su - stack** 登入用戶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 2個和要記住password ![](https://i.imgur.com/P9za9Lg.png) 前往登入openstack的網址為http://自己的IP/dashboard 接著使用default user admin 或 demo和配置的密碼登入。 這邊為止openstack就算是安裝好了,再來就是建立VM 輸入**source openrc**(輸入source openrc後會跳出警告,但可直接忽略執行下個步驟) ![](https://i.imgur.com/Nm171w2.png) 輸入**wget http://download.cirroscloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img** 下載Virtual Image 輸入 **openstack image create \ --container-format bare \ --disk-format qcow2 \ --file cirros-0.5.2-x86_64-disk.img \ Cirros-0.5.2** 上傳Virtual Image to Glance 輸入openstack image list 確認Virtual Image上傳成功 接下來的步驟是參考自[http://godleon.blogspot.com/2014/10/openstack-ubuntu-1404-6-vm.html](http://godleon.blogspot.com/2014/10/openstack-ubuntu-1404-6-vm.html) 輸入**ssh-keygen** 產生金鑰對(這邊要注意的金鑰是存在哪裡) ![](https://i.imgur.com/N6FU39B.png) 輸入**nova keypair-add --pub-key /opt/stack/.ssh/id_rsa.pub admin-key**(這邊會用到金鑰的位址) 將產生的公開金鑰加入OpenStack環境中,並將admin-key名稱設定為1072931-key(自己取名) 輸入**nova keypair-list** 確認公開金鑰是否已經匯入OpenStack環境中 ![](https://i.imgur.com/XN4MRlO.png) 輸入**openstack flavor list** ![](https://i.imgur.com/UPFb71g.png) 這邊我使用m1.tiny 輸入**openstack image list** ![](https://i.imgur.com/zfp8YO4.png) 這邊我使用cirros-0.5.2-x86_64-disk 輸入**neutron net-list** ![](https://i.imgur.com/T0krDnc.png) 這邊我使用shared 輸入**openstack security group list** ![](https://i.imgur.com/DuzVKdO.png) 因為先前沒有設定security group,因此這邊只有default,而default這個設定會阻擋所有來自遠端對VM instance的存取 透過以下指令啟動VM instance **nova boot --flavor m1.tiny --image (imageID) --nic net-id=(net-list中shared的id,你也可以試試其他兩個) security-group default --key-name 1072931-key 1072931(最後這個是hostname,可以自行取名)** ![](https://i.imgur.com/8XuTigX.png) 上述指令完成後,Nova Scheduler會尋找合適的node將VM instance啟動,可以透過以下指令檢查一下目前VM instance的狀態 輸入**nova list** 輸入**nova get-vnc-console (自己instance的名字) novnc** 因為我們在之前有設定noVNC,可透過瀏覽器連線到目前運行中的VM instance,可透過上述指令取得noVNC 連線網址 ![](https://i.imgur.com/yeBLG04.png) 有了以上的網址後,就可以透過瀏覽器以noVNC的方式連線到VM instance 登入後,輸入**hostname** 可看到已將hostname改為自己的學號了 ![](https://i.imgur.com/ELmA3Bw.png) ![](https://i.imgur.com/Wg5y6LA.png) ### 4. 結論 這次的作業在一開始還不熟悉的狀況下實作常常遇到許多問題,但經過大家的努力後,總算找出辦法並漸漸了解如何操作。