当前位置: 代码网 > 移动>腾讯>微信 > 云计算赛项学习————OpenStack 平台搭建

云计算赛项学习————OpenStack 平台搭建

2024年08月03日 微信 我要评论
PS: 原创作品,严禁用于商业目的。如有任何技术问题,欢迎和我交流:w104118078 (微信号)

ps: 原创作品,严禁用于商业目的。如有任何技术问题,欢迎和我交流:w104118078  (微信号)

一、基础环境准备


二、搭建openstack云平台

controller节点配置:

## 1.controller 网络配置

[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
type=ethernet
proxy_method=none
browser_only=no
bootproto=static
ipaddr=192.168.100.100
netmask=255.255.255.0
gateway=192.168.100.1
dns1=233.5.5.5
dns2=114.114.114.114
defroute=yes
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
name=ens33
uuid=4933c159-8fcb-4646-a29f-6b5c8b4e79f
device=ens33
onboot=yes

[root@controller ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34
type=ethernet
proxy_method=none
browser_only=no
bootproto=static
ipaddr=192.168.200.100
netmask=255.255.255.0
defroute=yes
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
name=ens34
uuid=932fef43-d94a-4a84-9b3f-428a85af8858
device=ens34
onboot=yes

## 2.修改主机名

[root@localhost ~]# hostnamectl set-hostname controller

[root@controller ~]# bash 

## 3.修改 hosts 文件将 ip 地址映射为主机名

[root@controller ~] vi /etc/hosts
192.168.100.100 controller
192.168.100.200 compute

## 4.关闭防火墙

[root@controller ~]# systemctl disable firewalld

[root@controller ~]# systemctl stop firewalld

## 5.设置selinux

selinux有两个级别:
强制、警告
setenforce 0 :表示警告(permissive)
setenforce 1 :表示强制(enforcing)

状态分为以下三种:
selinux=enforcing #selinux开启,级别为强制
selinux=permissive #selinux开启,级别为警告
selinux=disabled #selinux关闭

[root@controller ~]# setenforce 0        # 临时设置等级,重启失效

[root@controller ~]# vi /etc/selinux/conf        #  重启后,永久生效
selinux=permissive

## 6.配置yum源

上传 centos 7 iso镜像文件和iaas iso镜像文件到controller主机root目录下面

[c:\~]$ scp d:\chinaskills_cloud_iaas.iso root@192.168.200.100:/root

[c:\~]$ scp d:\centos-7-x86_64-dvd-1804.iso root@192.168.200.100:/root

[root@controller ~]# ls
anaconda-ks.cfg  centos-7-x86_64-dvd-1804.iso  chinaskills_cloud_iaas.iso

挂载镜像到opt目录下(临时挂载,重启失效)

[root@controller ~]# mount -o loop chinaskills_cloud_iaas.iso /opt/iaas/
mount: /dev/loop is write-protected, mounting read-only

[root@controller ~]# mount -o loop centos-7-x86_64-dvd-1804.iso /opt/centos/
mount: /dev/loop is write-protected, mounting read-only

——————————————————————————————————————————————————————————————————————————————————————

[root@controller ~]# vi /etc/fstab       # 永久挂载

/dev/mapper/centos-root /                       xfs     defaults        0 0
uuid=fda6f1d5-b8c5-4401-a68b-b2ab67ed8370 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

#添加以下内容
#镜像名称								挂载路径			格式		
/root/centos-7-x86_64-dvd-1804.iso      /opt/centos     iso9660 defaults        0 0
/root/chinaskills_cloud_iaas.iso        /opt/iaas       iso9660 defaults        0 0

[root@controller ~]# gzip /etc/yum.repo.d/*        # 使原yum源失效

[root@controller ~]# vi /etc/yum.repo.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1

[root@controller ~]# yum clean all        # 清除yum源缓存

[root@controller ~]# yum repolist        # 验证yum源

## 7.搭建vsftpd

[root@controller ~]# yum install -y vsftpd

[root@controller ~]# echo anon_root=/opt/ >> /etc/vsftpd/vsftpd.conf    # 修改vsftp 共享服务根目录

[root@controller ~]# systemctl enable vsftpd

[root@controller ~]# systemctl start vsftpd

## 8.时间同步配置

[root@controller ~]# yum -y install chrony

[root@controller ~]# vi /etc/chrony.conf        # 修改配置文件

server controller iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.100.0/24
local stratum 10
logdir /var/log/chrony

[root@controller ~]# systemctl restart chronyd        # 重启chrony服务

[root@controller ~]# systemctl enable chronyd         # 设置开机自启动

compute节点配置:

## 1.compute 网络配置

[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
type=ethernet
proxy_method=none
browser_only=no
bootproto=static
ipaddr=192.168.100.200
netmask=255.255.255.0
gateway=192.168.100.1
dns1=233.5.5.5
dns2=114.114.114.114
defroute=yes
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
name=ens33
uuid=4933c159-8fcb-4646-a29f-6b5c8b4e79f8
device=ens33
onboot=yes

[root@compute ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens34
type=ethernet
proxy_method=none
browser_only=no
bootproto=static
ipaddr=192.168.200.200
netmask=255.255.255.0
defroute=yes
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
name=ens34
uuid=932fef43-d94a-4a84-9b3f-428a85af8858
device=ens34
onboot=yes

## 2.修改主机名

[root@localhost ~]# hostnamectl set-hostname compute

[root@compute ~]# bash 

## 3.修改 hosts 文件将 ip 地址映射为主机名

[root@compute ~] vi /etc/hosts
192.168.100.100 compute
192.168.100.200 compute

## 4.关闭防火墙

[root@compute ~]# systemctl disable firewalld

[root@compute ~]# systemctl stop firewalld

## 5.设置selinux

selinux有两个级别:
强制、警告
setenforce 0 :表示警告(permissive)
setenforce 1 :表示强制(enforcing)

状态分为以下三种:
selinux=enforcing #selinux开启,级别为强制
selinux=permissive #selinux开启,级别为警告
selinux=disabled #selinux关闭

[root@compute ~]# setenforce 0        # 临时设置等级,重启失效

[root@compute ~]# vi /etc/selinux/conf        #  重启后,永久生效
selinux=permissive

## 6.配置yum源

[root@compute ~]# gzip /etc/yum.repo.d/*        # 使原yum源失效

[root@compute ~]# vi /etc/yum.repo.d/local.repo
[centos]
name=centos
baseurl=ftp://controller/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://controller/iaas/iaas-repo
gpgcheck=0
enabled=1

[root@compute ~]# yum clean all        # 清除yum源缓存

[root@compute ~]# yum repolist        # 验证yum源

## 7.时间同步设置

[root@compute ~]# yum -y install chrony

[root@compute ~]# vi /etc/chrony.conf

server controller iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

[root@compute ~]# systemctl restart chronyd        # 重启chrony服务

[root@compute ~]# chronyc sources -v
# 结尾显示为 ^* controller  则是同步成功

## 8.设置硬盘分区

[root@compute ~]# lsblk 
name            maj:min rm  size ro type mountpoint
sda               8:0    0   20g  0 disk 
├─sda1            8:1    0    1g  0 part /boot
└─sda2            8:2    0   19g  0 part 
  ├─centos-root 253:0    0   17g  0 lvm  /
  └─centos-swap 253:1    0    2g  0 lvm  [swap]
sdb               8:16   0  200g  0 disk 
sr0              11:0    1  4.2g  0 rom

[root@compute ~]# fdisk /dev/sdb

command (m for help): n
select (default p): p
partition number (1-4, default 1): 
first sector (2048-419430399, default 2048): 
using default value 2048
last sector, +sectors or +size{k,m,g} (2048-419430399, default 419430399): +25g    # 输入 +25g ,将sdb 硬盘分区1 设置为25g大小

command (m for help): n
select (default p): p
partition number (2-4, default 2): 
first sector (52430848-419430399, default 52430848): 
using default value 52430848
last sector, +sectors or +size{k,m,g} (52430848-419430399, default 419430399): +25g    # 
 输入 +20g ,将sdb 硬盘分区2 设置为25g大小
partition 2 of type linux and of size 25 gib is set

command (m for help): w        # 输入w更新磁盘并退出
the partition table has been altered!

三、正式搭建openstack云平台

controller节点配置:

[root@controller ~]# yum install -y iaas-xiandian

[root@controller ~]# vi /etc/xiandian/openrc.sh
命令模式下输入::%s/^#//g                # 将#号去掉

 
#--------------------system config--------------------##
#controller server manager ip. example:x.x.x.x
host_ip=192.168.100.100        #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.200        #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.100        #本机ip地址
 
#external network interface. example:eth1
interface_name=ens33
 
#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.200    #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

[root@controller ~]# source /etc/xiandian/openrc.sh        # 环境配置生效

[root@controller ~]# scp /etc/xiandian/openrc.sh root@compute:/etc/xiandian/openrc.sh    # 将controller节点的脚本拷贝到compute节点

compute节点配置:

[root@compute ~]# yum install -y iaas-xiandian

[root@compute ~]# vi /etc/xiandian/openrc.sh        # 修改脚本

interface_ip=192.168.100.200        #本机ip地址

 刷脚本:

controller节点:

  安装openstack包,配置域名解析,防火墙和selinux,安装ntp服务等
​[root@controller ~]# iaas-pre-host.sh         # 刷完脚本后需要重启

ps:注意使用临时挂载的话,controller节点重启后,需要重新挂载yum源

  安装rabbitmq服务、mysql、memcahce等
[root@controller ~]# iaas-install-mysql.sh


  安装keystone服务包,创建keystone数据库,配置数据库连接
[root@controller ~]# iaas-install-keystone.sh

  安装glance镜像服务包,创建glance数据库,配置数据库连接
[root@controller ~]# iaas-install-glance.sh

  安装nova
[root@controller ~]# iaas-install-nova-controller.sh

  安装neutron
[root@controller ~]# iaas-install-neutron-controller.sh

  安装dashboard
[root@controller ~]# iaas-install-dashboard.sh

compute节点:

  安装openstack包,配置域名解析,防火墙和selinux,安装ntp服务等
[root@compute ~]# iaas-pre-host.sh            # 刷完脚本后需要重启

  安装nova
[root@compute ~]# iaas-install-nova-compute.sh

  安装neutron
[root@compute ~]# iaas-install-neutron-compute.sh

四、 登录openstack云平台

在浏览器界面输入192.168.100.100/dashboard

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com