openstack云平台搭建详细教程

前言

OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。有NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证授权的开源代码项目。

OpenStack是由Rackspace和NASA共同开发的云计算平台。

准备

1、准备CentOS-7-x86_64-DVD-1511.iso镜像

2、准备XianDian-IaaS-v2.2.iso镜像

3、准备VMware workstation16软件并制作好两个muban,可以查看我的虚拟机muban制作教程

开始

案例主要步骤

(1)了解OpenStack平台部署方法
(2)了解脚本部署方式
(3)使用脚本部署OpenStack平台

案例主要的架构

1、一台控制节点和一台计算节点组成简单架构OpenStack平台,控制节点安装MySQL、Keystone、Glance、Nova、Nova、Neutron、Dashboard等服务,主要最为认证、镜像管理节点,以及提供Nova和Neutron服务的管理节点。提供Dashboard界面服务。
计算节点主要安装nova-compute和Neutron服务,Nova服务提供云主机服务,Neutron提供网络服务。
通过Shell脚本进行OpenStack平台部署,脚本分为控制节点脚本和计算节点脚本,对应对剑执行部署脚本。

2、规划节点
安装OpenStack平台的2个节点规划

IP 主机名 节点
192.168.10.10 controller 控制节点
182.168.10.20 compute 计算机节点
准备 2 台 VMware 虚拟机,手动最小化安装 2 台 CentOS 7.2 系统,作为 OpenStack 节
点,第一张网卡为仅主机模式,第二张网卡为 NAT 模式,以及配置 CPU 虚拟化,计算节点
至少使用 4 GB 内存,硬盘不小于 50 GB。第一张网卡网段为 192.168.10.0/24,第二张网卡
网段为 192.168.20.0/24。并对 compute 节点分两个区为 sda3 与 sda4。

基础环境配置

IP地址配置


控制节点和计算节点,安装最小化CentOS7.2操作系统,配置每个节点IP地址。并使用secureCRT 进行连接。

controller 节点修改部分:

[root@localhost ~]# vi /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
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0

compute 节点修改部分:

[root@localhost ~]# 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
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.10.20
NETMASK=255.255.255.0

上传基础镜像

上传 XianDian-IaaS-v2.2.iso 和 CentOS-7-x86_64-DVD-1511.iso 两个镜像包至 controller
节点/root 目录中,并将 ISO 文件挂载至/opt/目录中。(镜像必须要永久挂载(yum挂载),不会的可查看我的虚拟机muban制作

[root@localhost ~]# ll
total 7012772
-rw-------. 1 root root 1319 Oct 31 13:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 4329570304 Jan 16 2017 CentOS-7-x86_64-DVD-1511.iso
-rw-r--r--. 1 root root 2851502080 Nov 5 2017 XianDian-IaaS-v2.2.iso
[root@localhost ~]# mkdir /opt/centos7.2
[root@localhost ~]# mkdir /opt/iaas
[root@localhost ~]# mount /root/CentOS-7-x86_64-DVD-1511.iso /opt/centos7.2/
[root@localhost ~]# mount /root/XianDian-IaaS-v2.2.iso /opt/iaas/


配置YUM源文件

controller 节点:

[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1

compute节点:

[centos]

name=iaas

baseurl=ftp://192.168.10.10/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.10.10/iaas/iaas-repo
gpgcheck=0
enabled=1

在控制节点清除yum源,显示所有可用仓库
[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist

控制节点安装ftp服务


控制节点安装vsftp服务,设置开机自启,提供计算节点ftp访问方式。

[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# systemctl enable vsftpd

在/etc/vsftpd/vsftpd.conf 配置中添加一行代码:

anon_root=/opt

重启 vsftpd 服务:

[root@localhost ~]# systemctl restart vsftpd

计算节点配置YUM源

控制节点的vsftpd服务没有问题后,计算节点执行以下命令

[root@localhost ~]# yum clean all
[root@localhost ~]# yum repolist

配置防火墙策略


在控制节点和计算节点中关闭防火墙:

[root@localhost ~]# setenforce 0
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables -Z
[root@localhost ~]# systemctl stop firewalld  关闭防火墙

[root@localhost ~]# systemctl enable firewalld  关闭防火墙开机自启

磁盘分区

#为cinder和swift分区,以50 GB,每个服务给5 GB的方式为例。(具体大小看自己情况,仅参考)
#如果空间不够,先扩充虚拟硬盘,加10G(根据实际要求来)

[root@localhost ~]# lsblk #列出所有可用块设备的信息
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 39.5G 0 part
└─centos-root 253:0 0 39.5G 0 lvm /
sr0 11:0 1 1024M 0 rom
[root@localhost ~]# parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
(parted) p #显示分区表、可用设备、可用空间、所有找到的分区或特定分区
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary xfs boot
2 525MB 43.0GB 42.4GB primary lvm

(parted)
(parted) mkpart cinder #创建分区
parted: invalid token: cinder
Partition type? primary/extended? p #主分区/扩展分区?扩展
File system type? [ext2]? ext4 #Ext4——第四代扩展文件系统
Start? 43.0GB #从上个分区的 End 开始(Number 2)
End? 48.0GB #给 5 GB的空间
(parted)
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags

Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary xfs boot
2 525MB 43.0GB 42.4GB primary lvm
3 43.0GB 48.0GB 5046MB primary

(parted)
(parted) mkpart swift
parted: invalid token: swift
Partition type? primary/extended? p
File system type? [ext2]? ext4
Start? 48.0GB
End? 53.0GBls
(parted)
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary xfs boot
2 525MB 43.0GB 42.4GB primary lvm
3 43.0GB 48.0GB 5046MB primary
4 48.0GB 53.0GB 5001MB primary

(parted)
(parted) q #退出parted
Information: You may need to update /etc/fstab.

[root@localhost ~]#
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 39.5G 0 part
│ └─centos-root 253:0 0 39.5G 0 lvm /
├─sda3 8:3 0 4.7G 0 part #cinder分区
└─sda4 8:4 0 4.7G 0 part #swift分区
sr0 11:0 1 1024M 0 rom
[root@localhost ~]#

 

 

安装 iaas-xiandian 服务


在控制节点和计算节点安装 iaas-xiandian 软件包。

yum install iaas-xiandian -y

配置环境变量

控制节点和计算节点配置环境变量的配置文件/etc/xiandian/openrc.sh,配置参数说明如
下:(编辑过程中会有很多“#”号,如何快速的删除“#”号,Ctrl+v,Shift+g,d,即可)

vi /etc/xiandian/openrc.sh
#按如下修改配置,其中,第75行和89行是上面硬盘配置给cinder、swift留空的分区名称,具体名称以上面分区后的名称为准。可以改好一个SCP至另一个节点

1 ##——————–system Config——————–##
2 ##Controller Server Manager IP. example:x.x.x.x
3 HOST_IP=192.168.100.10
4
5 ##Controller Server hostname. example:controller
6 HOST_NAME=controller
7
8 ##Compute Node Manager IP. example:x.x.x.x
9 HOST_IP_NODE=192.168.100.20
10
11 ##Compute Node hostname. example:compute
12 HOST_NAME_NODE=compute
13
14 ##——————–Rabbit Config ——————##
15 ##user for rabbit. example:openstack
16 RABBIT_USER=openstack
17
18 ##Password for rabbit user .example:000000
19 RABBIT_PASS=000000
20
21 ##——————–MySQL Config———————##
22 ##Password for MySQL root user . exmaple:000000
23 DB_PASS=000000
24
25 ##——————–Keystone Config——————##
26 ##Password for Keystore admin user. exmaple:000000
27 DOMAIN_NAME=demo
28 ADMIN_PASS=000000
29 DEMO_PASS=000000
30
31 ##Password for Mysql keystore user. exmaple:000000
32 KEYSTONE_DBPASS=000000
33
34 ##——————–Glance Config——————–##
35 ##Password for Mysql glance user. exmaple:000000
36 GLANCE_DBPASS=000000
37
38 ##Password for Keystore glance user. exmaple:000000
39 GLANCE_PASS=000000
40
41 ##——————–Nova Config———————-##
42 ##Password for Mysql nova user. exmaple:000000
43 NOVA_DBPASS=000000
44
45 ##Password for Keystore nova user. exmaple:000000
46 NOVA_PASS=000000
47
48 ##——————–Neturon Config——————-##
49 ##Password for Mysql neutron user. exmaple:000000
50 NEUTRON_DBPASS=000000
51
52 ##Password for Keystore neutron user. exmaple:000000
53 NEUTRON_PASS=000000
54
55 ##metadata secret for neutron. exmaple:000000
56 METADATA_SECRET=000000
57
58 ##External Network Interface. example:eth1
59 INTERFACE_NAME=eno33554960            第二张网卡的ID
60
61 ##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
62 minvlan=
63
64 ##Last Vlan ID in VLAN RANGE for VLAN Network. example:200
65 maxvlan=
66
67 ##——————–Cinder Config——————–##
68 ##Password for Mysql cinder user. exmaple:000000
69 CINDER_DBPASS=000000
70
71 ##Password for Keystore cinder user. exmaple:000000
72 CINDER_PASS=000000
73
74 ##Cinder Block Disk. example:md126p3
75 BLOCK_DISK=sda3
76
77 ##——————–Trove Config——————–##
78 ##Password for Mysql Trove User. exmaple:000000
79 TROVE_DBPASS=000000
80
81 ##Password for Keystore Trove User. exmaple:000000
82 TROVE_PASS=000000
83
84 ##——————–Swift Config———————##
85 ##Password for Keystore swift user. exmaple:000000
86 SWIFT_PASS=000000
87
88 ##The NODE Object Disk for Swift. example:md126p4.
89 OBJECT_DISK=sda4
90
91 ##The NODE IP for Swift Storage Network. example:x.x.x.x.
92 STORAGE_LOCAL_NET_IP=192.168.100.20                    compute节点第一张网卡的IP地址
93
94 ##——————–Heat Config———————-##
95 ##Password for Mysql heat user. exmaple:000000
96 HEAT_DBPASS=000000
97
98 ##Password for Keystore heat user. exmaple:000000
99 HEAT_PASS=000000
100
101 ##——————–Ceilometer Config—————-##
102 ##Password for Mysql ceilometer user. exmaple:000000
103 CEILOMETER_DBPASS=000000
104
105 ##Password for Keystore ceilometer user. exmaple:000000
106 CEILOMETER_PASS=000000
107
108 ##——————–AODH Config—————-##
109 ##Password for Mysql AODH user. exmaple:000000
110 AODH_DBPASS=000000
111
112 ##Password for Keystore AODH user. exmaple:000000
113 AODH_PASS=000000

 

#controller节点弄好之后,直接复制给compute节点
scp /etc/xiandian/openrc.sh root@192.168.100.20:/etc/xiandian/

控制节点安装NTP

如果你是用虚拟机搭建的话这一步可以省略。

(在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之间的时间同步化。)

[root@controller~]yum install ntp -y
[root@controller~]vi /etc/ntp.conf 

#注释以下四行:

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

#添加以下两行:
server 127.127.1.0
fudge 127.127.1.0 stratum 10

设置完成之后重新启动ntpd
[root@controller~]systemctl restart ntpd
[root@controller~]systemctl enable ntpd

计算节点安装NTP

[root@compute~]yum install ntpdate -y
[root@compute~]systemctl enable ntpdate
[root@compute~]ntpdate 192.168.100.10

设置开机自启
[root@compute~]systemctl enable ntpd

 

使用脚本安装OpenStack平台

#脚本执行是不可逆的,保证严格的顺序,执行错误就要重来。双节点脚本建议同时安装(虚拟机可以创建快照)
#脚本目录一般位于:/usr/local/bin/

安装基础服务


控制节点和计算节点通过脚本安装基础服务:

[root@localhost ~]# iaas-pre-host.sh

控制节点安装完成后,按 Ctrl+D 键退出并重新登录,使主机名生效,如图

计算节点安装完成后,按 Ctrl+D 键退出并重新登录,使主机名生效,如图


安装MySQL数据库服务


控制节点通过脚本安装 MySQL 数据库服务:

[root@controller~]# iaas-install-mysql.sh

安装 Keystone 认证服务


控制节点通过脚本安装 Keystone 认证服务:

[root@controller ~]# iaas-install-keystone.sh

安装 Glance 镜像服务


控制节点通过脚本安装 Glance 镜像服务:

[root@controller ~]# iaas-install-glance.sh

安装 Nova 计算服务


controller 节点通过脚本安装计算服务:

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

compute 节点通过脚本安装计算服务:

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

安装 Neutron 网络服务


controller 节点通过脚本安装网络服务:

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

compute 节点通过脚本安装网络服务:
[root@compute~]# iaas-install-neutron-compute.sh
[root@compute~]# iaas-install-neutron-compute-gre.sh

注意: 这里compute节点安装 gre.sh 完成之后没有返回提示为正常;controller节点安装最后会出现:
Unknown operation ‘enabled’.

这是脚本错误,查看脚本文件:
cat /usr/local/bin/iaas-install-neutron-controller-gre.sh
······
systemctl restart neutron-lbaas-agent
systemctl enabled neutron-lbaas-agent
enabled 改为 enable,执行 systemctl enable neutron-lbaas-agent 。

安装 Dashboard 服务


controller 节点通过脚本安装 Dashboard 服务:

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

安装 Cinder 块存储服务


controller 节点通过脚本安装块存储服务:

[root@controller ~]# iaas-install-cinder-controller.sh

compute 节点通过脚本安装块存储服务:

[root@compute~]# iaas-install-cinder-compute.sh

安装 Swift 对象存储服务


controller 节点通过脚本安装对象存储服务:

[root@controller ~]# iaas-install-swift-controller.sh

compute 节点通过脚本安装对象存储服务:

[root@compute ~]# iaas-install-swift-compute.sh

计算节点中途会让你输入yes/no,输入yes,然后再输入密码000000.

访问 Dashboard 服务

打开浏览器,访问 https://192.168.10.10/dashboard 地址,输入环境变量文件中填写的密码,
域为 demo、用户名为 admin、密码为 000000,然后单击“连接”按钮,如图

登录后即可访问到 Dashboard 系统,如图

到了这一步OpenStack私有云平台已经搭建完成了!

版权声明:本文为 戴俊财 的原创文章,遵循CC 4.0 BY-SA版权协议,欢迎分享本文,转载请附上原文出处链接及本声明。
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容
建议更改:如文章有错误或者有问题没解决请及时联系我,相互交流,qq2328012927。
原文链接:https://www.daijuncai.cn/?p=227
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇