参考官方文档:https://docs.openstack.org/install-guide/index.html
https://docs.openstack.org/install-guide/environment.html
目录
二、环境
1、硬件要求
为了获得最佳性能,我们建议您的环境满足或超过“硬件要求”中的硬件要求。
以下最低要求应支持带有核心服务和几个CirrOS实例的概念验证环境:
-
控制器节点:1个处理器,4 GB内存和5 GB存储
-
计算节点:1个处理器,2 GB内存和10 GB存储
随着OpenStack服务和虚拟机数量的增加,实现最佳性能的硬件要求也随之增加。如果启用其他服务或虚拟机后性能下降,请考虑将硬件资源添加到您的环境中。
为了最大程度地减少混乱并为OpenStack提供更多资源,我们建议最小化Linux发行版的安装。另外,您必须在每个节点上安装发行版的64位版本。
每个节点上的单个磁盘分区适用于大多数基本安装。但是,对于具有可选服务(例如块存储)的安装,应考虑使用逻辑卷管理器(LVM)。
为了首次安装和测试,许多用户选择将每个主机构建为虚拟机(VM)。VM的主要优点包括:
-
一台物理服务器可以支持多个节点,每个节点几乎具有任意数量的网络接口。
-
能够在整个安装过程中进行定期“快照”,并在出现问题时“回滚”到工作配置。
但是,VM会降低实例的性能,尤其是在虚拟机管理程序和/或处理器不支持嵌套VM的硬件加速的情况下。
如果选择在VM上安装,请确保虚拟机监控程序提供了一种在提供程序网络接口上禁用MAC地址过滤的方法。
2、初始环境配置
控制节点:192.168.1.10 controller
计算节点:192.168.1.20 node1
配置网卡、
配置 hosts文件(/etc/hosts)
安装一些软件:yum install vim net-tools wget telnet -y
更新:yum upgrade -y
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
时间同步:
(1)控制节点
yum install chrony -y
vim /etc/chrony.conf 要使其他节点能够连接到控制器节点上的chrony守护程序,请将此密钥添加到上述相同的chrony.conf
文件中:
allow 192.168.1.0/24
启动服务
systemctl enable chronyd.service
systemctl start chronyd.service
(2)其他节点
yum install chrony -y
vim /etc/chrony.conf
server controller iburst
注释掉该行。pool 2.debian.pool.ntp.org offline iburst
systemctl enable chronyd.service
systemctl start chronyd.service
(3)验证时间同步
我们建议您先验证NTP同步,然后再继续。某些节点,尤其是那些引用控制器节点的节点,可能需要几分钟来进行同步。
在所有节点上运行以下命令:chronyc sources
3、安装数据库
yum install mariadb mariadb-server python2-PyMySQL
vim /etc/my.cnf.d/openstack.cnf
[mysqld] bind-address = 192.168.1.10 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
# systemctl enable mariadb.service
# systemctl start mariadb.service
通过运行mysql_secure_installation脚本来保护数据库服务。特别是,为数据库root帐户选择合适的密码 : mysql_secure_installation
4、安装MQ消息队列
OpenStack使用消息队列来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点上运行。OpenStack支持多种消息队列服务,包括RabbitMQ, Qpid和ZeroMQ。但是,大多数打包OpenStack的发行版都支持特定的消息队列服务。本指南实现了RabbitMQ消息队列服务,因为大多数发行版都支持它。
消息队列在控制器节点上运行。
yum install rabbitmq-server
systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service
添加openstack用户:rabbitmqctl add_user openstack openstack
允许用户配置,写入和读取访问权限
openstack
:rabbitmqctl set_permissions openstack ".*" ".*" ".*"
5、安装Memacached
服务的身份服务身份验证机制使用Memcached来缓存令牌。memcached服务通常在控制器节点上运行。对于生产部署,我们建议启用防火墙,身份验证和加密的组合以保护其安全。
yum install memcached python-memcached
# vim /etc/sysconfig/memcachedOPTIONS="-l 127.0.0.1,::1,controller"
systemctl enable memcached.service systemctl start memcached.service
6、安装etcd
OpenStack服务可以使用Etcd(分布式可靠的键值存储)进行分布式键锁定,存储配置,跟踪服务活动性和其他情况。
安装:yum install etcd
编辑/etc/etcd/etcd.conf
文件
#[Member] ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS="http://192.168.1.10:2380" ETCD_LISTEN_CLIENT_URLS="http://192.168.1.10:2379" ETCD_NAME="controller" #[Clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.10:2380" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.10:2379" ETCD_INITIAL_CLUSTER="controller=http://192.168.1.10:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new"
启用并启动etcd服务:
systemctl enable etcd systemctl start etcd