命令记不住

登陆

Openstack 组件概念和快速部署

Openstack组件概念和快速部署

1.openstack服务

horizon

提供了一个基于web的自服务门户,与OpenStack底层服务交互,诸如启动一个实例,分配IP地址以及配置访问控制。

nova

在OpenStack环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。

neutron

确保为其它OpenStack服务提供网络连接即服务,比如OpenStack计算。为用户提供API定义网络和使用。基于插件的架构其支持众多的网络提供商和技术。

swift

通过一个 RESTful,基于HTTP的应用程序接口存储和任意检索的非结构化数据对象。它拥有高容错机制,基于数据复制和可扩展架构。它的实现并像是一个文件服务器需要挂载目录。在此种方式下,它写入对象和文件到多个硬盘中,以确保数据是在集群内跨服务器的多份复制。

cinder

为运行实例而提供的持久性块存储。它的可插拔驱动架构的功能有助于创建和管理块存储设备。

keystone

为其他OpenStack服务提供认证和授权服务,为所有的OpenStack服务提供一个端点目录。

glance

存储和检索虚拟机磁盘镜像,OpenStack计算会在实例部署时使用此服务。

Ceilometer

为OpenStack云的计费、基准、扩展性以及统计等目的提供监测和计量。

heat

Orchestration服务支持多样化的综合的云应用,通过调用OpenStack-native REST API和CloudFormation-compatible Query API,支持:term:`HOT <Heat Orchestration Template (HOT)>`格式模板或者AWS CloudFormation格式模板

2.控制节点和一个计算节点

2.基础环境配置

1.配置网络

修改网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth1

BOOTPROTO=static
DEFROUTE=yes
ONBOOT=yes

systemctl restart network

2.修改主机名

hostnamectl set-hostname compute
hostnamectl set-hostname controller

cat  /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.80  compute
192.168.122.82  controller

3.配置DNS

vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8

4.准备ftp服务

yum -y install vsftpd 
vi /etc/vsftpd/vsftpd.conf
添加
anon_root=/opt
systemctl start vsftpd
systemctl enable vsftpd

5.准备本地镜像

#【挂载XianDian-IaaS-v2.2.iso】
[root@controller ~]# mount -o loop XianDian-IaaS-v2.2.iso /mnt/
[root@controller ~]# cp -rvf /mnt/* /opt/iaas/
[root@controller ~]# umount /mnt/
df -hT  查看挂载状态

vi /etc/yum.repos.d/local.repo
#控制节点的文件内容
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1

#计算节点的文件内容
[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas/iaas-repo
gpgcheck=0
enabled=1

yum clean all 
yum makecache
yum list

2.准备Openstack服务依赖

安装:

yum install -y iaas-xiandian

写入脚本:

[root@controller ~]# cat /etc/xiandian/openrc.sh 
##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.10

##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 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=domain
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=eno33554952

##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

##--------------------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=sdc1

##The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.100.20

##--------------------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

将controller节点的openrc.sh传输至compute节点所放目录下

scp -r /etc/xiandian/openrc.sh compute:/etc/xiandian/

使用提供的脚本 iaas-install-mysql.sh 安装 mysql 数据库服务

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

3.脚本安装openstack平台

双节点执行 iaas-pre-host.sh

iaas-pre-host.sh 

重启系统,执行reboot命令

reboot

在controller节点上执行iaas-install-mysql.sh

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

在controller节点上安装keystone服务

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

在controller节点上安装Glance镜像服务

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

分别在controller、compute节点上安装Nova服务。

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

在controller、compute节点上安装neutron网络服务

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

在controller节点上安装dashboard服务

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

安装cinder块存储服务

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

安装swift对象存储服务

[root@controller ~]# iaas-install-swift-controller.sh 
[root@compute ~]# iaas-install-swift-compute.sh 
推荐阅读