文章只是转载,因为版本老了就没有测试。
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
网友评论