前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转企业云计算平台系列(二):Openstack 基础环境部署

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

作者头像
民工哥
发布2023-12-28 11:23:04
4190
发布2023-12-28 11:23:04
举报
文章被收录于专栏:民工哥技术之路

安装虚拟机

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

  • 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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装虚拟机
  • 准备工作
    • 禁用SELinux
      • 关闭防火墙
        • 配置网卡
          • 配置主机名
            • 设置时区
            • 安装基础软件
              • 安装NTP
                • 添加OpenStack软件源
                  • 安装SQL数据库
                    • 安装消息队列
                      • 安装Memcached
                        • 安装ETCD数据库
                        相关产品与服务
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档