在CentOS 7上安裝單節點OpenStack

文章只是轉載,因為版本老了就沒有測試。

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

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

雖然OpenStack的核心功能是提供IaaS平臺,但它被用作DBaaS(數據庫即服務),構建Hadoop集群,(容器編排)Container orchestration等等。可以通過基於Web的界面或在OpenStack命令行的幫助下管理這些組件。

本教程將向您展示如何使用rdo存儲庫在單個節點上安裝OpenStack來部署您自己的私有云基礎架構,儘管可以在多個節點上實現部署。我們將使用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用戶身份登錄。

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

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

輸出:(不應該為零)

2

初始系統配置

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


在CentOS 7上安裝單節點OpenStack


現在識別不必要的服務,停止,禁用和刪除它們。主要是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


在CentOS 7上安裝單節點OpenStack


在下一步中使用hostnamectl命令設置Linux系統主機名。相應地替換FQDN變量。

# hostnamectl set-hostname cloud.centos.lan


在CentOS 7上安裝單節點OpenStack


最後,安裝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


在CentOS 7上安裝單節點OpenStack


現在使用您喜歡的文本編輯器編輯答案文件。

vi 26.07.18.conf

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

CONFIG_NTP_SERVERS=0.ro.pool.ntp.org


在CentOS 7上安裝單節點OpenStack


CONFIG_PROVISION_DEMO=n


在CentOS 7上安裝單節點OpenStack


CONFIG_KEYSTONE_ADMIN_PW=your_password for Admin user


在CentOS 7上安裝單節點OpenStack


image.png

通過HTTP啟用SSL訪問OpenStack儀表板。

CONFIG_HORIZON_SSL=y


在CentOS 7上安裝單節點OpenStack


MySQL服務器的root密碼。

CONFIG_MARIADB_PW=mypassword1234


在CentOS 7上安裝單節點OpenStack


完成編輯後保存並關閉文件。此外,打開SSH服務器配置文件並通過刪除前面的主題標籤取消註釋PermitRootLogin行,如下面的屏幕截圖所示。

# vi /etc/ssh/sshd_config


在CentOS 7上安裝單節點OpenStack


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

# systemctl restart sshd

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

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

# packstack --answer-file 13.04.16.conf


在CentOS 7上安裝單節點OpenStack


成功完成OpenStack組件的安裝後,安裝程序將顯示幾行,其中包含OpenStack和Nagios的本地儀表板鏈接以及上面已配置的所需憑據,以便在兩個面板上登錄。


在CentOS 7上安裝單節點OpenStack


憑據也存儲在

keystonerc_admin文件中的主目錄下。

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

#Listen 443 https


在CentOS 7上安裝單節點OpenStack


然後重新啟動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)


在CentOS 7上安裝單節點OpenStack



在CentOS 7上安裝單節點OpenStack


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

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


在CentOS 7上安裝單節點OpenStack


在CentOS 7上安裝單節點OpenStack


image.png

組態

OpenStack是一組開源項目組件,可用於設置雲服務。每個組件使用類似的配置技術和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. 10, Networking service
  11. Object Storage service
  12. Orchestration service
  13. Shared File Systems service
  14. 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


分享到:


相關文章: