openstack基礎架構
image
image
image
為什么要用 Openstack
kvm宿主機 2000臺
查看每一個宿主機有多少臺虛擬機?
查看每一個宿主機還剩多少資源?
查看每一臺宿主機,每一個虛擬機的ip地址?
excel 資產管理 cmdb
kvm管理平臺,數據庫工具 Openstack
信息:宿主機,總配置,剩余的總配置
虛擬機的信息,配置信息,ip地址,操作系統
帶計費功能的kvm管理平臺,openstack ceilometer計費 ecs IAAS層
自動化管理kvm宿主機,云主機定制化操作
服務器, 20核心 1T內存 96T
資源浪費,linux環境特別亂,,kvm虛擬機
使用腳本自動化部署openstack M版
部署openstack
克隆一臺openstack模板機:
all-in-one
4G內存,開啟虛擬化,掛載centos7.6的光盤imageimageimageimage保證磁盤啟動成功
image修改網卡配置文件 IP 為10.0.0.11
imageimage上傳選中的環境軟件
image解壓openstack_rpm.tar.gz的壓縮包
image執行腳本
image腳本執行完成后訪問提示的網站
image域為 default
用戶名為admin
密碼為ADMIN_PASSimage創建一臺實例
imageimageimageimage啟動實例
imageimageimageimageimage可以上網
image創建項目
imageimageimageimage測試是否可以連接
image連接成功
image添加規則
imageimage手動添加鏡像
image
增加一個計算節點
按上面的添加步驟添加一臺IP為10.0.0.12的主機
上傳需要的文件和壓縮包
image解壓到/opt/下
image修改腳本文件
image執行腳本
imageimage.png
維護openstack平臺的考慮因素
#1 安裝部署
#2 上傳鏡像
centos7
centos6
ubuntu
debian
windows server R2
中國家科技大學的源
http://mirrors.ustc.edu.cn/centos-cloud/centos/7/images/
3 給開發開通賬戶,跳轉默認資源配額,腳本創建用戶
shell腳本
4.增加計算節點
a.給物理服務器裝系統,cobbler無人安裝操作系統
b.ansible批量操作
c.測試
5.監控,高可用
zabbix
mysql高可用
rabbitmq高可用(消息隊列)
OpenStack常用命令手冊
主機常用命令
查詢類
網絡接口查詢
查詢網絡配置 cat /etc/sysconfig/network-scripts/ifcfg-ens160
1
主機ip信息查詢
查看主機網卡 ifconfig
查看主機名 cat /etc/hostname
查看主機名對應的IP信息 cat /etc/hosts
12345
編輯類
網絡接口編輯
編輯網絡配置 vim /etc/sysconfig/network-scripts/ifcfg-ens160
1
主機ip信息編輯
查看主機名對應的IP信息 vim /etc/hosts
1
認證服務常用命令
查詢類
Apache http服務狀態查詢
命令語句 systemctl status httpd.service
1
Apache http 服務日志查詢
命令語句 cd /etc/httpd/logs tail 文件名
選擇日志文件
12
OpenStack域列表查詢
命令語句 openstack domain list
注意 ID:每個域的唯一ID; Name:域的名稱; Enabled:是否啟用 Description:對域的描述。
12
OpenStack 服務列表查詢
命令語句 openstack service list
注解: ID:服務唯一ID; Name:服務名稱; Type:服務類型。
12
OpenStack 節點列表查詢
命令語句 openstack endpoint list
注解:Service Name:服務名稱; Service Type:服務類型; Interface:連接對象; URL:服務所在IP:端口號/版本號。
12
編輯類
創建域
命令語法 openstack domain create --description”對創建域的描述” 域名
創建域樣例 openstack domain create --description “An Example Domain” example
12
創建服務
命令語法 openstack service create --name 服務名 --description “對服務的描述” 類型
創建服務樣例 openstack service create --name glance --description “OpenStack Image” image
12
創建api端點
#命令語法
openstack endpoint create --region RegionOne 服務類型 連接對象 http://ip地址:端口號
#創建api
端點樣例 openstack endpoint create --region RegionOne \
image public http://172.26.128.126:9292
openstack endpoint create --region RegionOne
image internal http://172.26.128.126:9292
openstack endpoint create --region RegionOne
image admin http://172.26.128.126:9292
#創建成功顯示
注意:創建一個服務api控制端點需要創建三個連接對象,在這里為public、internal
、admin。
123456789101112131415
鏡像服務常用命令
查詢類
鏡像服務查詢
命令語句 systemctl status openstack-glance-api.service openstack-glance-registry.service
服務注解:
【1】openstack-glance-api.service glance-api是整個glance的入口,負責接受用戶的各種請求
【2】openstack-glance-registry.service 一個glance的鏡像倉庫服務,負責和后臺數據庫進行交互。
1234
鏡像服務列表查詢
命令語句 openstack image list
注解
ID:鏡像文件的唯一ID ;Name:自定義的鏡像名稱;Status:是否可用 active表示可用。
1234
查看某個具體的鏡像
命令語句 openstack image show image_name
1
查看安全組
命令語句 openstack group list
1
編輯類
上傳鏡像
#命令語法
openstack image create “自定義鏡像名” --file 鏡像文件名稱 --disk-format 格式化類型 --container-format bare --public
#樣例
第一步:下載鏡像文件
wget http://download.cirros-cloud.net/0.3.4/cirros-0.5.1-x86_64-disk.img
第二步:上傳鏡像文件
openstack image create “test1” --file cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --public
注:格式化類型有raw、qcow2、vmdk等
123456789
增加安全組
命令語句 openstack group create group_name --description “”
1
計算服務常用命令
查詢類
查看計算服務整體運行狀態
#命令語法
systemctl status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service libvirtd.service openstack-nova-compute.service
#服務注解:
【1】openstack-nova-api.service nova-api是整個nova的入口,負責接受和響應終端用戶有關虛擬機呵呵云硬盤盤的請求。
【2】openstack-nova-consoleauth.service 守護進程,由用戶的console控制臺代理提供授權tokens,兩種模式nova-novncproxy和nova-xvpnvcproxy
【3】openstack-nova-scheduler.service 負責調度虛擬機在哪個物理宿主機上部署,接受消息隊列指令并執行。
【4】openstack-nova-conductor.service nova-conductor模式,介于nova-computer和database之間,設計目的在于消除直接nova-computer直接訪問云數據庫。
【5】openstack-novncproxy.service 守護進程,提供了VNC連接訪問正在運行的實例的代表,基于novnc客戶瀏覽器
【6】openstack-nova-compute.service 兩個職責,其一,是守護進程,負責基于各種虛擬化技術Hypervisior實現創建和終止虛擬機;其二,整合了計算資源CPU,存儲,網絡三類資源部署管理虛擬機,實現計算能力的交付。
12345678910
查詢nova服務的命令
命令語句 openstack compute service list
1
查詢nova組件的更新檢查
命令語句 nova-status upgrade check
1
編輯類
維護編輯nova配置
命令語句 vim /etc/nova/nova.conf
1
網絡服務常用命令
查詢類
查看網絡服務狀態
#命令語句
systemctl status neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
#服務注解:
【1】neutron-server.service 用于接受apI請求創建網絡,子網,路由器等。
neutron-linuxbridge-agent.service 負責三個任務,第一,報告狀態;第二,處理RPC API;第三,實現neutron中定義的網絡拓撲。
【2】neutron-dhcp-agent.service 用于創建和管理虛擬DHCP Server。
【3】neutron-metadata-agent.service neutron-metadata-agent運行在網絡節點上,作為中間人是instance可以訪問請求nova-api-metadata。
12345678
查詢網絡信息
命令語句 openstack network list
1
查看端口信息
命令語句 openstack port list
1
編輯類
維護編輯neutron配置
命令語法 vim /etc/neutron/neutron.conf
1
維護編輯ml2配置
命令語句 vim /etc/neutron/plugins/ml2/ml2_conf.ini
#解析:
openstack中使用的ml2模塊是用來管理Layer2,Modular Layer 2 是一個可以同時管理多種Layer2技術的框架。
1234
維護編輯linuxbridge_agent配置
命令語句 vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
解析:linuxbridge_agent相當于物理機與dhcp server 之間的媒介
123
維護編輯dhcp_agent配置
命令語句 vim /etc/neutron/dhcp_agent.ini
#解析:
為各個租戶網絡提供DHCP服務,部署在網絡節點上,各個插件也是使用這一個代理。
1234
維護編輯metadata_agent配置
命令語句 vim /etc/neutron/metadata_agent.ini
#解析:
Metadata_agent用于連接Nova Metadata服務和網絡在namespace中的虛機的,其中,Nova Metadata存儲了Metadata和 user data。
1234
塊存儲常用命令
查詢類
查看塊存儲服務及依賴服務狀態
命令語句 systemctl status openstack-cinder-volume.service target.service openstack-cinder-api.service openstack-cinder-scheduler.service
#服務注解
【1】openstack-cinder-volume.service 通過相關驅動程序架構直接與塊存儲服務進行交互。
【2】 openstack-cinder-api.service 進入Cinder的HTTP接口。
【3】openstack-cinder-scheduler.service 根據預定的策略選擇合適的cinder-volume節點來處理用戶的請求。
123456
查看塊存儲服務組件信息
命令語句 cinder service-list
1
編輯類
維護編輯cinder配置
命令語句 vim /etc/cinder/cinder.conf
1
虛擬機管理常用命令
查詢類
查看opens tack環境主機列表
命令語句 openstack host list
1
查看某臺主機資源情況
命令語句 openstack host show compute04
1
查看虛擬機列表
命令語句 openstack server list
1
查看虛擬機詳情
命令語句 openstack server show 虛機名
#樣例
openstack server show test06
1234
編輯類
創建虛擬機
啟動一個虛擬機必要的信息是鏡像,規格,網絡。從前面學習到的image操作中找到鏡像,從flavor操作中找到合適的規格,從網絡操作中找到網絡。
創建虛機步驟如下
#第一步:
命令語句 openstack network list
輸出結果
注解:在輸出結果中,需要記下你所構建的網絡的“ID”(編號)。之后你創建虛機時,要用到這個編號。
#第二步:
命令語句 openstack flavor list
輸出結果
注解:此命令用于查詢你想創建的虛擬機的類型
#第三步:
命令語句 openstack image list
輸出結果
注解:選擇虛機的鏡像文件
#第四步:
命令語句 openstack security group list
輸出結果
注解:選擇虛機所要使用的安全組的類型。
#第五步:
命令語句 openstack server create --image 鏡像名 --flavor flavor規格名 –security-groups 安全組名 --nic net-id=網絡ID 虛機名
樣例:
openstack server create --image centos7.4-cloud --flavor vm-ram-01 --nic net-id=e7f65cb4-1896-46b9-ae09-2fa141f1757c test06
輸出結果
創建成功后,使用opensatck server list
123456789101112131415161718192021222324252627
虛擬機暫停
命令語句 openstack server pause 虛機名
樣例 openstack server pause vm-szy-03
注解:可使用openstack server list 查看虛機狀態
123
虛擬機啟動
命令語句 openstack server unpause 虛機名
樣例 openstack server unpause vm-szy-03
12
虛擬機重啟
命令語句 openstack server reboot 虛機名
樣例 openstack server reboot vm-szy-03
注意:
nova reboot是軟重啟虛擬機
nova reboot --hard 是硬重啟虛擬機
nova reset-state 是重置虛擬機狀態
1234567
虛擬機刪除
命令語句 openstack server delete 虛機名
樣例 openstack server delete vm-szy-03
12
項目、用戶、角色管理
項目管理
查詢類
項目列表查詢
命令語句 openstack project list
ID:項目的唯一ID; Name:項目名稱。
12
項目詳情查詢
命令語句 openstack project show 項目名
樣例 openstack project show service
12
查詢某一項目下的所有用戶
命令語句 openstack user list --project=項目名
樣例 openstack user list --projected=service
12
編輯類
創建項目
命令語法 openstack project create --domain 域名 --description”對創建項目的描述” 項目名
#創建項目樣例
openstack project create --domain default --description "Service Project" service
1234
更新項目名稱
命令語法 openstack project set ID/name --name project-new
樣例 openstack project set demo –name test
12
刪除項目
命令語法 openstack project delete project-name
樣例 openstack project delete demo
12
用戶管理
查詢類
用戶列表查詢
命令語句 openstack user list
ID:用戶的唯一ID; Name:用戶名稱。
12
查詢用戶詳情
命令語法 opensatck user show 用戶名
樣例 openstack user show demo
12
查詢某一用戶與項目、角色的關系
命令語法 openstack role assignment list --user=用戶名
樣例 openstack role assignment list --user=nova
#注解:
使用openstack assignment list 查詢處的role、user、project顯示都為唯一ID值,可以配合openstack role/user/project list 來使用。
12345
編輯類
創建用戶
命令語法 openstack user create --domain 域名 --password-prompt 用戶名
#創建用戶樣例
openstack user create --domain default --password-prompt demo
User Password:123
Repeat User Password:123
123456
啟用用戶
命令語法 openstack user set user_name --enable
樣例 openstack user set demo --enable
12
禁止用戶
命令語法 openstack user set user_name --disable
樣例 openstack user set demo --disable
12
更新用戶名
命令語法 openstack user set user_name --name username_new
樣例 openstack user set demo –name test02
12
刪除用戶
命令語法 openstack user delete user_name
樣例 openstack user delete demo
12
角色管理
查詢類
角色列表查詢
命令語句 openstack role list
ID:角色的唯一ID; Name:角色的名稱
12
角色詳情查詢
命令語法 opensatck role show 角色名
樣例 openstack role show admin
12
編輯類
創建角色
命令語法 openstack role create 角色名
樣例 openstack role create user
12
將項目和用戶加入到角色中
命令語法 openstack role add --project 項目名 --user 用戶名 角色名
樣例 openstack role add --project hzab --user hq woker
12
將role移除項目和用戶
命令語法 openstack role remove --user 用戶名 --project 項目名 角色名
樣例 Openstack role remove --user=hzab --project=admin hsjn