在CentOS 7上安裝單節(jié)點OpenStack

文章只是轉(zhuǎn)載,因為版本老了就沒有測試。

OpenStack是一個免費的開源軟件平臺,為公共云和私有云提供IaaS(基礎架構(gòu)即服務)。

OpenStack平臺由幾個相互關(guān)聯(lián)的項目組成,這些項目控制數(shù)據(jù)中心的硬件,存儲和網(wǎng)絡資源,例如:計算,圖像服務,塊存儲,身份服務,網(wǎng)絡,對象存儲,遙測,編排和數(shù)據(jù)庫。

雖然OpenStack的核心功能是提供IaaS平臺,但它被用作DBaaS(數(shù)據(jù)庫即服務),構(gòu)建Hadoop集群,(容器編排)Container orchestration等等??梢酝ㄟ^基于Web的界面或在OpenStack命令行的幫助下管理這些組件。

本教程將向您展示如何使用rdo存儲庫在單個節(jié)點上安裝OpenStack來部署您自己的私有云基礎架構(gòu),盡管可以在多個節(jié)點上實現(xiàn)部署。我們將使用CentOS 7 在阿里云彈性計算服務(ECS)實例上部署此服務。

  1. Hostname = openstack.example.com
  2. IP address= 192.168.1.40
  3. netmask = 255.255.255.0
  4. Gateway = 192.168.1.1
  5. DNS = 192.168.1.254

先決條件

  1. 您必須激活阿里云彈性計算服務(ECS)并驗證您的有效付款方式。如果您是新用戶,則可以在阿里云帳戶中獲得免費帳戶。如果您不知道如何設置ECS實例,可以參考本教程快速入門指南
  2. 您應該設置服務器的主機名。
  3. 訪問安裝在PC中的阿里云或SSH客戶端中的VNC控制臺。

完成先決條件后,通過SSH客戶端(例如Putty)或您的阿里云帳戶信息中心提供的VNC控制臺以root用戶名和密碼以root用戶身份登錄。

確保您的系統(tǒng)至少有16GB的RAM和一個支持VT的處理器。使用以下命令檢查VT支持。

egrep --color 'vmx|svm' /proc/cpuinfo | wc –l

輸出:(不應該為零)

2

初始系統(tǒng)配置

  1. 在開始準備節(jié)點以部署自己的虛擬云基礎架構(gòu)之前,首先使用root帳戶登錄并確保系統(tǒng)是最新的。
  2. 確保您的機器在機器上安裝了最新版本的CentOS 7。
  • yum -y update
  1. 接下來,發(fā)出ss -tulpn命令以列出所有正在運行的服務。
  • Ss -tulpn

現(xiàn)在識別不必要的服務,停止,禁用和刪除它們。主要是Postfix,NetworkManager和Firewalld。在那之后,在你的linux機器上運行的唯一服務應該只是sshd。

# systemctl stop postfix firewalld NetworkManager
 # systemctl disable postfix firewalld NetworkManager
 # systemctl mask NetworkManager
 # yum remove postfix NetworkManager NetworkManager-libnm```

通過執(zhí)行以下命令永久禁用Linux機器上的Selinux策略。同時編輯/etc/selinux /config文件并將SELINUX從強制修改為禁用,如下圖所示。

# setenforce 0
 # getenforce
 # vi /etc/selinux/config

在下一步中使用hostnamectl命令設置Linux系統(tǒng)主機名。相應地替換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生成一個具有默認配置的應答文件,稍后將使用所需參數(shù)對其進行編輯,以便部署Openstack(單節(jié)點)的獨立安裝。

該文件將在生成的當天時間戳(日,月和年)之后命名。

# packstack --gen-answer-file='date +"%d.%m.%y"'.conf
 # ls

現(xiàn)在使用您喜歡的文本編輯器編輯答案文件。

vi 26.07.18.conf

并替換以下參數(shù)以匹配以下值。為了安全起見,請相應地更換密碼字段。

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

完成編輯后保存并關(guān)閉文件。此外,打開SSH服務器配置文件并通過刪除前面的主題標簽取消注釋PermitRootLogin行,如下面的屏幕截圖所示。

# vi /etc/ssh/sshd_config

然后重新啟動SSH服務以反映更改。

# systemctl restart sshd

使用Packstack應答文件啟動Openstack安裝

最后通過運行以下命令語法,通過上面編輯的答案文件啟動Openstack安裝過程:

# packstack --answer-file 13.04.16.conf

成功完成OpenStack組件的安裝后,安裝程序?qū)@示幾行,其中包含OpenStack和Nagios的本地儀表板鏈接以及上面已配置的所需憑據(jù),以便在兩個面板上登錄。

憑據(jù)也存儲在keystonerc_admin文件中的主目錄下。

如果由于某些原因安裝過程因httpd服務錯誤而結(jié)束,請打開/etc/httpd/conf.d/ssl.conf文件,并確保您注釋以下行,如下圖所示。

#Listen 443 https

然后重新啟動Apache守護程序以應用更改。

# systemctl restart httpd.service

注意:如果您仍然無法在端口443上瀏覽Openstack Web面板,請從開始時使用為初始部署發(fā)出的相同命令重新啟動安裝過程。

# packstack --answer-file /root/26.07.18.conf

遠程訪問OpenStack儀表板

要從LAN中的遠程主機訪問OpenStack Web面板,請通過HTTPS協(xié)議導航到計算機IP地址或FQDN /儀表板。

由于您使用的是由不受信任的證書頒發(fā)機構(gòu)頒發(fā)的自簽名證書,因此您的瀏覽器上應顯示錯誤。

接受錯誤并使用上面設置的答案文件中的CONFIG_KEYSTONE_ADMIN_PW參數(shù)設置的用戶admin和密碼登錄儀表板。

[https://192.168.1.40/dashboard](https://192.168.1.40/dashboard)

或者,如果您選擇為OpenStack安裝Nagios組件,則可以使用以下URI瀏覽Nagios Web面板,并使用答案文件中的憑據(jù)設置進行登錄。

[https://192.168.1.40/nagios](https://192.168.1.40/nagios)
image.png

組態(tài)

OpenStack是一組開源項目組件,可用于設置云服務。每個組件使用類似的配置技術(shù)和INI文件選項的通用框架。

本指南匯總了以下OpenStack組件的多個引用和配置選項:

  1. Bare Metal service
  2. Block Storage service
  3. Compute service
  4. Dashboard
  5. Database service
  6. Data Processing service
  7. Identity service
  8. Image service
  9. Message service
    10, Networking service
  10. Object Storage service
  11. Orchestration service
  12. Shared File Systems service
  13. Telemetry service

OpenStack使用INI文件格式來配置文件。INI文件是一個簡單的文本文件,它將選項指定為鍵=值對,分組為多個部分。DEFAULT部分包含大多數(shù)配置選項。以井號(#)開頭的行是注釋行。例如:

[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)

浮點數(shù),如0.25或1000。

# Sleep time in seconds for polling an ongoing async task
 # (floating point value)
 task_poll_interval = 0.5

整數(shù)值(IntOpt)

整數(shù)是沒有小數(shù)分量的數(shù)字,如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

配置選項按部分分組。大多數(shù)配置文件至少支持以下部分:

[DEFAULT]

包含大多數(shù)配置選項。如果配置選項的文檔未指定其部分,請假定它出現(xiàn)在此部分中。

[database]

存儲OpenStack服務狀態(tài)的數(shù)據(jù)庫的配置選項。

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

為避免替換,請使用

$$,它被一個取代。例如,如果您的LDAP DNS密碼是xkj432,請指定它,如下所示:

ldap_dns_password = 
$$
xkj432

代碼使用Python字符串。Template.safe_substitute()方法實現(xiàn)變量替換。有關(guān)如何解決變量替換的更多詳細信息。

空格

要在配置值中包含空格,請使用帶引號的字符串。例如:

ldap_dns_passsword='a password with spaces'

定義配置文件的備用位置

大多數(shù)服務和-manage命令行客戶端都會加載配置文件。要為配置文件定義備用位置,請在啟動服務或調(diào)用 -manage命令時傳遞-config -file CONFIG_FILE參數(shù)

結(jié)論

我們在Red Hat,CentOS和Fedora Linux上演示了OpenStack安裝。現(xiàn)在,您可以使用OpenStack輕松地在阿里巴巴云彈性計算服務(ECS)上設置自己的私有云環(huán)境。

參考:https//www.alibabacloud.com/blog/how-to-install-single-node-openstack-on-centos-7_594048?spm=a2c41.12117054.0.0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容