
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 network2.修改主机名
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 controller3.配置DNS
vi /etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.84.准备ftp服务
yum -y install vsftpd vi /etc/vsftpd/vsftpd.conf 添加 anon_root=/opt systemctl start vsftpd systemctl enable vsftpd5.准备本地镜像
#【挂载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