云计算与OpenStack学习笔记(3)

配置OpenStack实验环境

1. 实验环境架构

实验环境架构示意图
实验环境架构如上图所示,至少需要一个控制节点、一个计算节点、一个网络节点(最好再有一个存储节点)。其中一个小圆点代表该节点的一个网卡,相同颜色的网卡表示属于同一个子网/网段,六边形代表网络/子网,可以看到,控制节点具有一张网卡,计算节点和网络节点都具有三张网卡,而存储节点具有两张网卡(均是下限)。并且由网络节点连接到外部互联网。

其具体网段分配如下图:

网段分配
图中又增添了两个对象存储模块,因而共存在4个网络/子网/网段,分别是管理网络、隧道网络、外部网络和存储网络。

由于我们并没有那么多的计算机节点用于实验,因而后续实验选择在虚拟机上完成实现。

教程中所使用的虚拟机软件为Vmware Workstation 10,我这里用的是Vmware Workstation 14 Pro。所选择使用的操作系统为ubuntu 14.04_02 LTS 这里保持一致即可。

2. 检查和配置主机环境

2.1 相关软件及虚拟机的安装

2.1.1 VMware的安装

我是很早前就安装好了VMware,关于下载安装教程可以参考这个《最新超详细VMware虚拟机下载与安装

2.1.2 Ubuntu 14.02_02 LTS Server的安装

下载:https://man.linuxde.net/download/Ubuntu_14_04 选择Ubuntu 14.04.2 LTS映像下载即可。

关于安装可以按照这篇《VMware下Ubuntu Server 14.04安装教程(最详细)

其中需要注意的几点为:

  • 语言强烈推荐选英文(English)(博文的3-3、3-5-2部分),因为选中文可能会遇到一些莫名其妙的错误
  • ssh服务建议在安装系统时就选择直接装上(博文的3-12部分)
  • 最后的更改网卡名称步骤不需要
  • 在创建各个节点时,对于计算节点和网络节点要配置3个网卡
2.1.3 SecureCRT的安装

关于SecureCRT可以参考这篇博文《SecureCRT绿色破解版(解压即可使用、无需积分)

2.2 实验环境配置

2.2.1 VMware的NAT配置

由于教程中所使用的VMware版本为10,其NAT的设置与后续版本好像有所不同,因而需要我们将自己安装的高版本的VMware网络配置信息进行修改,具体方法如下:

首先在编辑中打开虚拟网络编辑器,
步骤1
然后选择更改设置,将VMnet8的子网地址更改为10.0.0.0.
步骤2
然后点击NAT设置,
步骤3
设置网关地址为10.0.0.2
步骤4
点击确认,然后应用即可。

2.2.2 主机名的配置

依照教程,我们需要将三台主机的主机名分别命名为controller、compute1、network。其可以通过以下几个步骤完成:

  1. 首先在VMware中启动这三台虚拟机,使用root用户登录并使用ifconfig命令查看与记录本机ip。

  2. 使用secureCRT分别连接到这三台虚拟机上,ip即为上面所记录的,以controller节点为例:
    ip配置
    可以看到其ip为10.0.0.11,然后使用secureCRT进行连接。
    连接
    首次连接时需要进行新建操作。

  3. 修改/etc/hostname文件中的内容即可更改主机名。命令为:

vi /etc/hostname

直接将文本内容修改为要修改后的名字即可,例如controller节点的内容(就一行内容)即:
内容
其他计算节点、网络节点的配置相同。

2.2.3 主机网卡的配置

配置网卡需要使用root命令对/etc/network/interfaces文件进行编辑。命令为:

vi /etc/network/interfaces
  • controller节点的网卡配置

按照2.1中的网段分配方案,controller节点只有一个网卡,且其ip为10.0.0.11,使用vi命令对/etc/network/interfaces进行编辑。
首先需要将原来的配置信息注释掉,

#auto eth0
#iface eth0 inet dhcp

然后在后面插入我们对网卡的配置信息:

auto eth0
iface eth0 inet static
address 10.0.0.11
gateway 10.0.0.2
netmask 255.255.255.0
dns-nameservers 10.0.0.2

然后保存重启虚拟机即可。

  • network节点的网卡配置

network节点具有三张网卡,所以一定确保虚拟机设置里是有至少三张网卡的。使用vi命令对/etc/network/interfaces进行编辑。
首先需要将原来的配置信息注释掉,

#auto eth0
#iface eth0 inet dhcp

然后加入我们的配置信息:

auto eth0
iface eth0 inet static
address 10.0.0.21
gateway 10.0.0.2
netmask 255.255.255.0
dns-nameservers 10.0.0.2

auto eth1
iface eth1 inet static
address 10.0.1.21
gateway 10.0.0.2
netmask 255.255.255.0
dns-nameservers 10.0.0.2

auto eth2
iface eth2 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down

然后保存重启虚拟机即可。

  • compute1节点的网卡配置

compute1节点同样具有三张网卡,所以一定确保虚拟机设置里是有至少三张网卡的。使用vi命令对/etc/network/interfaces进行编辑。
首先需要将原来的配置信息注释掉,

#auto eth0
#iface eth0 inet dhcp

然后加入我们的配置信息:

auto eth0
iface eth0 inet static
address 10.0.0.31
gateway 10.0.0.2
netmask 255.255.255.0
dns-nameservers 10.0.0.2

auto eth1
iface eth1 inet static
address 10.0.1.31
gateway 10.0.0.2
netmask 255.255.255.0
dns-nameservers 10.0.0.2

auto eth2
iface eth2 inet static
address 10.0.2.31
gateway 10.0.0.2
netmask 255.255.255.0
dns-nameservers 10.0.0.2

然后保存重启虚拟机即可。

2.2.4 修改IP地址与主机名信息对应

为了我们方便书写命令,需要对三台机器的/etc/hosts文件进行修改。

其命令为

vi /etc/hosts

首先将第二行内容注释掉,比如对于计算节点的虚拟机,注释掉第二行即:

注释掉第二行
之后在文件尾部添加以下内容:

10.0.0.11 controller
10.0.0.21 network
10.0.0.31 compute1

三个节点都是如此的配置步骤,之后保存文件重启虚拟机即可。

2.3 主机环境检查测试

2.3.1 主机网络配置检查

使用ifconfig检查主机网络配置,重点检查各个网卡的ip地址是否按1.2中网段划分配置正确

2.3.2 外网连通性测试

使用如下命令进行测试:

ping ubuntu-cloud.archive.canonical.com

如果可以ping通即测试通过。

2.3.3 检查三台主机间的网络联通性

在三台主机上分别使用如下命令进行检测:

ping controller
ping network
ping compute1

如果一切测试正常,则表示主机环境一切配置正确,如异常请仔细检查是否每一步都按照以上步骤进行。

3. 安装时间同步服务

3.1 APT工具简介

  • APT (Advanced Package Tool)是一款适用于Unix和Linux系统的应用程序管理器
  • APT成名的原因之一在于其出色的解决了软件的依赖关系
  • 主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统
  • 适用于deb包管理式的操作系统,比如ubuntu
  • /etc/apt/sources.list存放的是软件源站点, 当执行软件包安装命令时,Ubuntu 就去这些站点下载软件包到本地并执行安装

其工作原理如下图:

APT工作原理
其常用命令有以下几个:

apt-get:用于管理软件包,包括安装、卸载、升级等操作;
apt-cache:用于查询软件包信息;
apt-show-versions:用于显示系统中软件包版本信息;
apt-get upgrade:更新软件包,在修改/etc/apt/sources.list或/etc/apt/preferences之后运行该命令
apt-get dist-upgrade:将系统升级到新版本。

3.2 安装时间同步服务NTP

3.2.1 NTP简介

NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机保持时间同步的一种协议。NTP客户端可以和NTP服务器的计算机时间保持一致

云计算环境可以使用多个主机节点进行分布式安装,要求各节点的时间保持一致。

3.2.2 NTP的安装

在配置时间同步时,我们需要先完成配置controller的时间同步,剩下两台虚拟机的时间同步直接与controller同步即可。按以下步骤进行:

  1. 首先在controller节点上安装NTP,使用命令:
apt-get install ntp
  1. 删除/var/lib/ntp/ntp.conf.dhcp 文件(rm /var/lib/ntp/ntp.conf.dhcp ),否则会使用此文件内的配置。若文件不存在,则默认已经删除了,无需再管。
  2. 修改controller 中的 /etc/ntp.conf文件 (vi /etc/ntp.conf 打开文件,要记得获取root权限)
    打开文件后,要先把它文件中本来存在的server的四个连续语句删除掉(形如:server [IP or hostname] [prefer], server 是用来設定上级 NTP服务器),然后添加进去下面三句,第一个为时间同步的网址。同时再接着往下拉。
server ntp.sjtu.edu.cn 
server NTP_SERVER1 iburst
server NTP_SERVER2 iburst

之后再接着往下编辑,添加以下四条语句:

restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify
restrict 10.0.0.21 mask 255.255.255.0 nomodify
restrict 10.0.0.31 mask 255.255.255.0 nomodify

这里的两个IP地址即为compute1节点和network节点的IP地址

  1. 接着配置其他两台虚拟机的NTP服务,同样是先安装NTP,然后对/etc/ntp.conf文件进行修改,其修改内容如下:
    删除它文件中本来存在的server的四个连续语句,然后添以下三条语句:
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify

server controller ibrust
  1. 重启NTP以及客户端同步 service ntp restart 或者 /etc/init.d/ntp restart
  2. 校验时间同步的安装
    在终端使用如下命令进行NTP的校验:
ntpq -c peers
ntpq -c assoc

检查结果如下:

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

4. 配置OpenStack安装包源

在这里插入图片描述
在进行环境搭建时,我们一般选择将内网(即我们要配置的云主机群)内的某个节点设置为Repository,而由这个节点再去与互联网进行通信从远程Repository中进行软件的下载。而内网内的其他主机则可以直接从该节点处下载升级程序等(即将该节点视为其远程仓库),这样可以确保内网内软件版本环境等的一致性,也在一定程度上提高了安全性。

  1. 首先要配置互联网软件包源(安装Ubuntu Cloud archive keyring 和repository),使用命令:
apt-get install ubuntu-cloud-keyring

echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list
  1. 升级系统
apt-get update && apt-get dist-upgrade

之后重启计算机。

注意:三台主机都需要这样配置!

5. 安装数据库Mariadb

5.1 Mariadb简介

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

同时,Python是一种面向对象、解释型计算机程序设计语言,其语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

MySQLdb是python对mysql数据库进行操作的模块(客户端),借助该库,我们可以很方便的在Python中编程实现对数据库的操作。

5.2 安装与配置Mariadb

5.2.1 安装Mariadb

使用命令

apt-get install mariadb-server python-mysqldb

进行安装

5.2.2 配置Mariadb
  1. 首先要创建和编辑/etc/mysql/conf.d/mysqld_openstack.cnf
    使用命令
vi /etc/mysql/conf.d/mysqld_openstack.cnf

接着在其中写入配置信息

[mysqld]
bind-address = 10.0.0.11

default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

其设置含义为:

  • bind-address设置允许远程访问数据库的主机地址
  • default-storage-engine数据库使用的存储引擎
  • innodb_file_per_table参数修改InnoDB为独立表空间模式
  • character-set-server指定数据库使用的字符集
  • init-connect指定客户端连接时运行的命令
  • collation-server指定数据库的字符排序和校验方式
  • utf8_general_ci性能优于utf8_unicode_ci

完成后重启数据库 service mysql restart

  1. 使用mysql_secure_installation命令为数据库增强安全性
    输入命令
mysql_secure_installation

依次为root用户设置密码、 删除匿名账号、 取消root用户远程登录、 删除test库和对test库的访问权限、刷新授权表使修改生效
为数据库增强安全性
我这里由于root密码在安装时已经设置好了,就没有更改root密码

6. 安装消息队列服务RabbitMQ

6.1 MQ与OpenStack

6.1.1 MQ简介
  • MQ全称为Message Queue
  • 消息队列(MQ)是一种应用程序对应用程序的通信方法。
  • 应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
  • 队列的使用除去了接收和发送应用程序同时执行的要求。

消息队列示意图

6.1.2 OpenStack与MQ的联系
  • OpenStack使用消息队列在不同的服务之间协调操作和状态信息
  • OpenStack支持多种消息服务软件:RabbitMQ, Qpid, and ZeroMQ.
  • MQ服务将运行于Controller Node节点
  • RabbitMQ是流行的开源消息队列系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值