当前位置: 首页 > news >正文

openstack搭建

openstack搭建

1、虚拟机部署规划

主机主机名IP规划
实例通讯内部通讯
控制节点controller192.168.10.144192.168.1.144
实例节点compute192.168.10.145192.168.1.145

2、硬件配置

主机名内存逻辑CPU数量硬盘容量
controller4G480G
compute4G480G+20G

3、安装centos7,命名compute/controller

在此,我使用centos7系统,内存给了4G,磁盘空间给了80G和20G两个磁盘,处理器2个,网络为NAT模式

虚拟机设置:

在这里插入图片描述

打开虚拟化引擎,并给两个磁盘,是为了给openstack一个安装空间,不可省略

4、配置yum源

  • 控制节点controller:

创建目录/opt/centos

配置本地yum源:

上传镜像

在这里插入图片描述

配置

##CentOS-7挂载
[root@controller ~]# mount -o loop ./CentOS-7-x86_64-DVD-1511centOS7.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
##复制
[root@controller ~]# cp -rf /mnt/* /opt/centos
##卸载
[root@controller opt]# umount /mnt/
##XianDian挂载
[root@controller ~]# mount -o loop ./XianDian-IaaS-v2.2.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
##复制
[root@controller opt]# cp -rf /mnt/* /opt/
[root@controller opt]# umount /mnt/

构建:

[root@controller yum.repos.d]# mkdir centos
[root@controller yum.repos.d]# mv CentOS-* centos/
[root@controller yum.repos.d]#vi local.repo
[root@controller yum.repos.d]# ls
centos  local.repo
[root@controller yum.repos.d]# cat local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1

缓存:

##清除
[root@controller yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: centos iaas
Cleaning up everything
##新建
[root@controller yum.repos.d]# yum makecache
已加载插件:fastestmirror
centos                                             | 3.6 kB     00:00     
iaas                                               | 2.9 kB     00:00     
(1/7): centos/group_gz                               | 155 kB   00:00     
(2/7): centos/filelists_db                           | 2.9 MB   00:00     
(3/7): centos/primary_db                             | 2.8 MB   00:00     
(4/7): centos/other_db                               | 1.2 MB   00:00     
(5/7): iaas/primary_db                               | 2.3 MB   00:00     
(6/7): iaas/filelists_db                             | 1.9 MB   00:00     
(7/7): iaas/other_db                                 | 692 kB   00:00     
Determining fastest mirrors
元数据缓存已建立
[root@controller yum.repos.d]# 

建立FTP服务:

​ 安装软件包

[root@controller yum.repos.d]# yum install iaas-xiandian vsftpd -y
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 iaas-xiandian.x86_64.0.2.2-0 将被 安装
---> 软件包 vsftpd.x86_64.0.3.0.2-11.el7_2 将被 安装
--> 解决依赖关系完成
...
已安装:iaas-xiandian.x86_64 0:2.2-0       vsftpd.x86_64 0:3.0.2-11.el7_2      完毕!
[root@controller yum.repos.d]# 

​ 配置软件包

[root@controller yum.repos.d]# vi /etc/vsftpd/vsftpd.conf 
[root@controller yum.repos.d]# tail -n 1 /etc/vsftpd/vsftpd.conf 
anon_root=/opt/

​ 设置开机自启

[root@controller yum.repos.d]# systemctl start vsftpd
[root@controller yum.repos.d]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
  • 计算节点compute:

删除本地源文件,创建本地源文件在文件中填入以下内容:

[root@compute yum.repos.d]# vi local.repo
[root@compute yum.repos.d]# cat local.repo
[centos]
name=centos
baseurl=ftp://192.168.10.144/centos
gpgcheck=0
enabled=1[iaas]
name=iaas
baseurl=ftp://192.168.10.144/iaas-repo
gpgcheck=0
enabled=1
##缓存
[root@compute yum.repos.d]# yum makecache
已加载插件:fastestmirror
centos                                                                                                    | 3.6 kB  00:00:00     
iaas                                                                                                      | 2.9 kB  00:00:00     
(1/7): centos/group_gz                                                                                    | 155 kB  00:00:01     
(2/7): centos/filelists_db                                                                                | 2.9 MB  00:00:01     
(3/7): centos/other_db                                                                                    | 1.2 MB  00:00:00     
(4/7): centos/primary_db                                                                                  | 2.8 MB  00:00:01     
(5/7): iaas/filelists_db                                                                                  | 1.9 MB  00:00:01     
(6/7): iaas/primary_db                                                                                    | 2.3 MB  00:00:01     
(7/7): iaas/other_db                                                                                      | 692 kB  00:00:00     
Determining fastest mirrors
元数据缓存已建立

5、主机名

##controller节点
[root@localhost ~]# 
[root@localhost ~]# hostnamectl set-hostname controller
[root@localhost ~]# bash
[root@controller ~]# hostname
controller##compute节点
[root@bogon ~]# hostnamectl set-hostname compute
[root@bogon ~]# bash
[root@compute ~]# hostname
compute

6、配置静态IP

双节点配置

[root@bogon /]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 [root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE="Ethernet"
BOOTPROTO="static"##静态
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="dada9ac5-ddca-4a1b-bfb2-05f3e8333495"
DEVICE="eno16777736"
ONBOOT="yes"
IPADDR=192.168.10.145##IP
GATEWAY=192.168.10.2##网关
NETMASK=255.255.255.0##子网掩码
DNS1=8.8.8.8##解析
DNS2=114.114.114.114##解析
[root@compute ~]# 
#重启网卡
[root@compute /]# systemctl restart network
[root@compute ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:4d:d9:bf brd ff:ff:ff:ff:ff:ffinet 192.168.10.145/24 brd 192.168.10.255 scope global eno16777736valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe4d:d9bf/64 scope link valid_lft forever preferred_lft forever
3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:4d:d9:c9 brd ff:ff:ff:ff:ff:ffinet 192.168.1.145/24 brd 192.168.1.255 scope global eno33554960valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe4d:d9c9/64 scope link valid_lft forever preferred_lft forever
#ping baidu
[root@compute ~]# ping www.baidu.com
PING www.a.shifen.com (39.156.66.18) 56(84) bytes of data.
64 bytes from 39.156.66.18: icmp_seq=1 ttl=128 time=61.9 ms
64 bytes from 39.156.66.18: icmp_seq=2 ttl=128 time=67.1 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 61.994/64.562/67.130/2.568 ms
[root@compute ~]# 

7、关闭防火墙,并禁用SLINUX

双机配置

[root@compute ~]# systemctl stop firewalld
[root@compute ~]# systemctl disable firewalld
[root@compute ~]#  vi /etc/selinux/config 
[root@compute ~]# cat /etc/selinux/config# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled  
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted [root@compute ~]# reboot

8、修改主机映射

配置解析双机

[root@c ~]# vi /etc/hosts
[root@compute ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.144 controller
192.168.10.145 compute

9、脚本文件配置

##控制节点
[root@controller ~]# cat /etc/xiandian/openrc.sh 
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.10.144#Controller Server hostname. example:controller
HOST_NAME=controller#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.10.145#Compute Node hostname. example:compute
HOST_NAME_NODE=compute#--------------------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#External Network Interface. example:eth1
INTERFACE_NAME=eno33554960#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=#--------------------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=#--------------------Trove Config--------------------##
#Password for Mysql Trove User. exmaple:000000
TROVE_DBPASS=000000#Password for Keystore Trove User. exmaple:000000
TROVE_PASS=000000#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000#--------------------Ceilometer Config----------------##
#Password for Mysql 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
[root@controller ~]# 
[root@controller ~]# source iaas-pre-host.sh 
##依次运行以下脚本:
iaas-install-mysql.sh
iaas-install-keystone.sh
iaas-install-glance.sh
iaas-install-nova-controller.sh
iaas-install-neutron-controller.sh
iaas-install-neutron-controller-gre.sh
iaas-install-dashboard.sh
##计算节点
[root@compute ~]# scp 192.168.10.144:/etc/xiandian/openrc.sh openrc.sh
The authenticity of host '192.168.10.144 (192.168.10.144)' can't be established.
ECDSA key fingerprint is ef:3c:3f:33:12:a8:b9:69:7a:17:af:e3:6e:10:92:8c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.144' (ECDSA) to the list of known hosts.
root@192.168.10.144's password: 
openrc.sh                               100% 3027     3.0KB/s   00:00    
[root@compute ~]# ls
[root@compute ~]# source iaas-pre-host.sh 
##依次运行以下脚本:
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-neutron-compute-gre.sh

10、访问

ure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.10.144’ (ECDSA) to the list of known hosts.
root@192.168.10.144’s password:
openrc.sh 100% 3027 3.0KB/s 00:00
[root@compute ~]# ls
[root@compute ~]# source iaas-pre-host.sh
##依次运行以下脚本:
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-neutron-compute-gre.sh


### 10、访问### 浏览器访问http://192.168.10.144/dashboard

相关文章:

  • 如何开发高效服务(C++ )
  • Java——LinkedList
  • 基于C++、MFC和Windows套接字实现的简单聊天室程序开发
  • 软件服务中的 SLA 到底是什么?
  • React基础教程(07):条件渲染
  • iText7画发票PDF——小tips
  • QT:day1
  • Java:111-SpringMVC的底层原理(中篇)
  • 热门开源项目ChatTTS: 国内语音技术突破,实现弯道超车
  • WPF/C#:异常处理
  • 如何使用new和delete操作符进行动态内存分配和释放?
  • 《C语言》文件操作
  • 细说MCU修改回调函数调用模式的方法
  • 爬虫可以不必自己写,使用ChatGPT编写抓取电影评论数据脚本
  • leetcode198 打家劫舍
  • CSS居中完全指南——构建CSS居中决策树
  • Git的一些常用操作
  • Gradle 5.0 正式版发布
  • Python打包系统简单入门
  • ucore操作系统实验笔记 - 重新理解中断
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 复习Javascript专题(四):js中的深浅拷贝
  • 高度不固定时垂直居中
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何进阶一名有竞争力的程序员?
  • 如何胜任知名企业的商业数据分析师?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 一道闭包题引发的思考
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • raise 与 raise ... from 的区别
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #include<初见C语言之指针(5)>
  • (13)Hive调优——动态分区导致的小文件问题
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (CPU/GPU)粒子继承贴图颜色发射
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (ros//EnvironmentVariables)ros环境变量
  • (WSI分类)WSI分类文献小综述 2024
  • (七)Java对象在Hibernate持久化层的状态
  • (四)图像的%2线性拉伸
  • (转)jQuery 基础
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ./configure、make、make install 命令
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET的微型Web框架 Nancy
  • .Net接口调试与案例
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)