首先准备两台虚拟机一台controller、一台compute(均为centos7)
controller:作为控制节点(后面会复用,用到的时候会提到),配置两张网卡,一张NAT模式,作为数据网卡、一张仅主机网卡,作为管理网卡。
compute:作为计算节点,其他同上。
接下来开始搭建
1、基础的配置
1.1修改主机名(两台主机分开做)
修改两台主机的主机名
hostnamectl set-hostname controller
hostnamectl set-hostname compute
1.2配置域名解析(两台主机都做)
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
自己ip地址 controller
自己ip地址 compute
1.3关闭防火墙和selinux以及NetworkManager(两台主机都做)
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 设置开机不自启
systemctl stop NetworkManager 关闭NetworkManager
systemctl disable NetworkManager 设置开机不自启
setenforce 0 临时设置selinux为关闭 即时生效
getenforce 查看
vi /etc/selinx/config 中修改
SELINUX=disabled
2.yum的配置
1.
mkdir /iso 光驱存放目录
上传光驱
XianDian-IaaS-v2.2.iso
CentOS-7-x86_64-DVD-1511.iso
2.新建挂载目录
mkdir /opt/xiandian
mkdir /opt/dvd
3.进行光驱的挂载
mount /iso/XianDian-IaaS-v2.2.iso /opt/xiandian/
mount /iso/CentOS-7-x86_64-DVD-1511.iso /opt/dvd
4.编辑yum源
建议先把此目录下面的文件放到一个文件下
mkdir bak
mv C* bak
cd /etc/yum.repos.d
vi xiandian.repo
[xiandian]
name=xiandian
baseurl=file:///opt/xiandian/iaas-repo
gpgcheck=0
enabled=1
[dvd]
name=dvd
baseurl=file:///opt/dvd/
gpgcheck=0
enabled=1
随后对yum仓库进行检查
yum clean all 清除原有缓存
yum repolist 检查
出现下面这些基本就是ok的
已加载插件:fastestmirror
dvd | 3.6 kB 00:00:00
xiandian | 2.9 kB 00:00:00
(1/3): dvd/group_gz | 155 kB 00:00:00
(2/3): dvd/primary_db | 2.8 MB 00:00:00
(3/3): xiandian/primary_db | 2.3 MB 00:00:00
Determining fastest mirrors
源标识 源名称 状态
dvd dvd 3,723
xiandian xiandian 1,688
repolist: 5,411
为了防止我们在关掉虚拟机后,yum源失效。我们在这里编写一个自动挂载的文件。在每次开机的时候就自动挂载我们的yum源,方便使用
文件名 /etc/fstab
vi /etc/fstab
添加以下内容,内容中的路径根据自己的实际路径来编写
/iso/XianDian-IaaS-v2.2.iso /opt/xiandian iso9660 defaults 0 0
/iso/CentOS-7-x86_64-DVD-1511.iso /opt/dvd iso9660 defaults 0 0
wq 保存退出
mount -a 测试是否编写成功,执行此命令后无输出则为成功
经过上面的步骤我们本地的yum源就完成了
接下来我们要做的就是把yum发布到集群网络中去,让集群中的节点能过通过网络来使用到我们的yum源,有很多种方法,比如安装http服务,将yum源放到httpd的网页上/var/www/html、或者使用ftp服务来共享文件
我这里使用ftp服务来实现
在controller节点上
首先安装vsftpd和vim
yum install -y vsftpd vim
安装好以后在vsftpd的配置文件中/etc/vsftpd/vsftpd.conf添加一行
anon_root=/opt
因为ftp服务将用户分为匿名用户、实体用户以及虚拟用户,vsftpd默认允许匿名用户的登录,这条命令是将匿名用户登录后的主目录固定在opt目录下。
systemctl enable vsftpd 将ftp服务设为开机自启
systemctl start vsftpd 开启vsftpd
在controller节点上确保vsftpd服务的开启以及yum源的正常,在compute上进行配置
cd /etc/yum.repos.d
mkdir bak
mv C* bak/
同样的进入yum源配置目录,将原有文件打包放入一个文件夹中备用
vim centos.repo
[xiandian]
name=xiandian
baseurl=ftp://controller节点ip/xiandian/iaas-repo/
gpgcheck=0
enabled=1
[dvd]
name=dvd
baseurl=ftp://controller节点ip/dvd/
gpgcheck=0
enabled=1
上面的配置文件中将ip和yum的路径换成自己的
://前面定义的是使用的什么协议,因为我们这里使用的就是ftp,这里为什么没有opt目录,是因为我们在定义ftp时直接将我们匿名用户登录后的主目录固定到了opt下,所以当登录后我们就直接在opt目录下了。
在使用
yum clean all 清空缓存
yum repolist 检查仓库
3.时间同步
在openstack中为什么要做时间同步?openstack中的组件很多且各个组件之间需要通信,而我们的各个组件在真实的生产环境中是部署在不同主机上的,当我们的时间不同步时,某个组件给另一个组件发消息时可能会出现时间与接收消息组件时间相比较为稍前或者滞后,这时我们的计算机就会直接抛弃来自昨天或者未来的消息,会导致组件之间的联系断开。
controller:
我们这里使用的时间同步是ntp服务
安装ntp相关软件
yum install -y ntp ntpdate
使用阿里的服务器校准我们的本机的时间
ntpdate ntp1.aliyun.com
如果时间差较大,建议多同步几次
随后将其写入硬件时间,我们的系统中会有两个时间,一个是软件时间,一个硬件时间。系统会定时的通过读取硬件时间来改变软件时间
clock -w 写入硬件时间
我们将controller的是时间同步好后,将controller节点作为整个集群里面的时间服务器
vim /etc/ntp.conf
注释其他时间服务器
放开自己的网段并把自己作为时间服务器
开启ntp服务并设置开机自启
compute:
安装ntpdate
yum install -y ntpdate
并与controller同步时间
ntpdate controller
clock -w 写入硬件时间
因为我们的环境是一直在跑的,所以难免有时候时间会跑偏。所以我们编写一个周期性计划,让其自动去向我们的controller同步时间,并生成一个日志文件
crontab -e
*/2 * * * * /usr/sbin/ntpdate 时间服务器ip >> /var/log/ntpdate.log
systemctl restart crond
这样我们的时间就会每隔两分钟就会同步一次了
4.最后就是安装我们搭建openstack所要用的软件包了(两个节点都做)
yum install -y openstack-utils openstack-selinux python-openstackclient
由于个人学识有限,文章中的不足请大家多多见谅。更多文章详见个人主页。谢谢!