【版本】
当前版本号v20230313
版本 | 修改说明 |
---|---|
v20230313 | 增加后台进程(服务)说明 |
v20220208 | 换用VirtualBox |
v20210324 | 加入验证部分 |
v20210301 | 修正控制节点步骤3的说明 |
v20210227 | 初始化版本 |
【实验名称】
云计算部署实战 Part 2 - 配置计算节点和控制节点
【实验目的】
- 掌握虚拟机的克隆和配置
- 掌握 Openstack 计算节点和控制节点的配置
【实验环境】
- 内存:至少4G
- 硬盘:至少空余40G
- 操作系统: 64位 Windows系统。
【实验资源】
- FinalShell
- CentOS 7 系统镜像
- VirtualBox
- Openstack 源
【实验步骤】
【计算节点】复制
- 通过复制(克隆) Part1 制作的
OpenstackTmpl
模板镜像,新创建一个计算节点镜像。
复制要确保虚拟机处于关闭的状态
虚拟机名称命名为
Computer+你的学号后3位
。启动计算节点,并在 FinalShell 配置 root 用户进行登录。此处过程略。
【计算节点】设置 hostname 和 hosts
- 设置计算节点主机名,注意替换学号。例如你的学号是221,则主机名为
computer221
。
hostnamectl set-hostname computer+你的学号后3位
- 输出hostname 查看是否修改成功。
hostname
- 修改计算节点IP为10.0.0.31。注意如果你的网卡名字是
enp0s3
,则需要编辑/etc/sysconfig/network-scripts/ifcfg-enp0s3
vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.0.0.31
使用命令
ip a
可以查看到网卡名称
重启计算节点,并使用 root 用户进行SSH登录。
编辑hosts文件,在文件末增加以下代码,把节点名称映射到相应IP。注意替换学号。
这里注意是在文件末增加内容,不要删除原有内容!
vim /etc/hosts
10.0.0.11 controller+你的学号后3位
10.0.0.31 computer+你的学号后3位
【计算节点】设置时间同步
- 打开时间同步配置文件,在文件最后增加以下代码,保存退出。
vim /etc/chrony.conf
server 10.0.0.11 iburst
- 重启时间同步服务
systemctl restart chronyd
【计算节点】安装 Openstack 客户端和 openstack-selinux
- 安装 Openstack 客户端和 openstack-selinux
yum install python-openstackclient openstack-selinux -y
【控制节点】复制
- 复制 Part1 制作模板镜像,新创建一个控制节点镜像。
注意以下命令是在控制节点下执行!
【控制节点】设置 hostname 和 hosts
- 启动控制节点,并使用 root 用户进行登录。设置控制节点主机名,注意替换学号(不符合要求不给分)。
hostnamectl set-hostname controller+你的学号后3位
- 输出hostname 查看是否修改成功。
hostname
- 重启控制节点。
reboot
- 编辑hosts文件,在文件末增加以下代码,把节点名称映射到相应IP。注意替换学号。
vim /etc/hosts
10.0.0.11 controller+你的学号后3位
10.0.0.31 computer+你的学号后3位
【控制节点】设置时间同步
- 打开时间同步配置文件,大约在26行,修改 allow 相关代码,保存退出。
vim /etc/chrony.conf
# Allow NTP client access from local network.
allow 10/8
【控制节点】安装 Openstack 客户端和 openstack-selinux
- 安装 Openstack 客户端和 openstack-selinux
yum install python-openstackclient openstack-selinux -y
【控制节点】安装和设置 MariaDB
MariaDB 是非常流行的开源关系型数据库。 Openstack 各个组件都可以使用 MariaDB 来存储数据。
- 安装配置 MariaDB
yum install mariadb mariadb-server python2-PyMySQL -y
- 修改 MariaDB 的配置。
echo '[mysqld]
bind-address = 10.0.0.11
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8' >/etc/my.cnf.d/openstack.cnf
- 设置 MariaDB 为开机启动
systemctl start mariadb
systemctl enable mariadb
- 开始 MariaDB 安全配置和初始化。
mysql_secure_installation
- 修改 MariaDB 的 root 用户密码为123456。
Enter current password for root (enter for none): ->回车
Set root password? [Y/n] -> 输入y
New password: -> 输入123456
Re-enter new password: -> 输入123456
Remove anonymous users? [Y/n] -> 输入y
Disallow root login remotely? [Y/n] -> 输入y
Remove test database and access to it? [Y/n] -> 输入y
Reload privilege tables now? [Y/n] -> 输入y
【控制节点】安装和设置 RabbitMQ
RabbitMQ 是 Advanced Message Queuing Protocol (AMQP,高级消息队列协议)开放标准的实现,是比较流行的开源消息代理组件。 Openstack 使用 RabbitMQ 作为底层组件来实现不同模块之间的远程调用(RPC)。
- 安装 RabbitMQ
yum install rabbitmq-server -y
- 启动 RabbitMQ,并设置为开机启动
systemctl start rabbitmq-server.service
systemctl enable rabbitmq-server.service
- 新增 RabbitMQ 用户。用户名为
openstack
,密码为RABBIT_PASS
。
rabbitmqctl add_user openstack RABBIT_PASS
正常应该返回 Creating user “openstack” …
- 设置 RabbitMQ 用户 openstack 的权限。
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
正常应该返回 Setting permissions for user “openstack” in vhost “/” …
- RabbitMQ 启用
rabbitmq_management
插件。
rabbitmq-plugins enable rabbitmq_management
正常应该返回类似以下信息
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@controller999... started 6 plugins.
【控制节点】安装和设置 Memcached
Memcached 是一个基于内存的,开源的分布式对象缓存系统。 Openstack 会使用 Memcached 存储一些短期的对象,例如令牌等。
- 安装 Memcached
yum install memcached python-memcached -y
- 修改 Memcached 的配置,替换 127.0.0.1 为控制节点内网IP。
sed -i 's#127.0.0.1#10.0.0.11#g' /etc/sysconfig/memcached
sed命令可以利用脚本来处理文本文件,包括插入,删除,替换等操作
- 重启 Memcached,并设置为开机启动。
systemctl restart memcached.service
systemctl enable memcached.service
计算节点验证
重启
计算节点
虚拟机。在
计算节点
上查看以下服务是否是 active 的状态,注意是 active,不是activing。关于服务的状态可以查看 系统服务状态解释
systemctl status chronyd
控制节点验证
重启
控制节点
虚拟机。在
控制节点
上查看以下服务是否是 active 的状态。正常应该出现4个服务 active。
systemctl -a |grep -E "UNIT|chronyd|memcached|rabbitmq|mariadb"
【后台进程(服务)说明】
服务名称 | 日志目录 | 说明 |
---|---|---|
chronyd | /var/log/chrony | chrony是网络时间协议(NTP)的实现。它可以替代ntpd,实现服务器 |
rabbitmq-server | /var/log/rabbitmq | RabbitMQ 是高级消息队列协议(AMQP)开放标准的实现,常用于服务器之间的消息通讯,Openstack 使用 RabbitMQ 作为底层组件来实现不同模块之间的远程调用(RPC)。 |
mariadb | /var/log/mariadb | MariaDB 是非常流行的开源关系型数据库,它能够兼容MySQL |
memcached | /var/log/messages | Memcached 是一个基于内存的,开源的分布式对象缓存系统。 Openstack 会使用 Memcached 存储一些短期的对象,例如令牌等。 |
思考和探索
- 为什么服务器的时间需要同步?
- 上面提到的一些组件,包括chrony、MariaDB、RabbitMQ、Memcached,你都知道他们的主要功能吗?