前言
本篇是以在校内完成的云计算实训,搭建一个OpenStack平台。需要用到的软件是FinalShell、RockyLinux 8 系统镜像、VirtualBox (使用VMWare Workstation也可)。所需环境:至少4G。至少空余40G、64位 Windows系统。所需资源:光盘文件Rocky-8.8-x86_64-dvd1.iso、已创建的openstack_tmpl虚拟机
实验1 导入并测试模板机
实验目的:掌握搭建 RockyLinux 模板镜像、熟练掌握 Linux命令(vi、tar、mv等等)的使用、掌握 VirtualBox 或 VMWare Workstation的使用、掌握使用 SSH 客户端连接虚拟机。
实验步骤:
1、安装VirtualBox 7。如下图已成功安装。
2、安装 FinalShell。如下图已成功安装。
3、进入当前Windows系统的网络适配器设置,修改VirtualBox的虚拟网卡VirtualBox Host-Only Ethernet Adapter的配置。
4、解压openstack_tmpl.zip文件到一个没有中文和空格的路径下。VirtualBox 注册模板机openstack_tmpl,选中openstack_tmpl.vbox文件。
5、设置网络为Host-Only。
6、插入光盘文件Rocky-8.8-x86_64-dvd1.iso。
7、启动openstack_tmpl虚拟机。
8、配置FinalShell连接虚拟机。若连接成功,FinalShell会显示连接主机成功。
9、分别输入测试源dnf repolist和dnf makecache测试是否正常工作。
10、输入python -v,测试 Python 是否正常工作。
11、返回Virtualbox,关闭Virtualbox虚拟网卡的 DHCP 服务。
实验2 配置计算节点和控制节点
实验2.1 复制并配置计算节点
实验目的:掌握虚拟机的克隆和配置、掌握 Openstack 计算节点。
实验步骤:
1、通过复制(克隆)实验1 的openstack_tmpl模板镜像,新创建一个计算节点镜像。
2、将新创建的计算节点镜像虚拟机名称命名为Computer202。(命名根据各自需求而不同命名)。
(注!保存路径建议保存在全英文的路径中)
3、启动计算节点,并在FinalShell配置root用户进行登录。
4、输入‘hostnamectl set-hostname computer202’,设置计算节点主机名。
5、输入hostname,查看是否修改成功。若返回结果为所设置计算节点主机名则成功。
6、输入‘vi /etc/sysconfig/network-scripts/ifcfg-enp0s3’,修改计算节点IP为10.0.0.31。修改完以后输入‘systemctl restart NetworkManager’,重启网络管理器。输入‘ip a’查看网卡名称。
7、重启计算节点,并使用root用户进行SSH登录。
8、输入‘vim /etc/hosts’,编辑hosts文件,在文件末增加代码,把节点名称映射到相应IP。
9、输入‘ping controller202 -c 4’,验证hosts和hostname配置是否正确。
10、输入‘vim /etc/chrony.conf’,打开时间同步配置文件,在文件最后增加代码‘server 10.0.0.11 iburst’,保存退出。
11、输入‘systemctl restart chronyd’,重启时间同步服务。
12、重启计算节点虚拟机。
13、输入‘vim /usr/local/bin/opst-proc-show.sh’,增加一个脚本用于查看计算节点的 OpenStack 进程状态。
14、输入‘chmod u+x /usr/local/bin/opst-proc-show.sh’,增加脚本执行权限。
15、输入‘opst-proc-show.sh’,在计算节点上执行脚本命令。查看以下服务是否是active的状态。
实验2.2 复制并配置控制节点
实验目的:掌握虚拟机的克隆和配置、掌握 Openstack 计算节点。
实验步骤:
1、复制openstack_tmpl制作模板镜像,新创建一个控制节点镜像。(命名根据各自需求而不同命名)。
2、将新创建控制节点镜像虚拟机名称命名为Controller202。
(注!保存路径建议保存在全英文的路径中)
3、修改控制节点内存为2G。
4、启动控制节点,并使用root用户进行登录。输入‘hostnamectl set-hostname controller202’,设置控制节点主机名。
5、输入hostname,查看是否修改成功。
6、输入reboot,重启控制节点。
7、输入‘vi /etc/sysconfig/network-scripts/ifcfg-enp0s3’,修改计算节点IP为10.0.0.11。
8、输入‘vim /etc/hosts’,编辑hosts文件,在文件末增加代码,把节点名称映射到相应IP。
9、在控制节点输入‘ping controller202 -c 4’,验证hosts和hostname配置是否正确。再在计算节点输入‘ping computer+你的学号后3位 -c 4’,验证hosts和hostname配置是否正确。
10、输入‘vim /etc/chrony.conf’,打开时间同步配置文件,修改 allow 相关代码,保存退出。
11、输入‘systemctl restart chronyd’和‘systemctl enable chronyd’重启chronyd进程。
12、输入‘dnf install python3-openstackclient openstack-selinux -y’,安装Openstack客户端和openstack-selinux。(图省略)
13、输入‘dnf install mariadb mariadb-server python2-PyMySQL -y’,安装配置MariaDB。(图省略)
14、修改MariaDB的配置。(输入如图所示的内容)
15、输入‘systemctl start mariadb和systemctl enable mariadb’,设置MariaDB为开机启动。
16、输入‘mysql_secure_installation’,开始MariaDB安全配置和初始化。
17、修改MariaDB的root用户密码为123456。
18、输入‘dnf install rabbitmq-server -y’,安装RabbitMQ。(图省略)
19、输入‘systemctl start rabbitmq-server.service’和‘systemctl enable rabbitmq-server.service’启动RabbitMQ,并设置为开机启动。
20、输入‘rabbitmqctl add_user openstack RABBIT_PASS’,新增RabbitMQ用户。用户名为openstack,密码为RABBIT_PASS。
21、输入‘rabbitmqctl set_permissions openstack ".*" ".*" ".*"’,设置 RabbitMQ 用户openstack的权限。
22、输入‘rabbitmq-plugins enable rabbitmq_management’,让RabbitMQ启用rabbitmq_management插件。
23、输入‘dnf install memcached python3-memcached -y’,安装Memcached。(图省略)
24、修改Memcached的配置。(输入如图所示的内容)
25、输入‘vim /usr/lib/systemd/system/memcached.service’,将选项After=network.target修改为After=network-online.target。
26、输入‘systemctl restart memcached’和‘systemctl enable memcached’,重启Memcached,并设置为开机启动。
27、输入‘systemctl status memcached’,查看Memcached进程是否为Active。
28、输入‘dnf install etcd -y’,安装etcd。(图省略)
29、输入‘vim /etc/etcd/etcd.conf’,配置etcd。修改框起来的选项。
30、输入‘systemctl enable etcd’和‘systemctl start etcd’,设置开机启动。
31、测试etcd存储功能。例如学号001
对应的学生名字为zhangsan
,我们可以把这个键值对存储到 etcd。输入etcdctl --endpoints="http://10.0.0.11:2379" set 001 zhangsan,会返回zhangsan这个结果。
32、测试 etcd 读取功能。读取学号001
。输入etcdctl --endpoints="http://10.0.0.11:2379" get 001,会返回001这个结果。
33、重启控制节点虚拟机。
34、输入‘vim /usr/local/bin/opst-proc-show.sh’,增加一个脚本用于查看计算节点的OpenStack进程状态。
35、输入‘opst-proc-show.sh’,在控制节点执行脚本,查看服务是否是active的状态。(如果某个服务状态不是active
,可以使用命令systemctl restart 服务名称
来尝试重启。如果输入‘opst-proc-show.sh’只出现4个服务,说明是不完整的,一般来说是出现5个,可通过‘systemctl list-units --type=service --state=active’查看所有的服务,查看服务状态是否正常。)
实验1和实验2就已经完结啦,在这个过程中可能会出现问题,建议我们每一次完成一个实验的时候都做一个快照,点击我们所创建的快照,当我们哪一步做错了就可以回到那个快照,保留当时的状态,这样可以不用完全重新完成实验了。这个快照真的非常好用。
实验1和实验2可能出现的问题:使用‘opst-proc-show.sh’命令,不够权限查看OpenStack相关服务是否是active的状态。解决方法:通过输入‘sudo chown $USER:$USER /usr/local/bin/opst-proc-show.sh 和chmod u+x /usr/local/bin/opst-proc-show.sh’命令语句,调整给文件添加执行权限,并将其所有者更改为当前用户,再输入‘opst-proc-show.sh’,命令成功执行。