創建過程
- 創建虛擬網絡
- 創建m1.nano規格的主機(相等於定義虛擬機的硬件配置)
- 生成一個密鑰對(openstack的原理是不使用密碼連接,而是使用密鑰對進行連接)
- 增加安全組規則(用iptables做的安全組)
- 啟動一個實例(啟動虛擬機有三種類型:1.命令CLI 2.api 3.Dashboard)實際上Dashboard也是通過api進行操作
- 虛擬網絡分為提供者網絡和私有網絡,提供者網絡就是跟主機在同一個網絡里,私有網絡自定義路由器等,跟主機不在一個網絡
提供者網絡架構
創建提供者網絡
- 控制節點操作,創建網絡
source /root/admin-openstack.sh neutron net-create --shared --provider:physical_network public --provider:network_type flat public-net
命令格式:neutron net-create --shared(所有項目共享網絡) --provider:physical_network(物理網絡) public(物理網絡的名稱) --provider:network_type(創建的網絡類型為flat,單一扁平網絡)flat public-net(自定義一個名稱)
補充知識點:上圖中tenant_id 等於 project_id,查看項目列表如下圖
- 檢查是否創建成功
neutron net-list
- 創建子網
neutron subnet-create --name public-subnet \ --allocation-pool start=192.168.137.100,end=192.168.137.200 \ --dns-nameserver 223.5.5.5 --gateway 192.168.137.2 \ public-net 192.168.137.0/24
參數說明
- neutron subnet-create 子網創建
- --name (名稱)
- --allocation—pool 分配地址池
- start=開始IP地址
- end=結束IP地址
- dns-nameserver DNS地址,233.5.5.5是阿里公共DNS地址
- --gateway 網關
- public-net 提供者的網絡名稱(要跟上面創建網絡的名稱對應起來)
檢查是否關聯成功
neutron net-list
neutron subnet-list
創建m1.nano規格的主機(自定義雲主機規格)
默認的最小規格的主機需要512 MB內存。對於環境中計算節點內存不足4 GB的,我們推薦創建只需要64 MB的m1.nano規格的主機。若單純為了測試的目的,請使用m1.nano規格的主機來加載CirrOS鏡像。
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
參數說明:
- openstack flavor create 創建主機
- --id 主機ID
- --vcpus cpu數量
- --ram 64(默認是MB,可以寫成G)
- --disk 磁盤(默認單位是G)
查看創建結果
openstack flavor list
提示:1-5是系統默認的,0是剛才創建的
創建密鑰對
大部分雲鏡像支持公共密鑰認證而不是傳統的密碼認證。在啟動實例前,必須添加一個公共密鑰到計算服務。
- 生成秘鑰
source /root/demo-openstack.sh ssh-keygen -q -N ""
將密鑰放在openstack上
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
驗證公鑰的添加
openstack keypair list
增加安全組規則
默認情況下, default安全組適用於所有實例並且包括拒絕遠程訪問實例的防火牆規則。對諸如CirrOS這樣的Linux鏡像,我們推薦至少允許ICMP (ping) 和安全shell(SSH)規則。
- 允許 ICMP (ping)
openstack security group rule create --proto icmp default
- 允許安全 shell (SSH) 的訪問
openstack security group rule create --proto tcp --dst-port 22 default
在公有網絡上創建實例
啟動一台實例,必須至少指定一個類型、鏡像名稱、網絡、安全組、密鑰和實例名稱。
source /root/demo-openstack.sh
- 列出雲主機可用類型
openstack flavor list
- 列出可用鏡像
openstack image list
- 列出可用的網絡
openstack network list
備注:創建雲主機網絡的時候使用的不是名稱,而是ID
- 列出可用的安全組
openstack security group list
- 創建實例
openstack server create --flavor m1.nano --image cirros \ --nic net-id=cc9d7710-d82e-4109-9412-56ae02a18d7d --security-group default \ --key-name mykey shhnwangjian-instance
參數說明:
- openstack server create 創建實例
- --flavor 主機類型名稱
- --image 鏡像名稱
- --nic net-id=網絡ID
- --security-group 安全組名稱
- --key-name key名稱
- 最后一個是自定義實例名稱
檢查
openstack server list
驗證能否ping通
ssh連接測試,因為通過秘鑰認證,不需要輸入密碼
使用虛擬控制台訪問實例
openstack console url show shhnwangjian-instance
可以復制上面URL地址,在瀏覽器訪問
異常排查
如果無法創建虛擬機,我們需要查看控制節點和計算節點所有服務的日志,同時也要查看iptables、selinux、時間同步等
grep 'ERROR' /var/log/nova/* grep 'ERROR' /var/log/neutron/* grep 'ERROR' /var/log/glance/* grep 'ERROR' /var/log/keystone/*
檢查
source admin-openstack.sh nova service-list neutron agent-list nova image-list