文章只是轉載,因為版本老了就沒有測試。
OpenStack是一個免費的開源軟件平臺,為公共雲和私有云提供IaaS(基礎架構即服務)。
OpenStack平臺由幾個相互關聯的項目組成,這些項目控制數據中心的硬件,存儲和網絡資源,例如:計算,圖像服務,塊存儲,身份服務,網絡,對象存儲,遙測,編排和數據庫。
雖然OpenStack的核心功能是提供IaaS平臺,但它被用作DBaaS(數據庫即服務),構建Hadoop集群,(容器編排)Container orchestration等等。可以通過基於Web的界面或在OpenStack命令行的幫助下管理這些組件。
本教程將向您展示如何使用rdo存儲庫在單個節點上安裝OpenStack來部署您自己的私有云基礎架構,儘管可以在多個節點上實現部署。我們將使用CentOS 7 在阿里雲彈性計算服務(ECS)實例上部署此服務。
- Hostname = openstack.example.com
- IP address= 192.168.1.40
- netmask = 255.255.255.0
- Gateway = 192.168.1.1
- DNS = 192.168.1.254
先決條件
- 您必須激活阿里雲彈性計算服務(ECS)並驗證您的有效付款方式。如果您是新用戶,則可以在阿里雲帳戶中獲得免費帳戶。如果您不知道如何設置ECS實例,可以參考本教程或快速入門指南。
- 您應該設置服務器的主機名。
- 訪問安裝在PC中的阿里雲或SSH客戶端中的VNC控制檯。
完成先決條件後,通過SSH客戶端(例如Putty)或您的阿里雲帳戶信息中心提供的VNC控制檯以root用戶名和密碼以root用戶身份登錄。
確保您的系統至少有16GB的RAM和一個支持VT的處理器。使用以下命令檢查VT支持。
egrep --color 'vmx|svm' /proc/cpuinfo | wc –l
輸出:(不應該為零)
2
初始系統配置
- 在開始準備節點以部署自己的虛擬雲基礎架構之前,首先使用root帳戶登錄並確保系統是最新的。
- 確保您的機器在機器上安裝了最新版本的CentOS 7。
- yum -y update
- 接下來,發出ss -tulpn命令以列出所有正在運行的服務。
- Ss -tulpn
現在識別不必要的服務,停止,禁用和刪除它們。主要是Postfix,NetworkManager和Firewalld。在那之後,在你的linux機器上運行的唯一服務應該只是sshd。
# systemctl stop postfix firewalld NetworkManager
# systemctl disable postfix firewalld NetworkManager
# systemctl mask NetworkManager
# yum remove postfix NetworkManager NetworkManager-libnm```
通過執行以下命令永久禁用Linux機器上的Selinux策略。同時編輯/etc/selinux /config文件並將SELINUX從強制修改為禁用,如下圖所示。
# setenforce 0
# getenforce
# vi /etc/selinux/config
在下一步中使用hostnamectl命令設置Linux系統主機名。相應地替換FQDN變量。
# hostnamectl set-hostname cloud.centos.lan
最後,安裝ntpdate以便與NTP服務器同步時間。
# yum install ntpdate
在CentOS和RHEL中安裝OpenStack
藉助rdo repository(OpenStack的RPM Distribution)提供的PackStack軟件包,OpenStack將部署在您的Node上。
為了在RHEL 7上啟用rdo存儲庫,請運行以下命令。
# yum install [https://www.rdoproject.org/repos/rdo-release.rpm](https://www.rdoproject.org/repos/rdo-release.rpm)
在CentOS 7上,Extras存儲庫包含激活OpenStack存儲庫的RPM。已啟用Extras,因此您可以輕鬆安裝RPM以設置OpenStack存儲庫:
# yum install -y centos-release-openstack-mitaka
# yum update –y
讓我們使用以下命令在您的Linux機器上安裝Packstat軟件包:
# yum install openstack-packstack
在下一步中,為Packstack生成一個具有默認配置的應答文件,稍後將使用所需參數對其進行編輯,以便部署Openstack(單節點)的獨立安裝。
該文件將在生成的當天時間戳(日,月和年)之後命名。
# packstack --gen-answer-file='date +"%d.%m.%y"'.conf
# ls
現在使用您喜歡的文本編輯器編輯答案文件。
vi 26.07.18.conf
並替換以下參數以匹配以下值。為了安全起見,請相應地更換密碼字段。
CONFIG_NTP_SERVERS=0.ro.pool.ntp.org
CONFIG_PROVISION_DEMO=n
CONFIG_KEYSTONE_ADMIN_PW=your_password for Admin user
image.png
通過HTTP啟用SSL訪問OpenStack儀表板。
CONFIG_HORIZON_SSL=y
MySQL服務器的root密碼。
CONFIG_MARIADB_PW=mypassword1234
完成編輯後保存並關閉文件。此外,打開SSH服務器配置文件並通過刪除前面的主題標籤取消註釋PermitRootLogin行,如下面的屏幕截圖所示。
# vi /etc/ssh/sshd_config
然後重新啟動SSH服務以反映更改。
# systemctl restart sshd
使用Packstack應答文件啟動Openstack安裝
最後通過運行以下命令語法,通過上面編輯的答案文件啟動Openstack安裝過程:
# packstack --answer-file 13.04.16.conf
成功完成OpenStack組件的安裝後,安裝程序將顯示幾行,其中包含OpenStack和Nagios的本地儀表板鏈接以及上面已配置的所需憑據,以便在兩個面板上登錄。
憑據也存儲在
keystonerc_admin文件中的主目錄下。如果由於某些原因安裝過程因httpd服務錯誤而結束,請打開/etc/httpd/conf.d/ssl.conf文件,並確保您註釋以下行,如下圖所示。
#Listen 443 https
然後重新啟動Apache守護程序以應用更改。
# systemctl restart httpd.service
注意:如果您仍然無法在端口443上瀏覽Openstack Web面板,請從開始時使用為初始部署發出的相同命令重新啟動安裝過程。
# packstack --answer-file /root/26.07.18.conf
遠程訪問OpenStack儀表板
要從LAN中的遠程主機訪問OpenStack Web面板,請通過HTTPS協議導航到計算機IP地址或FQDN /儀表板。
由於您使用的是由不受信任的證書頒發機構頒發的自簽名證書,因此您的瀏覽器上應顯示錯誤。
接受錯誤並使用上面設置的答案文件中的CONFIG_KEYSTONE_ADMIN_PW參數設置的用戶admin和密碼登錄儀表板。
[https://192.168.1.40/dashboard](https://192.168.1.40/dashboard)
或者,如果您選擇為OpenStack安裝Nagios組件,則可以使用以下URI瀏覽Nagios Web面板,並使用答案文件中的憑據設置進行登錄。
[https://192.168.1.40/nagios](https://192.168.1.40/nagios)
image.png
組態
OpenStack是一組開源項目組件,可用於設置雲服務。每個組件使用類似的配置技術和INI文件選項的通用框架。
本指南匯總了以下OpenStack組件的多個引用和配置選項:
- Bare Metal service
- Block Storage service
- Compute service
- Dashboard
- Database service
- Data Processing service
- Identity service
- Image service
- Message service
- 10, Networking service
- Object Storage service
- Orchestration service
- Shared File Systems service
- Telemetry service
OpenStack使用INI文件格式來配置文件。INI文件是一個簡單的文本文件,它將選項指定為鍵=值對,分組為多個部分。DEFAULT部分包含大多數配置選項。以井號(#)開頭的行是註釋行。例如:
[DEFAULT]
# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
debug = true
[database]
# The SQLAlchemy connection string used to connect to the
# database (string value)
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
選項可以具有不同的值類型。示例配置文件中的註釋總是提到這些,並且表中提到Opt值作為第一項,如(BoolOpt)Toggle .... OpenStack使用以下類型:
boolean value (BoolOpt)
啟用或禁用選項。允許的值為true和false。
# Enable the experimental use of database reconnect on
# connection lost (boolean value)
use_db_reconnect = false
浮點值(FloatOpt)
浮點數,如0.25或1000。
# Sleep time in seconds for polling an ongoing async task
# (floating point value)
task_poll_interval = 0.5
整數值(IntOpt)
整數是沒有小數分量的數字,如0或42。
# The port which the OpenStack Compute service listens on.
# (integer value)
compute_port = 8774
IP地址(IPOpt)
IPv4或IPv6地址。
# Address to bind the server. Useful when selecting a particular network
# interface. (ip address value)
bind_host = 0.0.0.0
鍵值對(DictOpt)
鍵值對,也稱為dictonary。鍵值對用逗號分隔,冒號用於分隔鍵和值。示例:key1:value1,key2:value2。
# Parameter for l2_l3 workflow setup. (dict value)
l2_l3_setup_params = data_ip_address:192.168.200.99, \\
data_ip_mask:255.255.255.0,data_port:1,gateway:192.168.200.1,ha_port:2
列表值(ListOpt)
表示其他類型的值,以逗號分隔。例如,以下將allowed_rpc_exception_modules設置為包含oslo.messaging.exceptions,nova.exception,cinder.exception和exception四個元素的列表:
# Modules of exceptions that are permitted to be recreated
# upon receiving exception data from an rpc call. (list value)
allowed_rpc_exception_modules = oslo.messaging.exceptions,nova.exception
多值(MultiStrOpt)
多值選項是字符串值,可以多次給出,將使用所有值。
# Driver or drivers to handle sending notifications. (multi valued)
notification_driver = nova.openstack.common.notifier.rpc_notifier
notification_driver = ceilometer.compute.nova_notifier
端口值(PortOpt)
TCP / IP端口號。端口範圍為1到65535。
# Port to which the UDP socket is bound. (port value)
# Minimum value: 1
# Maximum value: 65535
udp_port = 4952
字符串值(StrOpt)
字符串可以選擇用單引號或雙引號括起來。
# Enables or disables publication of error events. (boolean value)
publish_errors = false
# The format for an instance that is passed with the log message.
# (string value)
instance_format = "[instance: %(uuid)s] "
Sections
配置選項按部分分組。大多數配置文件至少支持以下部分:
[DEFAULT]
包含大多數配置選項。如果配置選項的文檔未指定其部分,請假定它出現在此部分中。
[database]
存儲OpenStack服務狀態的數據庫的配置選項。
Substitution(代換)
配置文件支持變量替換。設置配置選項後,如果在其前面加上
OPTION,則可以在以後的配置值中引用它。
以下示例使用rabbit_host和rabbit_port的值來定義rabbit_hosts選項的值,在本例中為controller:5672。
# The RabbitMQ broker address where a single node is used.
# (string value)
rabbit_host = controller
# The RabbitMQ broker port where a single node is used.
# (integer value)
rabbit_port = 5672
# RabbitMQ HA cluster host:port pairs. (list value)
rabbit_hosts = $rabbit_host:$rabbit_port
為避免替換,請使用
$$,它被一個xkj432取,如下所示:
ldap_dns_password =
$$
xkj432
代碼使用Python字符串。Template.safe_substitute()方法實現變量替換。有關如何解決變量替換的更多詳細信息。
空格
要在配置值中包含空格,請使用帶引號的字符串。例如:
ldap_dns_passsword='a password with spaces'
定義配置文件的備用位置
大多數服務和-manage命令行客戶端都會加載配置文件。要為配置文件定義備用位置,請在啟動服務或調用 -manage命令時傳遞-config -file CONFIG_FILE參數。
結論
我們在Red Hat,CentOS和Fedora Linux上演示了OpenStack安裝。現在,您可以使用OpenStack輕鬆地在阿里巴巴雲彈性計算服務(ECS)上設置自己的私有云環境。
參考:https://www.alibabacloud.com/blog/how-to-install-single-node-openstack-on-centos-7_594048?spm=a2c41.12117054.0.0
閱讀更多 開心人開發世界 的文章