OpenStack部署1.0:基础环境部署(train)
先放个链接,万一有人关注呢
优质文章推荐
↓ ↓ ↓ ↓ ↓
准备3台主机配置在2核2G或以上,存储20G以上,尽量配置高一些。3台主机分别作为控制节点、计算节点与块存储节点。
主机网络(3台都要做)
为了试验方便,关闭3台主机的外部与内部防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
配置静态IP(3台),防止DHCP导致的IP变动
vim /etc/sysconfig/network-scripts/ifcfg-ens33
内容大致如下
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#将原来的dhcp修改为static
BOOTPROTO="static"
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="21b39a7b-a822-4266-ae8d-c02cdc90adaa"
DEVICE="ens33"
ONBOOT="yes"
#添加如下内容
#IP地址
IPADDR=192.168.2.161
#子网掩码
NETMASK=255.255.255.0
#默认网关
GATEWAY=192.168.2.1
#默认域名解析地址
DNS1=8.8.8.8
重启网络
systemctl restart network
这里用的是CentOS 7,如果是CentOS 8,则不能用此命令重启网络。
分别给3台主机修改主机名
hostnamectl set-hostname controller
hostnamectl set-hostname compute
hostnamectl set-hostname compute2
解析主机名(3台),为了3台主机方便连接
vim /etc/hosts
添加如下内容
192.168.2.161 controller
192.168.2.162 compute
192.168.2.163 compute2
在CentOS中,CentOS默认启用extras仓库,extras仓库提供OpenStack所用的RPM包,因此可以直接安装OpenStack所用的RPM包。
更换国内源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
安装软件包
yum -y install centos-release-openstack-train
升级软件包
yum upgrade
安装OpenStack客户端
yum -y install python-openstackclient
网络时间协议(控制节点与其他节点的操作不同)
在所有节点安装Chrony
yum -y install chrony
在控制节点,编辑配置文件
vi /etc/chrony.conf
添加如下内容
#根据控制节点主机名配置
server controller iburst
#根据主机所处的网段配置
allow 192.168.2.0/24
在计算节点与块存储节点编辑配置文件,在配置文件中添加如下内容
#根据控制节点主机名配置
server controller iburst
启动服务(3台)
systemctl enable chronyd
systemctl start chronyd
验证是否配置成功
chronyc sources -v
输出如下
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
^* controller 2 6 177 16 +601us[+1255us] +/- 37ms
MS的值为^*时,说明时间同步配置成功
数据库(控制节点)
OpenStack服务支持MariaDB、MySQL等SQL数据库,这里选择MariaDB。
安装数据库
yum -y install mariadb mariadb-server python2-PyMySQL
编辑配置文件,设置监听地址及数据库的相关配置,使得其他节点能够通过控制节点访问数据库
vi /etc/my.cnf.d/openstack.cnf
内容如下
[mysqld]
bind-address = 192.168.2.161 #监听地址
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
在初始化过程中需要手动配置密码,为了操作方便,这里使用一个简单的123密码。
消息队列(控制节点)
安装RabbitMQ
yum -y install rabbitmq-server
开启服务
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
RabbitMQ服务添加openstack用户
rabbitmqctl add_user openstack 123 #123是密码
输出如下
Creating user "openstack"
给予openstack用户读和写的权限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
输出如下
Setting permissions for user "openstack" in vhost "/"
对象缓存服务(控制节点)
安装Memcached
yum install memcached python-memcached
修改Memcached的配置文件,将服务配置为控制节点的IP地址
vi /etc/sysconfig/memcached
内容如下
OPTIONS="-l 192.168.190.129,::1,controller"
开启服务
systemctl enable memcached.service
systemctl start memcached.service
键值存储服务(控制节点)
Etcd是一种可靠的分布式键值存储服务,用于存储配置、跟踪服务实时性等场景。etcd为OpenStack提供关键的协调和数据存储服务,是构建可靠分布式云管理平台的重要组件。
etcd不属于典型的NoSQL数据库,准确来说它是一个采用Go语言开发的分布式键值存储系统。etcd作为一个优秀的分布式键值存储系统,与一般意义上的NoSQL数据库有明显区别,它更专注在分布式协调和key-value存储方面,而不是作为通用数据库使用。
安装Etcd服务
yum install etcd -y
修改Etcd的配置文件,将服务设置为控制节点的IP地址
vi /etc/etcd/etcd.conf
内容如下
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.2.161:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.2.161:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.2.161:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.2.161:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.2.161:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
开启服务
systemctl enable etcd
systemctl start etcd
来不及解释了,快上车!(进群看公告)
欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。
↓↓↓ 点个在看,你最好看!