前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >openstack双节点部署

openstack双节点部署

作者头像
冷影玺
发布于 2023-10-11 11:30:28
发布于 2023-10-11 11:30:28
1.6K05
代码可运行
举报
文章被收录于专栏:冷影玺冷影玺
运行总次数:5
代码可运行

OpenStack云平台搭建需要两个节点,一个是controller(控制节点),另一个是compute(计算节点)。

控制节点(controller)

一块200G硬盘

第一张网卡使用:192.168.100.10第二张网卡使用:192.168.200.10

计算节点(compute)

一块200G硬盘+一块100G硬盘

第一张网卡使用:192.168.100.20第二张网卡使用:192.168.200.20

云平台搭建需要使用centos7.5及7.0版本的镜像和chinaskills_cloud_iaas.iso镜像

镜像提供如下:部署所需的两个镜像

基础环境准备及安装系统

controller基础搭建配置:

具体输入完成图为:输入完成之后回车即可:

进行修改主机名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hostnamectl set-hostname controller

bash

修改第一张网卡信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth0

配置为:

进行重启网卡查看ip是否生效,用本机测试是否与外网相互通信:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart network

修改第二块网卡:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth1

重启网卡查看ip:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart network

修改内核:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/default/grub/

原文件内容:

修改为:

保存退出,刷新内核,然后重启使配置生效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grub2-mkconfig -o /boot/grub2/grub.cfg

reboot

compute基础搭建配置:

进行修改主机名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hostnamectl set-hostname compute

bash

配置第一张网卡:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth0

配置第二张网卡:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth1

重启网卡查看ip,主机测试通信情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart network
ip add

正式搭建openstack云平台

controller节点配置

首先我们使用CRT进行连接192.168.100.10的ip进行上传镜像至节点controller中:

关闭防火墙和selinux:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller ~]# systemctl stop firewalld        #关闭防火墙
[root@controller ~]# systemctl disable firewalld        #设置防火墙开机不自启
[root@controller ~]# setenforce 0        #临时关闭selinux防火墙,0表示关闭,1表示开启
[root@controller ~]# getenforce        #查看selinux防火墙的状态
Permissive
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller ~]# vi /etc/selinux/config         #非临时性

进入之后修改SELINUX

查看刚才上传的镜像:

进行挂载镜像:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller ~]# mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/
[root@controller ~]# mkdir /opt/centos
[root@controller ~]# cp -rf /mnt/* /opt/centos/
[root@controller ~]# umount /mnt/
[root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /mnt/
[root@controller ~]# cp -rf /mnt/* /opt/
[root@controller ~]# umount /mnt/
yum源文件处理

移除yum源:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller ~]# cd /etc/yum.repos.d/
[root@controller yum.repos.d]# mv * /media/
[root@controller yum.repos.d]# ls

写入yum源文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller yum.repos.d]# vi local.repo

写入如下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
 
[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1

进行查看:

清除yum源缓存,验证yum源,下载所需软件包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller yum.repos.d]# yum clean all        #清除yum源缓存
[root@controller yum.repos.d]# yum repolist        #列出所有可用的yum源
[root@controller yum.repos.d]# yum install -y vim vsftpd iaas-xiandian   #安装所需的软件包

配置vsftpd:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller yum.repos.d]# echo anon_root=/opt/ >> /etc/vsftpd/vsftpd.conf #设置匿名访问
[root@controller yum.repos.d]# systemctl restart vsftpd        #重启ftp服务
[root@controller yum.repos.d]# systemctl enable vsftpd        #设置ftp服务开机自启

修改脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller ~]# vim /etc/xiandian/openrc.sh

原文件内容:

需要删除所有第一行注释:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在非注释模式下按下:CTrl+v然后按下shift+g然后再按下D即可删除注释

如下图:

取消注释之后对其进行修改:

图片看不清可以按照如下进行配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.10        #controller节点的IP地址
 
#Controller HOST Password. example:000000 
HOST_PASS=000000
 
#Controller Server hostname. example:controller
HOST_NAME=controller
 
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.100.20        #compute节点的IP地址
 
#Compute HOST Password. example:000000 
HOST_PASS_NODE=000000
 
#Compute Node hostname. example:compute
HOST_NAME_NODE=compute
 
#--------------------Chrony Config-------------------##
#Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.100.0/24        #controller节点所在的网段
 
#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack
 
#Password for rabbit user .example:000000
RABBIT_PASS=000000
 
#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000
 
#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo        
ADMIN_PASS=000000
DEMO_PASS=000000
 
#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000
 
#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000
 
#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000
 
#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000
 
#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000
 
#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000
 
#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000
 
#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000
 
#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.100.10        #本机IP地址
 
#External Network Interface. example:eth1
INTERFACE_NAME=eth1
 
#External Network The Physical Adapter. example:provider
Physical_NAME=provider
 
#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101
 
#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200
 
#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000
 
#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000
 
#Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb1        #compute节点的存储块
 
#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000
 
#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb2        #compute节点的存储块
 
#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.100.20    #compute节点的IP地址
 
#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000
 
#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000
 
#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000
 
#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000
 
#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000
 
#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000
 
#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000
 
#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000
 
#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000
 
#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000
 
#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000
 
#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000

comoute节点配置

关闭防火墙,selinux:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute ~]# systemctl stop firewalld
[root@compute ~]# systemctl disable firewalld
[root@compute ~]# setenforce 0
[root@compute ~]# getenforce
[root@compute ~]# vi /etc/selinux/config

硬盘分区:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute ~]# fdisk /dev/sdb

yum源文件处理

移除yum源:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute ~]# cd /etc/yum.repos.d/
[root@compute yum.repos.d]# mv * /media/
[root@compute yum.repos.d]# ls

写入yum源文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute yum.repos.d]# vi local.repo

添加如下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
 
[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas-repo
gpgcheck=0
enabled=1

保存查看:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute yum.repos.d]# cat local.repo

清除yum源缓存,验证yum源,下载所需软件包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute yum.repos.d]# yum clean all
[root@compute yum.repos.d]# yum repolist
[root@compute yum.repos.d]# yum install -y vim iaas-xiandian

修改脚本

将controller节点的脚本复制到compute节点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute ~]# scp 192.168.100.10:/etc/xiandian/openrc.sh /etc/xiandian/openrc.sh

需要修改compute节点脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute ~]# vim /etc/xiandian/openrc.sh

第70行修改成本机ip:

刷脚本

controller节点需要刷下列脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@controller ~]# iaas-pre-host.sh        #刷完该脚本后需要重启
[root@controller ~]# iaas-install-mysql.sh
[root@controller ~]# iaas-install-keystone.sh
[root@controller ~]# source /etc/keystone/admin-openrc.sh         #使环境生效
[root@controller ~]# iaas-install-glance.sh
[root@controller ~]# iaas-install-nova-controller.sh
[root@controller ~]# iaas-install-neutron-controller.sh
[root@controller ~]# iaas-install-dashboard.sh

compute节点需要刷下列脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@compute ~]# iaas-pre-host.sh         #刷完该脚本后需要重启
[root@compute ~]# iaas-install-nova-compute.sh
[root@compute ~]# iaas-install-neutron-compute.sh

登录OpenStack云平台

输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://192.168.100.10/dashboard

输入账号密码:

进行连接:

配置完成

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Python】教你彻底了解Python中的自动化任务处理
自动化任务处理是指通过编写脚本或使用工具,自动执行重复性、规则性任务,从而提高效率、减少人为错误。在Python中,有许多强大的库和工具可以用于自动化任务处理。本文将深入探讨Python在自动化任务处理中的应用,涵盖自动化任务处理的基本概念、常用的自动化工具、文件与目录操作、网络请求与数据抓取、任务调度与自动化、桌面自动化、以及一些实际应用示例。
E绵绵
2025/05/25
1630
Python 自动化脚本开发秘籍:从入门到实战进阶(6/10)
在数据爆炸和重复性任务激增的当下,Python 凭借简洁语法与强大生态,成为自动化脚本开发的首选语言。本文结合实战经验,分享从环境搭建到复杂场景落地的全流程秘籍,助你高效解决数据处理、文件管理、网络交互等核心问题。
正在走向自律
2025/05/12
1010
Python 自动化脚本开发秘籍:从入门到实战进阶(6/10)
测试和开发工作必备的17个Python自动化代码
您是否厌倦了在日常工作中做那些重复性的任务?简单但多功能的Python脚本可以解决您的问题。
测试小兵
2024/03/04
7060
测试和开发工作必备的17个Python自动化代码
独家 | 17个可以用于工作自动化的最佳Python脚本(上集)
您是否厌倦了在日常工作中做那些重复性的任务?简单但多功能的Python脚本可以解决您的问题。
数据派THU
2023/11/12
1.6K0
独家 | 17个可以用于工作自动化的最佳Python脚本(上集)
【实用原创】20个Python自动化脚本,解放双手、事半功倍
在当今的快节奏工作环境中,自动化不再是一种奢侈,而是提高效率和精确性的必需手段。Python,以其易于学习和强大的功能而闻名,成为实现各种自动化任务的理想选择。无论是数据处理、报告生成,还是日常的文件管理,一个简单但有效的Python脚本就能大幅减轻您的工作负担。在本文中,我们将探索如何使用Python来创建多个自动化脚本,它不仅能够节省您的时间,还可以提高工作的准确率和效率。我们先来看第一个自动化脚本
用户6888863
2023/12/13
2.8K0
【实用原创】20个Python自动化脚本,解放双手、事半功倍
【10个Python脚本来自动化你的日常任务】
在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。那么在本文中,我将介绍 10 个 Python 自动化脚本。
老虎也淘气
2024/01/30
3080
分享十个好用到爆的Python自动化脚本
在这个自动化时代,我们有很多重复无聊的工作要做。想想这些你不再需要一次又一次地做的无聊的事情,让它自动化,让你的生活更轻松。那么在本文中,我将向您介绍10个Python自动化脚本,以使你的工作更加自动化,生活更加轻松。
用户6888863
2023/03/01
1.5K0
分享十个好用到爆的Python自动化脚本
【干货分享】推荐5个可以让你事半功倍的Python自动化脚本
相信大家都听说自动化流水线、自动化办公等专业术语,在尽量少的人工干预的情况下,机器就可以根据固定的程序指令来完成任务,大大提高了工作效率。
用户6888863
2022/04/13
3200
【干货分享】推荐5个可以让你事半功倍的Python自动化脚本
分享4个实用的Python自动化脚本
大家平时有没有注意到你每天可能会执行许多地重复的任务,例如阅读 pdf、播放音乐、打开书签、清理文件夹等等。
陈晨135
2021/12/16
6220
分享4个实用的Python自动化脚本
万字长文,Python的应用领域有哪些?
网络上很多似懂非懂的人,总是要么说Python被眼中高估了,要么说Python不值得学,就是脚本语言
周萝卜
2024/01/02
2910
万字长文,Python的应用领域有哪些?
10 个 Python 脚本来自动化你的日常任务
此自动化脚本将帮助你从网页 URL 中提取 HTML,然后还为你提供可用于解析 HTML 以获取数据的功能。这个很棒的脚本对于网络爬虫和那些想要解析 HTML 以获取重要数据的人来说是一种很好的享受。
老表
2022/10/31
8240
分享6个实用的Python自动化脚本
每天你都可能会执行许多重复的任务,例如阅读 pdf、播放音乐、查看天气、打开书签、清理文件夹等等,使用自动化脚本,就无需手动一次又一次地完成这些任务,非常方便。而在某种程度上,Python 就是自动化的代名词。今天分享 6 个非常有用的 Python 自动化脚本。
somenzz
2021/12/02
2K0
分享6个实用的Python自动化脚本
通过大模型 API 优化复杂工作流构建知识库的实践与突破
在当今信息爆炸的时代,知识库的构建与管理成为了企业和组织高效运作的关键。传统的知识库构建方法往往依赖人工整理和分类,效率低下且难以应对海量数据。随着人工智能技术的快速发展,尤其是大模型(如 OpenAI 的 GPT 系列)的出现,知识库的构建与优化迎来了全新的可能性。
flyskyocean
2025/03/21
1860
10 个令人惊叹的 Python 自动化脚本
你是否曾发现自己忙于处理多个文本片段,而忘记了自己复制了什么?有没有想过有一个工具可以记录你一天中复制的所有内容?
数据STUDIO
2024/04/18
2020
10 个令人惊叹的 Python 自动化脚本
AI办公自动化-用kimi把PDF文档按照章节自动拆分成多个docx文档
你是一个Python编程专家,要完成一个编写拆分PDF文档的Python脚本的任务,具体步骤如下:
AIGC部落
2024/06/24
2290
AI办公自动化-用kimi把PDF文档按照章节自动拆分成多个docx文档
Python自动化办公之Excel对比工具
今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍!
周萝卜
2022/04/06
9650
Python自动化办公之Excel对比工具
postman接口用例转化为python自动化测试用例
很多人可能会用postman,python,但是不会写测试脚本,想要快速写python自动化测试的脚本, postman里面有完成的用例。可是不会写python脚本,想要转化,本次呢,我就将postman复制code到python代码里面,需要的步骤。给大家讲解一下。
雷子
2021/03/15
2.5K1
postman接口用例转化为python自动化测试用例
21个Python脚本自动执行日常任务(2)
作为编程领域摸爬滚打超过十年的老手,我深刻体会到,自动化那些重复性工作能大大节省我们的时间和精力。
数据科学工厂
2024/12/30
1230
21个Python脚本自动执行日常任务(2)
使用 Python 进行 Windows GUI 自动化
在今天的文章中,我们将探讨如何使用 Python 进行 Windows GUI 自动化。GUI 自动化可以帮助我们自动执行许多与操作系统交互的任务,比如移动鼠标、点击按钮、输入文本、移动窗口等。Python 提供了两个强大的库:pyautogui 和 pywinauto,使得 GUI 自动化变得简单。接下来我们详细介绍。
somenzz
2023/08/22
2K0
使用 Python 进行 Windows GUI 自动化
基于Python+uiautomation的windowsGUI自动化测试概述
一直使用Python做自动化测试,近期遇到了要对桌面端软件即windowsGUI进行自动化测试。Python的GUI自动化测试工具有很多,但是都有不同的侧重点。本次会详细说明为啥选择uiautomation来做测试。
虫无涯
2023/02/02
4.1K0
推荐阅读
相关推荐
【Python】教你彻底了解Python中的自动化任务处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验