云计算(cloud computing)
基于互联网的相关服务的增加,使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络,互联网的一种比喻说法。
早期 | 单机跑服务 |
中期 | 单机性能得到了非常大的提升,如果还是单机跑一个服务,服务器性能显得过剩。因此把很多服务器集中到一起,运行很多虚拟模式,每台虚拟机运行一个服务,这就是虚拟化 |
现在 | 美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。通常涉及通过互联网来提供 动态易扩展且经常是虚拟化的资源 |
云计算分类
Iaas 基础设施即服务 |
Infrastructure as a Service 提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU,内存,存储,网络和其他基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序 三种用法:公有云,私有云和混合云 |
---|---|
Paas 平台即服务 |
Platform-as-a-Service 以服务器平台或者开发环境作为服务进行提供就是PaaS 不仅仅是单纯的基础平台,还提供技术支持服务,还进行应用系统开发,优化等服务 简单说,云环境中的应用基础设施服务,中间件即服务 |
SaaS 软件即服务 |
Soft-as-a-Service 通过inernet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务 现在用户向提供商租用基于web软件,不用维护软件,由提供商区全权管理,也提供离线操作和本地存储 |
Openstack
是由NASA(美国国家航空航天局)和Rackspace合作研发并发起的项目,是一套IaaS解决方案,开源的云计算管理平台,以Apache许可证为授权
Horizon | 管理其各种服务的,基于web的管理接口,通过图形界面实现创建用户,管理网络,启动实例等操作 |
---|---|
Keystone | 为其他服务器提供认证和授权的集中身份管理服务和目录服务 支持多种身份认证模式,如密码,令牌,AWS(亚马逊web服务器)登陆,为用户和其他服务器提供SSO认证服务 |
Neutron | 软件定义网络服务,用于创建网络,子网,路由器,管理浮动IP地址,可以实现虚拟交换机集合路由器,可以在项目中创建VPN |
Cinder | w为虚拟机管理存储器卷的服务,为运行在Nova中的实例提供永久的块存储,快照进行数据备份,经常应用在实例存储环境中,如数据库文件 |
Nova | 在节点上用于管理虚拟机的服务,在标准硬件上能够进行水平扩展 分布式的服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理,启动实例时,如果有则需要进行下载镜像 |
Glance | 扮演虚拟机镜像注册的角色,允许用户为直接存储拷贝服务器镜像,这些镜像可以用于新建虚拟机的模板 |
[root@localhost etc(keystone_admin)]# openstack-status
== Nova services ==
openstack-nova-api(对外提供服务的窗口,接受并影响用户的compute API调用): active
openstack-nova-compute(安装到每个物理主机上的服务进程,接受请求后执行一批与虚拟机相关的操作): active
openstack-nova-network(网络控制): inactive (disabled on boot)
openstack-nova-scheduler(接受虚拟机创建的请求,并决定在哪台物理机上启动该虚拟机的调度器): active
openstack-nova-cert(提供了x509验证管理服务): active
openstack-nova-conductor(介于db和compute之间的组件,由它代为转交compute对代表db的请求): active
openstack-nova-console(控制台服务,允许最终用户通过代理服务器访问他们虚拟机的控制台): inactive (disabled on boot)
openstack-nova-consoleauth: active
openstack-nova-xvpvncproxy: inactive (disabled on boot)
== Glance services ==
openstack-glance-api(接收来自外部的API镜像请求,包括发现,获取和存储): active
openstack-glance-registry(用于存储,处理,和获取镜像元数据): active
== Keystone service ==
openstack-keystone(提供身份验证和授权): inactive (disabled on boot)
== Horizon service ==
openstack-dashboard: active
== neutron services ==
neutron-server(用于接收来自外部的API请求,并将改请求交给合适的neutron来处理): active
neutron-dhcp-agent(为租户网络提供DHCP服务,每个插件都是使用这一个代理): active
neutron-l3-agent(为虚拟机访问外部网络提供3层转发服务): active
neutron-metadata-agent: active
neutron-openvswitch-agent: active
neutron-metering-agent: active
== Cinder services ==
openstack-cinder-api(接受外部的API请求,把请求交给cinder-volume执行): active
openstack-cinder-scheduler(会找一个最佳的节点创建volume): active
openstack-cinder-volume(负责与底层的块存储服务打交道,相应读写块设备请求,把请求交给块存储服务): active
openstack-cinder-backup: inactive (disabled on boot)
== Ceilometer services ==
openstack-ceilometer-api: inactive (disabled on boot)
openstack-ceilometer-central: active
openstack-ceilometer-compute: active
openstack-ceilometer-collector: active
openstack-ceilometer-notification: active
额外:
openstack-nova-db 数据库表,记录虚拟机状态,虚拟机与物理机的对应关系,租户信息等数据内容
openstack-nova-objectstore 在Glance中注册镜像的s3接口服务
swift proxy-server 属于swift系统的内部和外部之间,负责接受api或http请求
container-server 用于管理容器或文件夹的映射关系
account-server 仅用于账号管理
object-server 管理在存储节点上的实际对象,还有一些定期执行的进程,比如repilication,auditor,updater,reapter
openstack-cinder-db 用于记录和维护块设备的信息
openstack-glance-db 存储元数据
工作原理:
以创建虚拟机为例,用户先接触到的是界面即horizon,通过horizon上的简单界面操作,一个创建虚拟机的请求被发送到openstack系统后端。接着指定虚拟机的操作系统,下载启动镜像,这件事情由glance提供,但这个镜像可能存储在swift上,所以需要与swift交互得到需要的镜像文件。
再创建虚拟机的时候 ,需要用到cinder提供块服务和neutron提供的网络服务,方便虚拟机有volume可以使用,能被分配到IP地址查询与外界网络链接,然后虚拟机资源的访问要经过keystone的认证之后才可以继续。
安装openstack
准备安装环境
1.在物理机上安装yum源,CentOS7-1708.iso RHEL7-extras.iso RHEL7OSP-10.iso(由于这里面有10个包,所以需要运行一个脚本来快速创建,脚本编写如下)
#!/bin/bash
cd /var/ftp/RHEL7OSP-10
for f in *
do
if [ -d $f ];then
cat <>/tmp/osp10.repo
[$f]
name=$f
baseurl=ftp://192.168.4.254/RHEL7OSP-10/$f
enabled=1
gpgcheck=0
EOF
fi
done
[root@guo ~]# cat /tmp/osp10.repo //利用脚本生成repo文件,一会可以拷贝到虚拟机
[rhel-7-server-openstack-10-devtools-rpms]
name=rhel-7-server-openstack-10-devtools-rpms
baseurl=ftp://192.168.4.254/RHEL7OSP-10/rhel-7-server-openstack-10-devtools-rpms
enabled=1
gpgcheck=0
[rhel-7-server-openstack-10-optools-rpms]
name=rhel-7-server-openstack-10-optools-rpms
baseurl=ftp://192.168.4.254/RHEL7OSP-10/rhel-7-server-openstack-10-optools-rpms
enabled=1
gpgcheck=0
...
[root@guo ~]# mkdir /var/ftp/extras /var/ftp/OSP10 /var/ftp/CentOS7
[root@guo ~]# vim /etc/fstab
...
/root/456/CentOS7-1708.iso /var/ftp/CentOS7 iso9660 defaults 0 0
/root/456/RHEL7OSP-10.iso /var/ftp/OSP10 iso9660 defaults 0 0
/root/456/RHEL7-extras.iso /var/ftp/extras iso9660 defaults 0 0
[root@guo ~]# mount -a
2.使用hosts文件进行域名解析
3.在物理机配置NTP服务器
--安装 chrony
[root@guo ~]# yum -y install chrony
--修改配置文件
[root@guo ~]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst
...
allow 0/0
...
--启动服务
[root@guo ~]# systemctl restart chronyd
[root@guo ~]# systemctl enable chronyd
创建一台虚拟机,用于安装openstack
1.创建一台虚拟机,利用脚本创建,内存设置为9216Mib
[root@guo ~]# cent7clone.sh
create vm numbers: 1
create cent7node2 .... [Done]
2.原有的网卡链接为private1 在添加一块网卡 型号为virto 网卡链接为private2
4.配置IP地址
ech0 : 192.168.4.1/24 192.168.4.254 192.168.4.254
ech1: 192.168.2.1/24
[root@localhost ~]# bash bin/configip.sh //利用之前写好的脚本创建
interface: eth0
ip address: 192.168.4.1
prefix: 24
gateway: 192.168.4.254
dns: 192.168.4.254
[root@localhost ~]# ifdown eth0
[root@localhost ~]# ifup eth0
[root@localhost ~]# bash bin/configip.sh
interface: eth1
ip address: 192.168.2.1
prefix: 24
gateway:
dns:
[root@localhost ~]# ifdown eth1
[root@localhost ~]# ifup eth1
[root@localhost ~]# ping -c2 192.168.2.254
[root@localhost ~]# ping -c2 192.168.4.254
5.配置虚拟机的yum源
[root@localhost yum.repos.d]# vim local.repo
[server]
name=server
baseurl=ftp://192.168.4.254/CentOS7.4
gpgcheck=0
enabled=1
[extras]
name=extras
baseurl=ftp://192.168.4.254/extras
gpgcheck=0
enabled=1
[root@guo ~]# scp /tmp/osp10.repo [email protected]:/etc/yum.repos.d/
//用物理机将刚才创建的yum源传到虚拟机
[root@localhost yum.repos.d]# yum repolist
repolist: 10,731
6.配置域名解析(虚拟机)
[root@localhost ~]# vim /etc/hosts
...
192.168.4.1 node1.tedu.cn node1
192.168.4.2 node1.tedu.cn node2
192.168.4.254 host.tedu.cn host
7.安装额外的软件包
[root@localhost ~]# yum -y install qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
8.逻辑卷不需要做,因为安装的过程中会自动创建
9.导入签名 :
[root@localhost ~]# rpm --import ftp://192.168.4.254/CentOS7.4/RPM-GPG-KEY-CentOS-7
10.安装openstack部署工具packstack
[root@localhost ~]# yum -y install openstack-packstack
11.在安装openstack过程中有大量的问题需要回答,可以提前生成应答文件
[root@localhost ~]# packstack --gen-answer-file answer.txt
Packstack changed given value to required value /root/.ssh/id_rsa.pub
[root@localhost ~]# vim answer.txt
...
11 CONFIG_DEFAULT_PASSWORD=Taren1
...
42 CONFIG_SWIFT_INSTALL=n
...
75 CONFIG_NTP_SERVERS=192.168.4.254
...
98 CONFIG_COMPUTE_HOSTS=192.168.4.1 //安装nova组件,构成nova节点,多个以,号分隔
...
102 CONFIG_NETWORK_HOSTS=192.168.4.1 //在所有计算节点上开启ovs网桥,vxlan技术,构成独立的广播域 98/102行默认环境可以不用更改
...
333 CONFIG_KEYSTONE_ADMIN_PW=XXXXX //admin密码,可以在这里设置
...
840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan //驱动类型
...
876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
...
910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //物理网桥的名称
...
921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //br-ex桥的名称与eth0链接,管理eth0,网桥与那个物理网卡链接
...
936 CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
...
1179 CONFIG_PROVISION_DEMO=n //是否测试
12.安装openstack
注:安装过程一般需要20分钟或者更久,如果出错,根据日志文件进行排错
常见问题:磁盘空间不足,磁盘没有自动扩容,切换英文LANG=en_US.utf-8
yum源冲突,软件包不兼容
网络IP问题
[root@localhost ~]# packstack --answer-file answer.txt
**** Installation completed successfully ******
Additional information:
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.4.1. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.4.1/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* The installation log file is available at: /var/tmp/packstack/20190110-015935-vLchqE/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20190110-015935-vLchqE/manifests
13.安装管理openstack服务的工具
[root@node1 ~]# yum -y install openstack-utils
[root@node1 ~]# openstack-status //查看服务状态,状态如果是active表示活跃,inactive 表示不活跃,如果出现fail 一定有问题
== Nova services ==
openstack-nova-api: active
openstack-nova-compute: active
openstack-nova-network: inactive (disabled on boot)
openstack-nova-scheduler: active
...
[root@node1 ~]# openstack-service restart //如果出现问题,重启,但是不建议重启,因为可能会需要一段时间
配置网络
配置ovs:开放的虚拟交换机
1.为br-ex网络配置IP地址,将eth0的地址写到br-ex上
[root@node1 ~]# cd /etc/sysconfig/network-scripts/
[root@node1 network-scripts]# vim ifcfg-br-ex
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge
ONBOOT=yes
NM_CONTROLLED=no
IPADDR=192.168.4.1
PREFIX=24
GATEWAY=192.168.4.254
[root@node1 network-scripts]# vim ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
IPV6INT=no
BOORPROTO=none
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
2.修改eth0配置文件(见上面),使之成为br-ex的一个接口
3.重启网卡
[root@node1 network-scripts]# # systemctl restart network //如果不成功,则执行以下命令
[root@node1 network-scripts]# # ifdown eth0; ifdown br-ex; ifup eth0; ifup br-ex
Horizon配置--Dashboard仪表盘--基于python的django web框架进行开发
可以管理实例,镜像,创建密钥对,对实例添加卷,操作swift容器等,还可以在控制面板中使用终端或vnc
1.web服务器有一个bug,需要修改apache配置文件,否则内部错误
[root@node1 network-scripts]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
...
WSGIProcessGroup apache
WSGIApplicationGroup %(GLOBAL) //添加
[root@node1 network-scripts]# systemctl restart httpd
然后在物理机上访问 http://192.168.4.1
输入用户名,密码(自动生成)
[root@node1 ~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin //用户名
export OS_PASSWORD=9a87903575354abc //密码
export OS_AUTH_URL=http://192.168.4.1:5000/v2.0
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
2.创建项目
项目:一组隔离的资源,可以为每个客户创建项目,在早期的版本里,项目project也被称作租户tenant 项目相关信息保存到MariaDB中
默认会有两个项目,一个项目名为admin,给管理员admin使用的的项目,另一个为services 为组件提供服务
3.通过命令访问openstack ,需要初始化环境变量
[root@node1 ~]# source ~/keystonerc_admin
[root@node1 ~(keystone_admin)]# openstack --help //查看帮助
4.
列出所有项目 | openstack project list |
查看项目信息 | openstack project show 项目名 |
创建项目 | openstack project create 项目名 |
禁用和激活项目 | openstack project set --disable/--enable 项目名 |
[root@node1 ~(keystone_admin)]# openstack project create myproject
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| enabled | True |
| id | 163d6225fcf9473693db96ab8e871082 |
| name | myproject |
+-------------+----------------------------------+
[root@node1 ~(keystone_admin)]# openstack project list
+----------------------------------+-----------+
| ID | Name |
+----------------------------------+-----------+
| 163d6225fcf9473693db96ab8e871082 | myproject |
| 1d5fd0c363ad4b4f997fedd80aa926d9 | admin |
| 957614d9d18c4c29af8df53c0e4ba2e6 | services |
+----------------------------------+-----------+
[root@node1 ~(keystone_admin)]# openstack project show myproject
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| enabled | True |
| id | 163d6225fcf9473693db96ab8e871082 |
| name | myproject |
| properties | |
[root@node1 ~(keystone_admin)]# openstack project set --disable myproject
[root@node1 ~(keystone_admin)]# openstack project show myproject
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | None |
| enabled | False |
| id | 163d6225fcf9473693db96ab8e871082 |
| name | myproject |
| properties | |
+-------------+----------------------------------+
[root@node1 ~(keystone_admin)]# openstack project set --enable myproject
用户管理
admin用户在packstack安装时创建,非管理员用户保存到MariaDB中
非管理员用户:启动实例,创建卷和快照、镜像,分配浮动IP,创建网络和路由器,防火墙及规则,规则策略,查看网络拓扑,项目使用情况等
界面创建用户,指定他可以访问的项目,
命令管理用户
[root@node1 ~(keystone_admin)]# openstack user create --password 123456 user2
//创建user2用户,密码为123456
[root@node1 ~(keystone_admin)]# openstack user set --email [email protected] user2
//设置user2的email地址
[root@node1 ~(keystone_admin)]# openstack user set --disable user2 //禁用user2
[root@node1 ~(keystone_admin)]# openstack user set --enable user2 //激活user2
root@node1 ~(keystone_admin)]# openstack role add --user user2 --project myproject _member_
//指定user2可以访问myproject,角色为_member_
[root@node1 ~(keystone_admin)]# openstack user set --password redhat user2
//修改密码为redhat
[root@node1 ~(keystone_admin)]# openstack role remove --project myproject --user user2 _member_
//将user2从myproject中移除
[root@node1 ~(keystone_admin)]# openstack user delete user2 //删除user2
[root@node1 ~(keystone_admin)]# openstack user list //列出所有用户
[root@node1 ~(keystone_admin)]# openstack user show user1 //查看user1的信息
配额管理
管理源可以通过配额限制,防止过度使用,配额基本项目,限制每个项目可以使用多少资源
资源参数:
vcpu | 指定每个项可用的vcpu核心数 |
云主机数量 | 项目一共=可以使用多少虚拟机 |
卷 | 可以创建多少个云磁盘数量 |
内存 | 所有虚拟机也就是每个项目可以使用最大内存 |
注入文件大小 | 指定每个项目内容大小 |
注入文件路径 | 指定每个项目注入的文件路径长度 |
注入文件 | 指定每个项目允许注入的文件数目 |
实例 | 指定每个项目可创建的虚拟机实例数目 |
密钥对 | 指定每个项目创建的密钥数 |
[root@node1 ~(keystone_admin)]# nova quota-defaults //列出项目的缺省配额
[root@node1 ~(keystone_admin)]# nova quota-show --tenant myproject
//列出myproject的配额
[root@node1 ~(keystone_admin)]# nova quota-update --floating-ips 20 myproject
//修改浮动IP地址配额
云主机类型
资源的模板,定义了一台云主机使用的资源,如内存大小,磁盘容量和CPU核心数,默认有几个类型,可以自定义
云主机类型参数
名称:云主机类型名称
ID:云主机类型ID,系统自动生成一个UUID
VCPUs:虚拟CPU数目
RAM(MB):内存大小
Root disk(GB):外围磁盘大小,如果希望使用本地磁盘,设置为0
临时磁盘:第二个外围磁盘
swap磁盘:交换磁盘大小
[root@node1 ~(keystone_admin)]# openstack flavor list //列出所有的云主机类型
[root@node1 ~(keystone_admin)]# openstack flavor create --public demo.tiny --id auto --ram 512 --disk 10 --vcpus 1
//创建一个云主机类型(上图)
[root@node1 ~(keystone_admin)]# openstack flavor delete demo.tiny //删除云主机类型
镜像基础
在这里指虚拟磁盘文件,磁盘文件中安装了可启动的操作系统,管理功能由Glance服务提供,它形成了穿件虚拟机实例最底层的块结构
Glance磁盘格式
raw :非结构华磁盘镜像格式
vhd:VMware ,Xen ,Microsoft , VirtualBox等
vmdk:Vmwarede geshi
vdi:VirtualBox虚拟机和QEMU支持磁盘格式
iso:光盘格式
qcow2:QEMU支持的磁盘格式,空间自动扩展,并支持写时复制cow
镜像服务:
维护了镜像的一致性,提供了服务器镜像的拷贝,快照功能,可以作为模板快速建立,启动服务器
上传镜像时,容器格式必须指定,指定磁盘文件格式是否包含了虚拟机元数据
镜像容器:
bare:镜像中没有容器或元数据封装
ovf:一种开源的文件规范,描述了一个开源,安全,有效,可拓展的便携式虚拟打包以及软件分布格式
ova:OVA归档文件
aki/ami:亚马逊内核/主机镜像
利用openstack上传镜像
网络管理
项目网络 | 由Neutron提供的项目内部网络,网络间可用VLAN隔离 |
外部网络 | 可以让虚拟机接入外部网络,但需要配置浮动Ip地址 |
提供商网络 | 经实例链接到现有网路,实现虚拟机实例与外部系统共享同一二层网络 |
1.创建内外部网络:外部网络(只有admin有权限设置),wan网 --子网 subnet1--IP 192.168.4.0/24 网关 192.168.4.254 不激活dhcp
内部网络 lan网 --子网 subnet2 --IP192.168.10.0/24 网关192.168.10.1 激活dhcp 网段为
192.168.10.101~192.168.10.200
2.配置路由器:新建路由器route1 外部网络wan 在添加接口子网 lan:192.168.10.0/24 ip 192.168.10.1
安全管理
安全组 :相当于防火墙,控制对虚拟机实例的访问,在高层定义了那些协议和网络是被授权可以访问虚拟机实例的
每个项目可以定义自己的安全组,项目成员编辑默认的安全规则,可以添加新的安全规则,默认default安全组
规则:每个规则都有出和入两个方向,可以指定ip协议地址
默认有一个规则,default,组内主机可以对外访问,但是外界主机不能访问default安全组中的主机,default内部的主机可以相互访问
创建安全组
新建一个安全组,默认有一个规则,允许组内主机访问外界所有主机,向其中添加一条规则,允许ssh服务
创建云主机
给云主机起个名称
选取源,之前创建的镜像
选择云主机类型,磁盘一定要大于要安装的云主机源
选择内部网络lan
安全组选择自己创建的一个组
这个是创建之后的状态
浮动IP
创建一个地址映射,使得外界主机可以访问云主机,这个浮动IP不会出现在云主机的网卡配置上,外界访问浮动IP就可以访问云主机了
管理浮动IP的关联,可以在打开的界面点击IP地址,然后根据提示分配浮动IP
目前状态下我们都可以ssh到这台云主机,因为目前这个组group1之前开通了远程,但是不能ping通
注:如果ssh报错 WARNING :REMOTE HOST IDENTIFICATION HAS CHANGED!说明这个ip地址之前记录果,但是不是现在的主机
根据提示,将 /root/.ssh/known_hosts 里面对应的ip删除,或者删除整个文件
[root@guo ~]# vim /root/.ssh/known_hosts
...
192.168.1.193 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLbeZn0oixXQQEAEclKnr1zideN3MmtD9EfVZwn7NJu8qcJ/UJB4DnHsAfe+y0hOkv0bF+ek23RuH3YfeT4WWMY=
192.168.4.1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLCuALe6GqyFMPd7OXZH7LcVgo8YkvDXEWSbn3lAX+5qp7Tpzkt1addmjLOpwHVEp30qI7RJlZd6XanAmM0cJIo=
192.168.4.2 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJAQccqrDaJN9tk0tEKLZxNLvpq0tVKa7YuZAhB1/HCTX+4VCAlbjVL+o1ltdGrXsAqzsFTGw9hFDVruT/wJWKg=
192.168.4.12 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF3/vcskzmaQwAaphIq4tlzcrxvdh0G119vMGLL8v4qp/XZ3SxwwNGzYe92aC296CIo9A7kGnSQi8lAOM5RAQ/o=
[root@guo ~]# ssh -X 192.168.4.12
The authenticity of host '192.168.4.12 (192.168.4.12)' can't be established.
ECDSA key fingerprint is SHA256:KrsYlQpdRaKNN0tv0Bom+UMc4DBvUQuimbtSTihHy0k.
ECDSA key fingerprint is MD5:b0:f8:0c:5f:14:9e:67:59:7a:2d:ce:2a:70:3a:ba:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.4.12' (ECDSA) to the list of known hosts.
[email protected]'s password:
X11 forwarding request failed on channel 0
Last login: Fri Jan 11 10:29:23 2019 from 192.168.4.1
[root@host-192-168-10-108 ~]#
需要修改安全组规则:
添加icmp规则
验证测试物理机,虚拟机,云主机,可以相互ping通。如果想拥有其他规则。则修改对应规则即可
[root@host-192-168-10-108 ~]# ping 192.168.4.1
PING 192.168.4.1 (192.168.4.1) 56(84) bytes of data.
64 bytes from 192.168.4.1: icmp_seq=1 ttl=63 time=1.48 ms
64 bytes from 192.168.4.1: icmp_seq=2 ttl=63 time=0.698 ms
[root@guo ~]# ping 192.168.4.12
PING 192.168.4.12 (192.168.4.12) 56(84) bytes of data.
64 bytes from 192.168.4.12: icmp_seq=1 ttl=63 time=1.03 ms
64 bytes from 192.168.4.12: icmp_seq=2 ttl=63 time=0.563 ms
[root@localhost cinder(keystone_admin)]# ping 192.168.4.12
PING 192.168.4.12 (192.168.4.12) 56(84) bytes of data.
64 bytes from 192.168.4.12: icmp_seq=1 ttl=63 time=0.643 ms
安装额外节点nova
创建一个虚拟机100G磁盘,2块网卡,内存(根据实际情况,因为我这个环境是16G,openstack已经用了9G,所以本次看情况给nova)
[root@guo images]# qemu-img create -f qcow2 -b cent7.img openstack.img 100G
Formatting 'openstack.img', fmt=qcow2 size=107374182400 backing_file='cent7.img' encryption=off cluster_size=65536 lazy_refcounts=off
[root@guo images]# qemu-img create -f qcow2 -b cent7.img nova01.img 100G
Formatting 'nova01.img', fmt=qcow2 size=107374182400 backing_file='cent7.img' encryption=off cluster_size=65536 lazy_refcounts=off
[root@guo bin]# cp node.xml /tmp/node1.xml
[root@guo tmp]# vim node1.xml
node1
...
...
[root@guo bin]# cp node.xml /tmp/node2.xml
[root@guo tmp]# vim node2.xml
node2
...
...
[root@guo tmp]# virsh define /tmp/node1.xml
定义域 node1(从 /tmp/node1.xml)
[root@guo tmp]# virsh define /tmp/node2.xml
定义域 node2(从 /tmp/node2.xml)
扩容磁盘(两台都需要操作)
[root@localhost ~]# growpart /dev/vda 1
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/vda1 xfs 100G 1.1G 99G 2% /
配置IP 及 主机名 ifcfg-eth0 /etc/hosts(两台主机都要写)
[root@guo tmp]# virsh
virsh # domiflist node1
接口 类型 源 型号 MAC
-------------------------------------------------------
vnet2 network vbr virtio 52:54:00:33:18:6f 192.168.1.10(实际配置的网卡,命令不显示网卡ip)
vnet3 network private1 virtio 52:54:00:7c:c4:55 192.168.4.10
virsh # domiflist node2
接口 类型 源 型号 MAC
-------------------------------------------------------
vnet0 network vbr virtio 52:54:00:4e:f5:6b 192.168.1.11
vnet1 network private1 virtio 52:54:00:b0:1b:74 192.168.4.11
[root@localhost ~]# ping www.baidu.com //看是否可以联通外网,注意网卡,防火墙
PING www.a.shifen.com (119.75.217.26) 56(84) bytes of data.
^C64 bytes from 119.75.217.26: icmp_seq=1 ttl=54 time=3.91 ms
...
[root@localhost ~]# vim /etc/hosts
192.168.1.11 node2
192.168.1.10 node1
192.168.1.254 host
检查时间同步 chronyc sources -v
[root@guo ~]# vim /etc/chrony.conf //物理机作为时间服务同步
...
server ntp1.aliyun.com iburst
allow 0/0
[root@guo ~]# systemctl restart chronyd.service
[root@localhost ~]# vim /etc/chrony.conf //两台虚拟机都需要同步
[root@localhost ~]# systemctl restart chronyd
[root@localhost ~]# chronyc sources -v
...
^* 192.168.1.254 3 6 17 5 -43us[ -408us] +/- 25ms
检查dns 域名解析服务 /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
nameserver 192.168.1.254
search localdomain //可以不配,如果写,需要写在nameserver下面
配置yum 源 (12个yum源,10731包)
# RHEL7OSP-10.iso
rhel-7-server-rhceph-2-osd-rpms rhel-7-server-rhceph-2-mon-rpms
rhel-7-server-openstack-10-devtools-rpms rhel-7-server-rhceph-2-tools-rpms
rhel-7-server-openstack-10-optools-rpms rhel-7-server-rhscon-2-agent-rpms
rhel-7-server-openstack-10-rpms rhel-7-server-rhscon-2-installer-rpms
rhel-7-server-openstack-10-tools-rpms rhel-7-server-rhscon-2-main-rpms
# CentOS7-1708.iso RHEL7-extras.iso
[root@localhost ~]# yum repolist
repolist: 10,731
安装依赖包 qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
[root@localhost ~]# yum install qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools //两台机器均需安装
安装openstack-packstack(安装nova不需要安装)
[root@localhost ~]# yum -y install openstack-packstack
创建应答文件 packstack --gen-answer-file=answer.ini
[root@localhost ~]# packstack --gen-answer-file=answer.ini
[root@localhost ~]# vim answer.ini
...
42 CONFIG_SWIFT_INSTALL=n
75 CONFIG_NTP_SERVERS=192.168.1.254
98 CONFIG_COMPUTE_HOSTS=192.168.1.10,192.168.1.11
102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11
333 CONFIG_KEYSTONE_ADMIN_PW=123456
840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
936 CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1
1179 CONFIG_PROVISION_DEMO=n
安装 openstack 和 nova : packstack --answer-file=answer.ini
[root@localhost ~]# packstack --gen-answer-file=answer.ini
[email protected]'s password: //输入主机密码
[email protected]'s password: