openstack“T版“基础环境部署

部署

环境

控制节点ct
CPU:双核双线程-CPU虚拟化开启
内存:8G 硬盘:30G+300G(CEPH块存储)
双网卡:VM1-(局域网)192.168.66.11 NAT-20.0.0.11
操作系统:Centos 7.6(1810)-最小化安装

2、计算节点c1
CPU:双核双线程-CPU虚拟化开启
内存:8G 硬盘:30G+300G(CEPH块存储)
双网卡:VM1(局域网)-192.168.66.12 NAT-20.0.0.12
操作系统:Centos 7.6(1810)-最小化安装

3、计算节点c2
CPU:双核双线程-CPU虚拟化开启
内存:8G 硬盘:30G+300G(CEPH块存储)
双网卡:VM1(局域网)-192.168.66.13 NAT-20.0.0.13
操作系统:Centos 7.6(1810)-最小化安装
PS:最小内存6G

思路

配置操作系统+OpenStack运行环境
配置OpenStack平台基础服务:rabbitmq(各个组件之间传递信息,消息队列),mariadb,memcache(身份验证存储令牌,数据库),Apache

ps:
各个组件之间的交互是通过“消息队列”来实现的,就是使用RabbitMQ。其中,有这样几个角色:producer, consumer, exchange, queue,producer是消息发送者,consumer是消息接受者,中间要通过exchange和queue。producer将消息发送给exchange,exchange决定消息的路由,即决定要将消息发送给哪个queue,然后consumer从queue中取出消息,进行处理,消息发出,资源正被占用,这时,需要等待到资源占用释放,才可以进行任务。如一直等待,直到资源被释放,才执行任务,叫同步调用,如将任务排列在这等待,自己继续进行其他任务,叫异步调用。

基础设置

安装CentOS7.6,开启虚拟化
在这里插入图片描述
在安装过程中:
选择Install CentOS 7,按tab键,输入命令net.ifnames=0 biosdevname=0 ,安装目标位置,选择30G。最小化安装。

安装完成设置网卡

vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.66.11
NETMASK=255.255.255.0

vi /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=20.0.0.11
NETMASK=255.255.255.0
GATEWAY=20.0.0.2
DNS1=20.0.0.2
DNS2=8.8.8.8

systemctl restart network	

能ping通能上网。其他两台机差不多步骤。

步骤

关闭防火墙

systemctl stop firewalld
setenforce 0
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

设置映射(内部网址),都要

vi /etc/hosts  #添加
192.168.66.11 ct
192.168.66.12 c1
192.168.66.13 c2

免交互

三台节点做免交互

ssh-keygen -t rsa	
ssh-copy-id ct
ssh-copy-id c1
ssh-copy-id c2

基础环境依赖包

yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre  pcre-devel expat-devel cmake  bzip2 

yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils

net-tools 可以使用ifconfig命令

bash-completion 自动补全

pcre 正则 devel库

expat-devel:Apache依赖包,C语言开发,解析XML文档的开发库

centos-release-openstack-train 保证安装更新
openstack版本为最新版本t版

python-openstackclient openstack的python客户端因为openstack中的API大多数是python编写的,并且连接数据库,也需要python

openstack-selinux openstack核心安全防护

openstack-utils openstack其它util工具

多装几次,避免漏装对后期rabbitmq部署配置引发问题

时间同步

yum -y install chrony

vi /etc/chrony.conf 
前面的server注释掉
server ntp.aliyun.com iburst  #设置为时间同步源
allow 192.168.66.0/24         #为192.168.66.0网段提供时间同步

systemctl restart chronyd
systemctl enable chronyd
chronyc sources               #更新

ps:
iburst可以直接同步一个大的时间跨度
例如:刚创建一个虚拟机,时间设置为 2020年8月可以使用iburst直接立刻同步到现在时间2021年1月

不使用iburst,会以缓慢方式向标准时间进行靠拢

在生产环境里面,要看需求情况使用这个参数
(闰年,多一天,少一天,直接同步会产生影响)

节点上

vi /etc/chrony.conf 
server ct iburst    #设置时间同步源为控制节点

systemctl restart chronyd
systemctl enable chronyd
chronyc sources

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置周期性任务

crontab -e
*/30 * * * * /usr/bin/chronyc sources >> /var/log/chronyc.log

安装MariaDB

以下在控制节点安装即可

yum -y install mariadb mariadb-server python2-PyMySQL
yum -y install libibverbs

设置mysql配置文件

vi /etc/my.cnf.d/openstack.cnf   #添加
[mysqld]
bind-address=192.168.66.11    #控制节点局域网地址(绑定内网地址) 
default-storage-engine=innodb #默认存储引擎
innodb_file_per_table=on      #每张表独立表空间文件(文件存储空间)
max_connections=4096          #最大连接数
collation-server=utf8_general_ci   #默认字符集(不区分大小写)
character-set-server=utf8          #字符集utf8_bin区分大小写
systemctl enable mariadb 
systemctl start mariadb  

mysql_secure_installation 
Enter current password for root (enter for none):    #回车
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] N
Remove test database and access to it? [Y/n] Y 
Reload privilege tables now? [Y/n] Y 	

mysql -uroot -p123123

安装RabbitMQ

yum -y install rabbitmq-server
systemctl enable rabbitmq-server
systemctl start rabbitmq-server 

创建消息队列用户,用于controler和node节点连接rabbitmq的认证

rabbitmqctl add_user openstack RABBIT_PASS

配置openstack用户的操作权限(正则,配置读写权限)

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

查看rabbitmq插件列表

rabbitmq-plugins list

在这里插入图片描述
开启rabbitmq的web管理界面的插件,端口为15672(可以通过网页访问,图形化页面)

rabbitmq-plugins enable rabbitmq_management
netstat -anptu | grep 5672   

在这里插入图片描述

访问http://192.168.66.11:15672,默认账号密码都为guest
在这里插入图片描述

安装memcached

Memcached是一个自由开源的, 高性能,分布式内存对象缓存系统。Memcached是以LiveJourmal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、 Facebook. Vox、 LiveJournal等众多服务中提高Web应用扩展性的重要因素。Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。本质上,它是一个简洁的key-value存储系统。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。并且在BAT里,redis已经逐渐取代了memcached,成为分布式场景广泛使用的缓存方案。

安装memcached是用来存储session信息;服务身份验证机制使用memched来缓存令牌,在登录openstack的dashboard时,会产生一些session信息,这些session信息会存放到memcached中

yum -y install memcached python-memcached

修改memcached配置文件

vi /etc/sysconfig/memcached 
PORT="11211"      #默认端口号
USER="memcached"  #默认账户名
MAXCONN="1024"    #最大连接数
CACHESIZE="64"    #缓存大小
OPTIONS="-l 127.0.0.1,::1,ct"  #添加主机名

systemctl enable memcached
systemctl start memcached
netstat -anptu | grep 11211

在这里插入图片描述

安装etcd

优势:
简单: 基于HTTP+JSON的API让你可以用CURL命令就可以轻松使用。
安全: 可以选择SSL客户认证机制。
快速: 每个实例每秒支持一千次写操作。
可信: 使用Ralf算法充分实现了分布式。

应用场景:
服务发现
消息发布和订阅
负载均衡
分布式通知与协调
分布式锁
分布式队列
集群监控与Leader竞选

yum -y install etcd

修改配置文件

vi /etc/etcd/etcd.conf
ETCD_LISTEN_PEER_URLS="http://192.168.66.11:2380"       # 5
ETCD_LISTEN_CLIENT_URLS="http://192.168.66.11:2379"     # 6
ETCD_NAME="ct"                                          # 9
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.66.11:2380"   # 20
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.66.11:2379"         # 21
ETCD_INITIAL_CLUSTER="ct=http://192.168.66.11:2380"    # 26
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"           # 27
ETCD_INITIAL_CLUSTER_STATE="new"                       # 28 

systemctl enable etcd
systemctl start etcd 
systemctl status etcd 
netstat -anptu | grep 2379 
netstat -anutp |grep 2380

在这里插入图片描述
基础配置完成

猜你喜欢

转载自blog.csdn.net/weixin_50344742/article/details/113275071