玩转企业云计算平台系列(二):Openstack 基础环境部署

2023-12-28 11:23:04 浏览数 (1)

安装虚拟机

这个教程网上很多,不再赘述了,虚拟机配置如下:

  • RAM:大于10GB,否则OpenStack安装完成后,虚拟机运行会卡顿。
  • ROM:100GB,分两块磁盘,sda用于存放CentOS系统,sdb用于存放LVM(cinder的数据卷)。
  • 网卡:enss33用于虚拟机访问网络,enss37用于OpenStack组件之间的通信(all in one的方式,实际上不需要用到enss37网卡)

准备工作

禁用SELinux

作用:不禁用SELinux可能会导致openstack newton Apache无法启动。

错误如下:"Devstack fail to start apache2 -“Address already in use”:“coild not bind to address”

解决方式:配置/etc/selinux/config,关闭SELINUX

代码语言:javascript复制
[root@controller /]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

关闭防火墙

作用:免去配置OpenStack各个节点时,需要不断手动开启端口的麻烦。但是在实际生产环境中绝对不允许这样做,这会引起安全问题。

代码语言:javascript复制
[root@controller ~]# systemctl stop firewalld 
[root@controller ~]# systemctl disable firewalld
配置网卡

CentOS系统默认使用DHCP(动态主机配置协议)分配网卡IP。此处,建议使用static(静态)网卡IP,因为在VMWare的虚拟机重启之后,虚拟机的网卡IP可能会变化,这就会导致OpenStack其他节点配置的网卡IP无法使用。

查看当前网卡IP

代码语言:javascript复制
[root@controller /]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.83.139  netmask 255.255.255.0  broadcast 192.168.83.255
        inet6 fe80::c62f:bd78:ba20:b81  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:0e:1c  txqueuelen 1000  (Ethernet)
        RX packets 15733  bytes 10884363 (10.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11840  bytes 6242032 (5.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

配置网卡IP

代码语言:javascript复制
[root@controller /]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=038e74ab-c77d-4f83-b67b-dabde3a03c1d
DEVICE=ens33
#更改的部分
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.83.139
GATEWAY=192.168.83.2
NETMASK=255.255.255.0
DNS1=114.114.114.114

若需要配置第二张网卡enss37,则将上面的NAME、DEVICE更改后,删除UUID,并配置新的IPADDR,即可。

配置主机名
代码语言:javascript复制
#设置主机名
[root@controller ~]# hostnamectl set-hostname controller 

#查看设置
[root@controller ~]# hostname 
controller 

#修改hosts文件:controller域名,解析时指向本机的网卡IP
[root@controller ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.83.139 controller
设置时区
代码语言:javascript复制
[root@controller ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime cp: overwrite ‘/etc/localtime’? y 
[root@controller ~]# date Tue Jul 20 16:13:44 CST 2021

安装基础软件

注意:安装软件时,如果出现安装失败的情况,可能是因为网络原因导致的。只需要再次执行安装命令即可。

安装NTP

用于同步各个节点的时间。需要安装Chrony,通常情况下安装在控制器节点,其他节点则同步控制节点的时间,来达到各个节点时间一致的效果。

代码语言:javascript复制
#安装chrony
[root@controller /]# yum install chrony -y

#配置(可选)
[root@controller /]# vim /etc/chrony.conf
server 0.centos.pool.ntp.org iburst

#启动软件、设置开机启动
[root@controller /]# systemctl start chronyd.service
[root@controller /]# systemctl enable chronyd.service

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。

添加OpenStack软件源

网络上发布的OpenStack存在多个不同版本,eg:Victoria、Queens、Train等。本次使用的时Queens版本。

代码语言:javascript复制
#添加Queens版本源
[root@controller ~]# yum install centos-release-openstack-queens -y 

#升级软件包
[root@controller ~]# yum upgrade -y

#安装OpenStack Client
[root@controller ~]# yum install python-openstackclient -y
安装SQL数据库

通常情况下,数据库安装在控制节点上,用于存储OpenStack的数据。

代码语言:javascript复制
#安装SQL
[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL -y

#配置SQL
[root@controller /]# vim /etc/my.cnf.d/openstack.cnf
[mysqld]
#修改为本机的网卡IP
bind-address = 192.168.83.139

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

#设置开机自启、启动SQL
[root@controller /]# systemctl enable mariadb.service
[root@controller /]# systemctl start mariadb.service

#设置SQL数据库的root账号、密码
[root@controller /]# mysql_secure_installation
安装消息队列

消息队列服务通常安装在控制器节点上。用于协调服务之间的操作和状态信息。

代码语言:javascript复制
#安装MQ
[root@controller /]# yum install rabbitmq-server

#设置开机自启、启动MQ
[root@controller /]# systemctl enable rabbitmq-server.service
[root@controller /]# systemctl start rabbitmq-server.service

#添加MQ用户,设置密码
[root@controller /]# rabbitmqctl add_user openstack RABBIT_PASS

#允许openstack用户进行配置、写入和读取访问
[root@controller /]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
安装Memcached

Memcached 服务通常安装在控制器节点上。服务的身份服务认证机制使用 Memcached 来缓存token令牌。

代码语言:javascript复制
#安装
[root@controller /]# yum install memcached python-memcached

#配置
[root@controller /]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
#新增controller域名,其他节点可以通过该域名直接访问
OPTIONS="-l 127.0.0.1,::1,controller"

#设置开机自启、启动软件
[root@controller /]# systemctl enable memcached.service
[root@controller /]# systemctl start memcached.service
安装ETCD数据库

用于分布式密钥锁定、存储配置、跟踪服务实时性和其他场景。

代码语言:javascript复制
#安装etcd
[root@controller /]# yum install etcd

#配置etcd:
#ETCD_INITIAL_CLUSTER, ETCD_INITIAL_ADVERTISE_PEER_URLS, ETCD_ADVERTISE_CLIENT_URLS,ETCD_LISTEN_CLIENT_URLS设置为控制节点的IP(即:本机的网卡IP)
[root@controller /]# vim /etc/etcd/etcd.conf
[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.83.139:2380"
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.83.139:2379"
ETCD_NAME="controller"
[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.83.139:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.83.139:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.83.139:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"

#设置开机自启、启动软件
[root@controller /]# systemctl enable etcd
[root@controller /]# systemctl start etcd

本次安装OpenStack所有的组件,均使用默认密码。

参考链接:https://blog.csdn.net/qq_37279311/ article/details/119114048

0 人点赞