OpenStack单节点安装

来自CloudWiki
跳转至: 导航搜索

实训内容

OpenStack Mitaka平台的安装

参考文档:

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo

先电云计算基础架构服务平台用户手册2.1版

实验准备

硬件准备

笔记本电脑中装有VMware workstation软件

准备一台虚拟机,内存不低于2G:

controller:CPU1个,内存2G,硬盘100G,网卡两块,网卡1:内网vnet8,网卡2:仅主机


软件准备

Centos7 操作系统

时区:中国上海,分区:调整分区,

调整:/ 60G /home 20G swap 20G

关闭kdump

安装包模式:minimal最小化 297个包 5-10分钟

网络配置:

单节点IP:10.0.0.11

配置主机名

配置主机名

hostnamectl set-hostname controller

按ctrl+d 退出 重新登陆

配置主机名和IP的映射

vi /etc/hosts :

添加:

  10.0.0.11 controller  compute 

service network restart

ping controller

ping compute

安全设置

selinux配置

(关闭高级安全功能)

[root@controller ~]# sed -i 's/SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

或者用vi /etc/selinux/config把配置改成如下配置,其余项不变:

  SELINUX=permissive

[root@controller ~]# getenforce
Enforcing
[root@controller ~]# setenforce 0
[root@controller ~]# getenforce
Permissive

关闭防火墙

[root@controller ~]# systemctl stop iptables
[root@controller ~]# systemctl disable iptables
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
[root@controller ~]# systemctl  stop firewalld.service
[root@controller ~]# systemctl  disable  firewalld.service 

验证

重启之后,执行以下命令

[root@controller ~]# getenforce
Permissive
[root@controller ~]#  systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Nov 19 17:08:01 controller systemd[1]: Starting...
Nov 19 17:08:04 controller systemd[1]: Started ...
Nov 19 18:45:25 controller systemd[1]: Stopping...
Nov 19 18:45:26 controller systemd[1]: Stopped ...
Hint: Some lines were ellipsized, use -l to show in full.



网络设置

关闭NetworkManager

[root@controller ~]# systemctl stop NetworkManager 
[root@controller ~]# systemctl disable NetworkManager 

删除软件包

yum remove -y NetworkManager firewalld

启动传统网络管理

service network restart

配置第二块网卡

cd /etc/sysconfig/network-scripts

vi ifcfg-eno33554984(以你实际的网卡名称为准)

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554984(以你实际的网卡名称为准)
DEVICE=eno33554984(以你实际的网卡名称为准)
ONBOOT=yes
IPADDR=10.0.1.120
PREFIX=24
DNS1=114.114.114.114
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no

service network restart

配置网络安装仓库(yum源)

挂载iso文件

在两个光驱上分别挂载iso文件(CentOS-7-x86_64-DVD-1511.iso和XianDian-IaaS-v2.1.iso):

Openstack9-3.PNG

把右下角的光盘连接按钮连接上:

Openstack9-4.PNG

重启电脑

【挂载CentOS-7-x86_64-DVD-1511.iso】

[root@controller ~]# mkdir /mnt/centos
[root@controller ~]# mount -o loop /dev/sr1 /mnt/centos(此命令没有任何输出,如果有输出就说明发生了错误)
[root@controller ~]# ls /mnt/centos
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL 

【挂载XianDian-IaaS-v2.1.iso】


# mkdir /mnt/iaas

[root@controller ~]# mount -o loop /dev/sr0 /mnt/iaas(此命令没有任何输出,如果有输出就说明发生了错误)
[root@controller ~]# ls /mnt/iaas
iaas-repo  images

配置repo文件

yum源备份

[root@controller ~]mv /etc/yum.repos.d/* /opt/ //yum源备份

创建repo文件

[root@controller ~]# cd /etc/yum.repos.d

[root@controller yum.repos.d]# ls

[root@controller yum.repos.d]# pwd

/etc/yum.repos.d

确保当前目录是此目录

[root@controller yum.repos.d]# vi local.repo

[centos]
name=centos
baseurl=file:///mnt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///mnt/iaas/iaas-repo
gpgcheck=0
enabled=1

搭建FTP服务器

[root@controller yum.repos.d]# yum install vsftpd –y


验证

清除缓存,验证yum源

root@controller yum.repos.d]# yum repolist

Loaded plugins: fastestmirror
centos                                                   | 3.6 kB     00:00
iaas                                                     | 2.9 kB     00:00
(1/3): centos/group_gz                                     | 155 kB   00:00
(2/3): centos/primary_db                                   | 2.8 MB   00:00
(3/3): iaas/primary_db                                     | 2.3 MB   00:00
Determining fastest mirrors
repo id                              repo name                            status
centos                               centos                               3,723
iaas                                 iaas                                 1,681
repolist: 5,404

编辑环境变量

 yum install iaas-xiandian -y


安装完之后增加/etc/xiandian/openrc.sh , /usr/local/bin/iaas-*.sh 等20-30个脚本文件

编辑文件/etc/xiandian/openrc.sh,此文件是安装过程中的各项参数,根据每项参数上一行的说明及服务器实际情况进行配置。

HOST_IP=10.0.0.11

HOST_NAME=controller

HOST_IP_NODE=10.0.0.11

HOST_NAME_NODE=compute

RABBIT_USER=openstack

RABBIT_PASS=000000

DB_PASS=000000

DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000

KEYSTONE_DBPASS=000000

GLANCE_DBPASS=000000

GLANCE_PASS=000000

NOVA_DBPASS=000000

NOVA_PASS=000000

NEUTRON_DBPASS=000000

NEUTRON_PASS=000000

METADATA_SECRET=000000

INTERFACE_NAME=eno33554984(这里是第2块网卡实际的名称)

编辑后,可以如下命令检查一下:

[root@controller xiandian]# grep -v ^# /etc/xiandian/openrc.sh | uniq -u(应该有19行)

基础服务构建

执行iaas-pre-host.sh

[root@controller yum.repos.d]# cd  /usr/local/bin
[root@controller bin]# ls
iaas-install-alarm.sh                  iaas-install-neutron-compute-vlan.sh
iaas-install-ceilometer-compute.sh     iaas-install-neutron-controller-flat.sh
iaas-install-ceilometer-controller.sh  iaas-install-neutron-controller-gre.sh
iaas-install-cinder-compute.sh         iaas-install-neutron-controller.sh
iaas-install-cinder-controller.sh      iaas-install-neutron-controller-vlan.sh
iaas-install-dashboard.sh              iaas-install-nova-compute.sh
iaas-install-glance.sh                 iaas-install-nova-controller.sh
iaas-install-heat.sh                   iaas-install-swift-compute.sh
iaas-install-keystone.sh               iaas-install-swift-controller.sh
iaas-install-mysql.sh                  iaas-install-trove.sh
iaas-install-neutron-compute-flat.sh   iaas-pre-host.sh
iaas-install-neutron-compute-gre.sh    iaas-uninstall-all.sh
iaas-install-neutron-compute.sh


编辑iaas-pre-host.sh文件,在yum upgrade -y后面添加

rm -rf /etc/yum.repos.d/Cent*

保存退出,执行iaas-pre-host.sh

重新启动


检查各项配置

重启电脑后执行以下命令:

  82  hostname
  83  systemctl status network iptables firewalld
  84  getenforce
  85  yum repolist
  86  ping compute
  87  ping controller

network状态应为active,iptables和firewalld 应为inactive

重启之后挂载失效了,重新配一下挂载:

[root@controller bin]# ls /mnt/centos
[root@controller bin]# ls /mnt/iaas
[root@controller bin]# ls /dev/sr0
/dev/sr0
[root@controller bin]# mount -o loop /dev/sr1 /mnt/centos
[root@controller bin]# ls /mnt/centos
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@controller bin]# mount -o loop /dev/sr0 /mnt/iaas
[root@controller bin]# ls /mnt/iaas
iaas-repo  images

安装mysql

cd /usr/local/bin

执行脚本iaas-install-mysql.sh进行安装

yum -y install MySQL-python

基础模块构建

自底层向上层安装Openstack组件

Keystone:认证服务1
Glance:镜像服务2
Nova:计算服务3
Neutron:网络服务4
Horizon:仪表盘服务5
Cinder:块存储服务
Swift:对象存储服务
Ceilometor:监控服务(效率低)
Heat:编排服务
Aodh:告警服务
Trove:数据库服务
Zun:容器管理服务


注意:swift必须先搭controller再搭compute

trove安装需要很多基础设施,不要随意安装。

安装Keystone认证服务

执行脚本iaas-install-keystone.sh进行安装。

安装Glance镜像服务

执行脚本iaas-install-glance.sh进行安装


安装Nova计算服务

执行脚本iaas-install-nova-controller.sh进行安装

执行脚本iaas-install-nova-compute.sh进行安装

安装Neutron网络服务

执行脚本iaas-install-neutron-controller.sh进行安装

执行脚本iaas-install-neutron-compute.sh进行安装


安装dashboard服务

执行脚本iaas-install-dashboard.sh进行安装

访问dashboard服务

打开浏览器访问Dashboard

http://controller(或本机内网ip)/dashboard

注:检查防火墙规则,确保允许http服务相关端口通行,或者关闭防火墙。

dashboard:

demo admin 000000

期末考试到此为止!


检查是否部署成功

source /etc/keystone/admin-openrc.sh
openstack help
openstack-status 能够检查openstack所有服务的状态

启动云主机

上传镜像

首先下载(Wget)提供的系统镜像到本地,本次以上传cirros镜像为例。

可以安装Wget,从Ftp服务器上下载镜像到本地。

[root@controller ~]# mkdir /opt/image
#[root@controller bin]# cd /opt/image
[root@controller ~]# wget http://download.cirros-cloud.net/0.3.0/cirros-0.3.0-i386-disk.img
--2018-12-29 18:03:22--  http://download.cirros-cloud.net/0.3.0/cirros-0.3.0-i386-disk.img
Resolving download.cirros-cloud.net (download.cirros-cloud.net)... 64.90.42.85, 2607:f298:6:a036::bd6:a72a
Connecting to download.cirros-cloud.net (download.cirros-cloud.net)|64.90.42.85|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9159168 (8.7M) [text/plain]
Saving to: ‘cirros-0.3.0-i386-disk.img’

100%[=====================================================>] 9,159,168    322KB/s   in 28s    

2018-12-29 18:03:51 (318 KB/s) - ‘cirros-0.3.0-i386-disk.img’ saved [9159168/9159168]

[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# glance image-create --name "cirros_1229" --disk-format qcow2  --container-format bare --progress <       /opt/image/cirros-0.3.0-i386-disk.img
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 90169ba6f09b5906a7f0755bd00bf2c3     |
| container_format | bare                                 |
| created_at       | 2018-12-29T10:17:18Z                 |
| disk_format      | qcow2                                |
| id               | f525bcaf-29b3-4a0f-b582-f67ec6ce29e8 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros_1229                          |
| owner            | a06028e9f8e348d3b7a494a9d5cb0ee6     |
| protected        | False                                |
| size             | 9159168                              |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2018-12-29T10:17:18Z                 |
| virtual_size     | None                                 |
| visibility       | private                              | 

Openstack9-111.PNG

创建neutron网络

以下网络选择其中之一创建即可

创建flat网络

  1. Controller节点

执行脚本iaas-install-neutron-controller-flat.sh进行安装

[root@controller bin]# iaas-install-neutron-controller-flat.sh

Create a sample flat network
 
Created a new network:
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2018-12-29T09:48:56                  |
| description               |                                      |
| id                        | e972aba5-e189-44d3-ac4c-c6ec64e92f04 |
| ipv4_address_scope        |                                      |
| ipv6_address_scope        |                                      |
| mtu                       | 1500                                 |
| name                      | sharednet1                           |
| port_security_enabled     | True                                 |
| provider:network_type     | flat                                 |
| provider:physical_network | physnet1                             |
| provider:segmentation_id  |                                      |
| router:external           | False                                |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tags                      |                                      |
| tenant_id                 | d4dc77f9f562463991df6d11855ead48     |
| updated_at                | 2018-12-29T09:48:56                  |
+---------------------------+--------------------------------------+
  1. Compute节点

执行脚本iaas-install-neutron-compute-flat.sh进行安装.

创建之后:

Openstack9-112.PNG

创建gre网络

  1. Controller节点

执行脚本iaas-install-neutron-controller-gre.sh进行安装

  1. Compute节点

执行脚本iaas-install-neutron-compute-gre.sh进行安装


创建vlan网络

  1. Controller节点

执行脚本iaas-install-neutron-controller-vlan.sh进行安装

  1. Compute节点

执行脚本iaas-install-neutron-compute-vlan.sh进行安装

创建子网

网络 -> 子网 ->创建子网

Openstack9-113.PNG

填写子网信息:

Openstack9-114.PNG

填写子网详情:

Openstack9-116.PNG

创建云主机

项目 ->计算 -> 云主机 -> 创建云主机

Openstack9-117.PNG

填写实例信息:

Openstack9-118.PNG

选择引导源(映像)

Openstack9-119.PNG

选择云主机类型:

Openstack9-120.PNG

选择网络:

Openstack9-121.PNG

云主机创建成功:

Openstack9-122.PNG

创建外界可访问的云主机

首先,网络模式要按照GRE方式按照

其次,

(1)管理员 → 网络 → 创建网络(内外网) → 创建子网(外网填服务器的外网网段)

(2)项目 → 网络 → 路由 → 新建路由 → 添加网关和内网接口

(3)项目 → 计算 → 访问安全 → 管理规则 → 添加规则(ICMP、TCP、UDP)

(4)项目 → 计算 → 云主机 → 创建云主机 → 绑定浮动IP