赞
踩
基础是虚拟化、前身是分布式计算
定义
美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互
云的愿景: 使用计算资源使用网络资源向使用自来水一样按需自由有偿
4 种 部署模型 和 3 种 服务模式
Openstack介绍
组件说明
核心组件及对应的功能服务
服务 项目名称 描述
Compute (计算服务) Nova 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展
Image Service (镜像服务) Glance 提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像
Object Storage (对象存储) Swift 为OpenStack提供基于云的弹性存储,支持集群无单点故障
Block Storage (块存储) Cinder 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储,即为云主机提供附加云盘
Networking (网络服务) Neutron 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响
Dashboard (仪表板) Horizon 提供一个Web管理界面,与OpenStack底层服务进行交互
ldentity Service (认证服务) Keystone 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制
Orchestration (编排) Heat 自动化部署应用,自动化管理应用的整个生命周期,主要用于Paas(平台即服务)
Telemetry (监控) Ceilometer 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径
Database Service (数据库服务) Trove 为用户在Openstack的环境提供可扩展和可靠的关系型和非关系型数据库引擎服务,主要用于帮助用户在复杂管理时进行资源的隔离,方便进行自动化管理操作
Data Processing (数据处理) Sahara Sahara项目旨在使用用户能够在Openstack平台上便于创建和管理Hadoop以及其他计算框架集群,实现类似AWS的EMR(Amazon Elastic MapReduce service)服务
安装结构说明
controller | 2核、1.5G内存、1网卡、100G磁盘 |
---|---|
compute | MAX U 、6G内存、2网卡、100G磁盘 |
neutron | 2核、1.5G内存、3网卡、20G磁盘 |
block | 2核、1G内存、1网卡、20G磁盘,100G磁盘 |
环境准备:
修改网络,添加三块仅主机模式网卡,ip配置如下,并关闭他们的dhcp自动分配
按照资源配置情况搭建创建四个虚拟机
系统环境搭建
#第一块网卡,M [root@localhost ~]$ vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 HWADDR=00:0C:29:39:D1:AD TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.222.6 NETMASK=255.255.255.0 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 UUID=90796e1d-5ede-490f-b491-1872775ca2fe ONBOOT=yes #第二块网卡,I [root@localhost ~]$ vi /etc/sysconfig/network-scripts/ifcfg-eno33554960 HWADDR=00:0C:29:39:D1:B7 TYPE=Ethernet BOOTPROTO=static IPADDR=172.16.0.6 NETMASK=255.255.255.0 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=eno33554960 UUID=749903af-5252-438f-b57b-e465f747805e ONBOOT=yes #第三块网卡,E [root@localhost ~]$ vi /etc/sysconfig/network-scripts/ifcfg-eno50332184 HWADDR=00:0C:29:39:D1:B7 TYPE=Ethernet BOOTPROTO=static IPADDR=100.100.100.10 NETMASK=255.255.255.0 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=eno33554960 UUID=749903af-5252-438f-b57b-e465f747805e ONBOOT=yes [root@localhost ~]$ systemctl restart network
[root@localhost ~]$ systemctl stop NetworkManager && systemctl disable NetworkManager
[root@localhost ~]$ systemctl stop firewalld && systemctl disable firewalld
[root@localhost ~]$ sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
#注意,这里每台主机不一致
[root@localhost ~]$ hostnamectl set-hostname network.nice.com
[root@localhost ~]$ vi /etc/hosts
192.168.222.10 compute.nice.com
192.168.222.6 network.nice.com
192.168.222.5 controller.nice.com
192.168.222.20 block.nice.com
[root@localhost ~]$ cd /etc/yum.repos.d/ [root@localhost ~]$ mkdir back && mv * back/ [root@localhost ~]$ vi ftp.repo [base] name=base baseurl=ftp://a:a@192.168.222.1/7/os/x86_64/ #这里的地址为serv-u软件显示的 enabled=1 gpgcheck=0 [updates] name=updates baseurl=ftp://a:a@192.168.222.1/7/updates/x86_64/ enabled=1 gpgcheck=0 [extras] name=extras baseurl=ftp://a:a@192.168.222.1/7/extras/x86_64/ enabled=1 gpgcheck=0 [epel] name=epel baseurl=ftp://a:a@192.168.222.1/7/epel enabled=1 gpgcheck=0 [rdo] name=rdo baseurl=ftp://a:a@192.168.222.1/7/rdo enabled=1 gpgcheck=0 [root@localhost ~]$ yum clean all && yum makecache
#1、安装 yum-plugin-priorities 包,防止高优先级软件被低优先级软件覆盖
[root@localhost ~]$ yum -y install yum-plugin-priorities
#注意:2、安装 epel 扩展 YUM 源 ,局域网yum源无需操作此步骤
[root@localhost ~]$ yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
#注意:3、安装 OpenStack YUM 源 ,局域网yum源无需操作此步骤
[root@localhost ~]$ yum -y install http://rdo.fedorapeople.org/openstack-juno/rdo-release-juno.rpm
#4、更新操作系统
[root@localhost ~]$ yum upgrade -y
#注意:5、安装 OpenStack-selinux 自动管理 Selinux ,关闭selinux无需此操作
[root@localhost ~]$ yum -y install openstack-selinux
保存快照,作为基础环境。其他三台主机ip地址和主机名不通,其他环境和之前配置保持一致
[root@localhost ~]$ yum -y install ntp
[root@localhost ~]$ vim /etc/ntp.conf
restrict 192.168.222.0 mask 255.255.255.0 nomodify notrap
#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
[root@localhost ~]$ systemctl start ntpd && systemctl enable ntpd
其它三个节点配置:
[root@localhost ~]$ yum install ntpdate -y
[root@localhost ~]$ ntpdate -u controller.nice.com
#编写计划任务,每一分钟同步时间
[root@localhost ~]$ crontab -e
*/1 * * * * /sbin/ntpdate -u controller.nice.com &> /dev/null
[root@localhost ~]$ systemctl restart crond && systemctl enable crond
[root@localhost ~]$ yum install -y mariadb mariadb-server MySQL-python vim
#配置数据库文件,只需要在[mysqld]下面添加即可
[root@localhost ~]$ vim /etc/my.cnf
[mysqld]
bind-address = 192.168.222.5
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
#启动数据库并做初始化
[root@localhost ~]$ systemctl start mariadb && systemctl enable mariadb
[root@localhost ~]$ mysql_secure_installation
#密码我输入的是root,然后一路y
[root@localhost ~]$ yum -y install rabbitmq-server
[root@localhost ~]$ systemctl start rabbitmq-server
[root@localhost ~]$ systemctl enable rabbitmq-server
#可以修改rabbitmq的用户名和密码,默认都是guest可以通过下列命令修改
[root@localhost ~]$ rabbitmqctl change_password guest new_passwd
组件说明
什么是keystone?
Keystone是OpehStack Identity Service的项目名称,是一个负责身份管理与授权的组件;
主要功能: 实现用户的身份认证
,基于角色的权限管理
,及openstack其他组件的访问地址
和安全策略管理
为什么需要keystone?
Keystone项目的主要目的:是给整个openstack的各个组件(nova, cinder, glance… )提供一个统一的验证方式
Keystone 的功能
认证服务中的关键字
User (用户) :一个人、 系统或服务在OpenStack中的数字表示。已经登录的用户分配令牌环以访问资源。用户可以直接分配给特定的租户,就像隶属于每个组
Credentials (凭证): 用于确认用户身份的数据。例如:用户名和密码,用户名和API key,
或由认证服务提供的身份验证令牌
Authentication (验证) :确认用户 身份的过程
Token (令牌) :一个用于访问OpenStack API和资源的字母数字字符串。一个临牌可以随时撤销,并且持续一段时间有效
Tenant (租户):一个组织或孤立资源的容器。租户和可以组织或隔离认证对象。根据服务运营的要求,一个租户可以映射到客户、账户、组织或项目
Service (服务) :OpenStack服务, 例如计算服务(nova) ,对象存储服务(swift) ,或镜像服务(glance)。它提供了一个或多个端点,供用户访问资源和执行操作
Endpoint(端点): 一个用于访问某个服务的可以通过网络进行访问的地址,通常是一个URL地址
Role (角色): 定制化的包含特定用户权限和特权的权限集合
Keystone Client ( keystone命令行工具) :Keystone的命令行工具。 通过该工具可以创建用户,角色,服务和端点等
名词解释
用户:张三
凭证:身份证
验证:验证身份证
令牌:房卡
租户:宾馆
服务:住宿、餐饮
端点:路径
角色:VIP等级
组件之间的三张图
keystone命令大全
controller节点上安装和配置认证服务
配置先决条件
1、创建认证服务数据库
登录mysql数据库
[root@localhost ~]$ mysql -uroot -p123
创建keystone数据库
MariaDB [(none)]> CREATE DATABASE keystone;
创建keystone数据库用户,使其可以对keystone数据库有完全控制权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; #给keystone用户的所有表授权,本地权限localhost,授权为keystone用户,密码是KEYSTONE_DBPASS
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS'; ##给keystone用户的所有表授权,权限为所有ip
2、利用openssl,生成一个随机值作为管理令牌在初始配置(token)
[root@localhost ~]$ openssl rand -hex 10:
d384cbf8eaf060e988ca
安装并配置认证服务组件(keystone的服务包和客户端工具)
[root@localhost ~]$ yum -y install openstack-keystone python-keystoneclient 接着编辑/etc/keystone/keyston.conf文件并作下列修改: [root@localhost ~]$ vim /etc/keystone/keystone.conf 修改[DEFAULT]小节,定义初始管理令牌 [DEFAULT] admin_token=d384cbf8eaf060e988ca 修改[database]小节,配置数据库访问 [database] connection=mysql://keystone:KEYSTONE_DBPASS@controller.nice.com/keystone 数据库类型 数据库用户名 数据库密码 登录地址 连接的数据库名 修改[token]小节,配置UUID提供者和SQL驱动 [token] provider=keystone.token.providers.uuid.Provider driver=keystone.token.persistence.backends.sql.Token (可选)开启详细日志,协助故障排除 [DEFAULT] verbose=True 常见通用证书的密钥,并限制相关文件的访问权限 [root@localhost ~]$ keystone-manage pki_setup --keystone-user keystone --keystone-group keystone 设置keystone用户,keystone组 [root@localhost ~]$ chown -R keystone:keystone /var/log/keystone #日志存放目录 [root@localhost ~]$ chown -R keystone:keystone /etc/keystone/ssl #密钥存放目录 [root@localhost ~]$ chmod -R o-rwx /etc/keystone/ssl #密钥存放目录将其他人的rwd去掉,这样更安全 初始化keystone数据库 [root@localhost ~]$ su -s /bin/sh -c "keystone-manage db_sync" keystone [root@localhost ~]$ mysql -uroot -p123 #再登录mysql use keystone; show tables; #如果没有表,则需要重新授权目录!!!!!!! #5、启动identity服务并设置开机启动 [root@localhost ~]$ systemctl start openstack-keystone.service [root@localhost ~]$ systemctl enable openstack-keystone.service
安装后的优化配置
默认情况下,服务器会无限存储到期的令牌,在资源有限的情况下会严重影响服务器性能。需要用定时任务,每小时删除过期的令牌
[root@localhost ~]$ (crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush>/var/log/keystone/keystone-tokenflush.log 2>&1'>> /var/spool/cron/keystone
创建tenants(租户),(users)用户和(roles)角色
Ⅰ配置管理员令牌 [root@localhost ~]$ export OS_SERVICE_TOKEN=d384cbf8eaf060e988ca Ⅱ配置端点 [root@localhost ~]$ export OS_SERVICE_ENDPOINT=http://controller.nice.com:35357/v2.0 Ⅲ创建租户用户和角色 1、创建admin租户 2、创建admin用户 3、创建admin角色 [root@controller ~]$ keystone tenant-create --name admin --description "Admin Tenant" #admin租户 +-------------+----------------------------------+ | Property | Value | +-------------+----------------------------------+ | description | Admin Tenant | | enabled | True | | id | 31d523850e094426a734400e585b5abc | | name | admin | +-------------+----------------------------------+ 您在 /var/spool/mail/root 中有邮件 [root@controller ~]$ keystone user-create --name admin --pass ADMIN_PASS --email 12345@163.com #admin用户 +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | email | 12345@163.com | | enabled | True | | id | 715301487afb455ab7eddb6faf372d75 | | name | admin | | username | admin | +----------+----------------------------------+ [root@controller ~]$ keystone role-create --name admin #admin角色 +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | id | c16d5a2784574da6aabd0a1526c77a23 | | name | admin | +----------+----------------------------------+ 4、添加admin租户和用户到admin角色 [root@localhost ~]$ keystone user-role-add --tenant admin --user admin --role admin 5、创建用于dashboard访问的“_member_”角色(dashboard是B/S访问结构的主体程序,这里拥有member角色就可以访问仪表盘套件) [root@localhost ~]$ keystone role-create --name _member_ 6、添加admin租户和用户到_member_角色(将admin租户、用户链接到_member_角色,则他们都可以访问仪表盘套件) [root@localhost ~]$ keystone user-role-add --tenant admin --user admin --role _member_ Ⅳ创建一个用于演示的demo租户和用户 1、创建demo租户 [root@localhost ~]$ keystone tenant-create --name demo --description "Demo Tenant" 2、创建的demo用户 [root@localhost ~]$ keystone user-create --name demo --pass DEMO_PASS --email demo@163.com 3、添加demo租户和用户链接到_member_角色(同样能访问仪表盘套件) [root@localhost ~]$ keystone user-role-add --tenant demo --user demo --role _member_ Ⅴ OpenStack服务业需要一个租户,用户和角色和其他服务进行交互。因此我们创建一个service的租户。任何一个OpenStack服务都要和它关联 [root@localhost ~]$ keystone tenant-create --name service --description "Service Tenant"
创建服务实体和API端点(实体:keystone能够提供服务的名称,API端点:提供这个服务的路径)
#1、在OpenStack环境中,identity服务管理一个服务目录,并使用这个目录在OpenStack环境中定位其他服务。
#为identity服务创建一个服务实体名为keystone,类型为认证,描述为openstack的认证
[root@localhost ~]$ keystone service-create --name keystone --type identity --description "OpenStackIdentity"
#2、OpenStack环境中,identity服务管理目录以及与服务相关API断点。服务使用这个目录来沟通其他服务。
#OpenStack为每个服务提供了三个API端点:admin(管理),internal(内部),public(公共)为identity服务#创建API端点
[root@localhost ~]$ keystone endpoint-create --service-id $(keystone service-list | awk '/ identity / {print $2}') --publicurl http://controller.nice.com:5000/v2.0 --internalurl http://controller.nice.com:5000/v2.0 --adminurl http://controller.nice.com:35357/v2.0 --region regionOne
确认操作
#1、删除OS_SERVICE_TOKEN 和OS_SERVICE_ENDPOINT 临时变量 [root@localhost ~]$ unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT #2、使用admin租户和用户请求认证令牌(租户名称、用户名称、密码、URL路径请求token) [root@localhost ~]$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 token-get #3、以admin租户和用户的身份查看租户列表 [root@localhost ~]$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 tenant-list #4、以admin租户和用户的身份查看用户列表 [root@localhost ~]$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 user-list #5、以admin租户和用户的身份查看角色列表 [root@localhost ~]$ keystone --os-tenant-name admin --os-username admin --os-password ADMIN_PASS --os-auth-url http://controller.nice.com:35357/v2.0 role-list #6、以demo租户和用户的身份请求认证令牌(这个是允许的) [root@localhost ~]$ keystone --os-tenant-name demo --os-username demo --os-password DEMO_PASS --os-auth-url http://controller.nice.com:35357/v2.0 token-get #7、以demo租户和用户的身份查看用户列表(这个不允许) [root@localhost ~]$ keystone --os-tenant-name demo --os-username demo --os-password DEMO_PASS --os-auth-url http://controller.nice.com:35357/v2.0 user-list
创建OpenStack客户端环境脚本
为了方便使用上面的环境变量和命令选项,我们为admin和demo租户和用户创建环境脚本。(后面会用到)
[root@localhost ~]$ vim admin-openrc.sh
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller.nice.com:35357/v2.0
[root@localhost ~]$ vim demo-openrc.sh
export OS_TENANT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller.nice.com:5000/v2.0
加载客户端环境脚本
[root@localhost ~]$ source admin-openrc.sh
(1)服务功能
/var/lib/glance/images/
(2)组件说明
MySQL
或SQLite
(3)基本概念
Image Identifiers:就是Image URL,格式:< Glance Server Location >/images/ < ID >全局唯一
组件工作流
在controller节点上安装配置Glance服务
(1)配置先决条件
1、创建数据库 以数据库管理员root的身份登录数据库 [root@localhost ~]$ mysql -uroot -p123 2.创建glance数据库 MariaDB [(none)]> CREATE DATABASE glance; 3.创建数据库用户glance,并授予其对glance数据库的管理权限 MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS'; 4、启用admin环境脚本 [root@localhost ~]$ source admin-openrc.sh 创建认证服务凭证,完成下列步骤: a.创建glance用户 [root@localhost ~]$ keystone user-create --name glance --pass GLANCE_PASS b.将glance用户链接到service租户和admin角色 [root@localhost ~]$ keystone user-role-add --user glance --tenant service --role admin c.创建glance服务 [root@localhost ~]$ keystone service-create --name glance --type image --description "OpenStackImage Service" 5、为OpenStack镜像服务创建认证服务端点 [root@localhost ~]$ keystone endpoint-create --service-id $(keystone service-list | awk '/ image / {print $2}') --publicurl http://controller.nice.com:9292 --internalurl http://controller.nice.com:9292 --adminurl http://controller.nice.com:9292 --region regionOne
(2)安装并配置镜像服务组件
1、安装软件包 [root@localhost ~]$ yum -y install openstack-glance python-glanceclient 2、编辑/etc/glance/glance-api.conf文件,并完成下列操作 a.修改[database]小节,配置数据库连接: [root@localhost ~]$ vim /etc/glance/glance-api.conf [database] connection=mysql://glance:GLANCE_DBPASS@controller.nice.com/glance b.修改[keystone_authtoken]和[paste_deploy]小节,配置认证服务访问: [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 identity_uri=http://controller.nice.com:35357 admin_tenant_name=service admin_user=glance admin_password=GLANCE_PASS [paste_deploy] flavor=keystone c.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True 3、编辑/etc/glance/glance-registry.con文件,并完成下列配置: [root@localhost ~]$ vim /etc/glance/glance-registry.conf a.在[database]小节中配置数据库连接: [database] connection=mysql://glance:GLANCE_DBPASS@controller.nice.com/glance b.在[keystone_authtoken]和[paste_deploy]小节中配置认证服务访问 [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 identity_uri=http://controller.nice.com:35357 admin_tenant_name=service admin_user=glance admin_password=GLANCE_PASS [paste_deploy] flavor=keystone c.在[glance_store]小节中配置本地文件系统存储和镜像文件的存放路径(新建) [glance_store] default_store=file filesystem_store_datadir=/var/lib/glance/images/ d.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True 4、初始化镜像服务的数据库 [root@localhost ~]$ su -s /bin/sh -c "glance-manage db_sync" glance 如果glance数据库中数据为空,则可能是/etc/glance/glance-api.conf、 /etc/glance/glance-registry.conf文件的注释未去掉
(3)启动镜像服务并设置开机自动启动:
[root@localhost ~]$ systemctl enable openstack-glance-api.service openstack-glance-registry.service
[root@localhost ~]$ systemctl start openstack-glance-api.service openstack-glance-registry.service
(4)上传镜像
cirros-0.3.3-x86_64-disk.img
#下载lrzsz工具直接在xshell上传文件
[root@localhost ~]$ yum -y install lrzsz
glance image-create相关选项含义:
--name <NAME> 镜像名称。 --file <FILE> 要上传文件及路径。 --disk-format <DISK_FORMAT> 镜像的磁盘格式。可以支持:ami, ari, aki, vhd, vmdk, raw, qcow2, vdi,iso格式。 --container-format <CONTAINER_FORMAT> 镜像容器格式。可以支持:ami, ari, aki, bare, ovf格式。 --is-public {True,False} 镜像是否可以被公共访问。 --progress 显示上传进度。 #上传镜像 [root@localhost ~]$ glance image-create --name "cirros-0.3.3-x86_64" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --is-public True --progress [=============================>] 100% +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | 133eae9fb1c98f45894a4e60d8736619 | | container_format | bare | | created_at | 2022-12-04T02:57:29 | | deleted | False | | deleted_at | None | | disk_format | qcow2 | | id | 53e9d26f-7fca-4965-87e7-3722d6ed12ce | | is_public | True | | min_disk | 0 | | min_ram | 0 | | name | cirros-0.3.3-x86_64 | | owner | 31d523850e094426a734400e585b5abc | | protected | False | | size | 13200896 | | status | active | | updated_at | 2022-12-04T02:57:29 | | virtual_size | None | +------------------+--------------------------------------+ [root@controller ~]$ glance image-list +--------------------------------------+---------------------+-------------+------------------+----------+--------+ | ID | Name | Disk Format | Container Format | Size | Status | +--------------------------------------+---------------------+-------------+------------------+----------+--------+ | 53e9d26f-7fca-4965-87e7-3722d6ed12ce | cirros-0.3.3-x86_64 | qcow2 | bare | 13200896 | active |(镜像可用) +--------------------------------------+---------------------+-------------+------------------+----------+--------+ #删除临时目录 [root@localhost ~]$ rm -f /tmp/images
Nova是什么?
组件说明
(1)组件说明-API
(2)组件说明-Core
通过虚拟化层API接口创建和终止虚拟机实例
。例如: XenAPI for XenServer/XCP,libvirt for KVM or QEMU,VMwareAPI for Vmware(负责负载调度)
(3)组件说明-Networking
网卡桥接或改变iptables规则
在控制台代理提供用户授权令牌
(4)组件说明-other
请在前面实验的基础上继续做以下操作
controller节点配置
(1)配置先决条件
1、创建数据库,完成下列步骤: a.使用数据库管理员root登录数据库 [root@localhost ~]$ mysql -uroot -p123 b.创建nova数据库 MariaDB [(none)]> CREATE DATABASE nova; c.创建数据库用户nova,并授予nova用户对nova数据库的完全控制权限。 MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS'; 2、执行admin环境脚本 [root@localhost ~]$ source admin-openrc.sh 3、在认证服务中创建计算服务的认证信息。完成下列步骤: a.创建nova用户 [root@localhost ~]$ keystone user-create --name nova --pass NOVA_PASS b.链接nova用户到service租户和admin角色 [root@localhost ~]$ keystone user-role-add --user nova --tenant service --role admin c.创建nova服务 [root@localhost ~]$ keystone service-create --name nova --type compute --description "OpenStackCompute" 4、创建计算服务端点 [root@localhost ~]$ keystone endpoint-create --service-id $(keystone service-list | awk '/ compute / {print $2}') --publicurl http://controller.nice.com:8774/v2/%\(tenant_id\)s --internalurl http://controller.nice.com:8774/v2/%\(tenant_id\)s --adminurl http://controller.nice.com:8774/v2/%\(tenant_id\)s --region regionOne
(2)安装和配置计算控制组件
1、安装软件包 [root@localhost ~]$ yum install -y openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient 2、编辑/etc/nova/nova.conf文件,完成如下操作: [root@localhost ~]$ vim /etc/nova/nova.conf a.编辑[database]小节,配置数据库访问:没找到直接创建 [database] connection=mysql://nova:NOVA_DBPASS@controller.nice.com/nova b.编辑[DEFAULT]小节,配置RabbitMQ消息队列访问: [DEFAULT] rpc_backend=rabbit rabbit_host=controller.nice.com rabbit_password=guest c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务 [DEFAULT] auth_strategy=keystone [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 #外部api接口 identity_uri=http://controller.nice.com:35357 #内部api接口 admin_tenant_name=service #指定租户名称 admin_user=nova admin_password=NOVA_PASS d.编辑[DEFAULT]小节,配置my_ip选项为controller节点的管理接口ip: [DEFAULT] my_ip=192.168.222.5 #管理网络的IP e.编辑[DEFAULT]小节,配置VNCdialing服务的使用controller节点的管理接口ip: [DEFAULT] vncserver_listen=192.168.222.5 vncserver_proxyclient_address=192.168.222.5 f.编辑[glance]小节,配置镜像服务器的位置: [glance] host=controller.nice.com g.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True 3、初始化计算数据库 [root@localhost ~]$ su -s /bin/sh -c "nova-manage db sync" nova
(3)启动计算服务并配置开机自动启动
[root@localhost ~]$ systemctl enable openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@localhost ~]$ systemctl start openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@controller ~]$ nova service-list
+----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+
| 1 | nova-consoleauth | controller.nice.com | internal | enabled | up | 2022-12-04T04:38:24.000000 | - |
| 2 | nova-conductor | controller.nice.com | internal | enabled | up | 2022-12-04T04:38:24.000000 | - |
| 3 | nova-scheduler | controller.nice.com | internal | enabled | up | 2022-12-04T04:38:24.000000 | - |
| 4 | nova-cert | controller.nice.com | internal | enabled | up | 2022-12-04T04:38:24.000000 | - |
+----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+
compute节点配置
(1)安装并配置计算虚拟化组件
1、安装软件包 [root@localhost ~]$ yum -y install openstack-nova-compute sysfsutils 2、编辑/etc/nova/nova.conf文件,完成下列步骤: [root@localhost ~]$ vim /etc/nova/nova.conf a.编辑[DEFAULT]小节,配置RabbitMQ消息队列访问: [DEFAULT] rpc_backend=rabbit rabbit_host=controller.nice.com rabbit_password=guest b.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问: [DEFAULT] auth_strategy=keystone [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 identity_uri=http://controller.nice.com:35357 admin_tenant_name=service admin_user=nova admin_password=NOVA_PASS c.编辑[DEFAULT]小节,配置my_ip配置项: [DEFAULT] my_ip=192.168.222.10 d.编辑[DEFAULT]小节,开启并配置远程控制台访问 [DEFAULT] vnc_enabled=True vncserver_listen=0.0.0.0 vncserver_proxyclient_address=192.168.222.10 novncproxy_base_url=http://controller.nice.com:6080/vnc_auto.html e.编辑[glance]小节,配置镜像服务器位置 [glance] host=controller.nice.com f.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True
(2)确认你的计算节点是否支持硬件虚拟化
[root@localhost ~]$ egrep -c '(vmx|svm)' /proc/cpuinfo
#如果返回值>=1,则说明你的计算节点硬件支持虚拟化,无需额外配置。
#如果返回值=0,则活命你的计算节点硬件不支持虚拟化,你必须配置libvirt由使用KVM改为QEMU。
要想在虚拟机再实现虚拟化,需要手动编辑虚拟机设置(需关机进行)
(3)在/etc/nova/nova.conf文件中编辑[libvirt]小节
[root@localhost ~]$ vim /etc/nova/nova.conf
[libvirt]
virt_type=qemu
(4)启动计算服务及依赖服务,并设置他们开机自动启动。
[root@localhost ~]$ systemctl enable libvirtd.service openstack-nova-compute.service
[root@localhost ~]$ systemctl start libvirtd.service openstack-nova-compute.service
(5)再去controller节点上查看是否多出一个compute节点(如果有多个compute节点,可以与上面同样配置,此时下表也会出现多个节点)
[root@controller ~]$ nova service-list +----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-consoleauth | controller.nice.com | internal | enabled | up | 2022-12-04T05:14:55.000000 | - | | 2 | nova-conductor | controller.nice.com | internal | enabled | up | 2022-12-04T05:14:55.000000 | - | | 3 | nova-scheduler | controller.nice.com | internal | enabled | up | 2022-12-04T05:14:55.000000 | - | | 4 | nova-cert | controller.nice.com | internal | enabled | up | 2022-12-04T05:14:55.000000 | - | | 5 | nova-compute | compute.nice.com | nova | enabled | up | 2022-12-04T05:14:59.000000 | - | +----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+ [root@controller ~]$ nova image-list #去查看通过nova去请求镜像,是否成功。也就相当于通过nova去请求当前的镜像列表 +--------------------------------------+---------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------+--------+--------+ | 53e9d26f-7fca-4965-87e7-3722d6ed12ce | cirros-0.3.3-x86_64 | ACTIVE | | +--------------------------------------+---------------------+--------+--------+
neutron网络介绍
(1)neutron基本概念
(2)neutron关键概念
(3)组件架构
(4)neutron plugin
Open vSwitch
Linux Bridge
(5)neutron+Nova架构
(6)neutron组件
(7)neutron常见的构建类型
Single FLAT Network
Multi FLAT Network
Mixed FLAT and Private Network
Provider Router with Private Network
Per-tenant Routers with Private Network
(1)创建数据库
a.使用root用户连接mysql数据库
[root@localhost ~]$ mysql -u root -p123
b.创建neutron数据库
MariaDB [(none)]> CREATE DATABASE neutron;
c.创建数据库用户neutron,并授予neutron用户对neutron数据库完全控制权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
(2)执行admin环境变量脚本并在认证服务中创建网络服务的认证信息
[root@localhost ~]$ source admin-openrc.sh a.创建neutron用户 [root@localhost ~]$ keystone user-create --name neutron --pass NEUTRON_PASS b.连接neutron用户到serivce租户和admin角色 [root@localhost ~]$ keystone user-role-add --user neutron --tenant service --role admin c.创建neutron服务 [root@localhost ~]$ keystone service-create --name neutron --type network --description "OpenStackNetworking" d.创建neutron服务端点 [root@localhost ~]$ keystone endpoint-create \ --service-id $(keystone service-list | awk '/ network / {print $2}') \ --publicurl http://controller.nice.com:9696 \ --adminurl http://controller.nice.com:9696 \ --internalurl http://controller.nice.com:9696 \ --region regionOne
(3)安装网络服务组件并配置
安装neutron相关软件 [root@localhost ~]$ yum install openstack-neutron openstack-neutron-ml2 python-neutronclient which -y 配置网络服务组件 编辑/etc/neutron/neutron.conf文件,并完成下列操作: [root@localhost ~]$ vim /etc/neutron/neutron.conf a.编辑[database]小节,配置数据库访问 [database] connection=mysql://neutron:NEUTRON_DBPASS@controller.nice.com/neutron #需自己添加 b.编辑[DEFAULT]小节,配置RabbitMQ消息队列访问: [DEFAULT] rpc_backend=rabbit rabbit_host=controller.nice.com rabbit_password=guest c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问: [DEFAULT] auth_strategy=keystone #需自己添加 [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 #需自己添加 identity_uri=http://controller.nice.com:35357 #需自己添加 admin_tenant_name=service admin_user=neutron admin_password=NEUTRON_PASS d.编辑[DEFAULT]小节,启用Modular Layer2(ML2)插件,路由服务和重叠IP地址功能: [DEFAULT] core_plugin=ml2 #需自己添加 service_plugins=router #需自己添加 allow_overlapping_ips=True #需自己添加 e.编辑[DEFAULT]小节,配置当网络拓扑结构发生变化时通知计算服务: [DEFAULT] notify_nova_on_port_status_changes=True #需自己添加 notify_nova_on_port_data_changes=True #需自己添加 nova_url=http://controller.nice.com:8774/v2 #需自己添加 nova_admin_auth_url=http://controller.nice.com:35357/v2.0 #需自己添加 nova_region_name=regionOne #需自己添加 nova_admin_username=nova #需自己添加 nova_admin_password=NOVA_PASS #需自己添加 nova_admin_tenant_id=db285970d1254cef8ea93b87fdf6ac06 #SERVICE_TENANT_ID #需自己添加 #注:可通过keystone tenant-get service,获取service租户ID。 f.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True
(4)配置Modular Layer 2 (ML2) plug-in
编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件,并完成下列操作: [root@localhost ~]$ vim /etc/neutron/plugins/ml2/ml2_conf.ini a.编辑[ml2]小节,启用flat和generic routing encapsulation (GRE)网络类型驱动,配置GRE租户网络和OVS驱动机制。 [ml2] type_drivers=flat,gre tenant_network_types=gre mechanism_drivers=openvswitch b.编辑[ml2_type_gre]小节,配置隧道标识范围: [ml2_type_gre] tunnel_id_ranges=1:1000 c.编辑[securitygroup]小节,启用安全组,启用ipset并配置OVS防火墙驱动: [securitygroup] enable_security_group=True enable_ipset=True firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver #需自己添加
(5)配置计算服务使用Neutron,默认情况下,计算服务使用传统网络,我们需要重新配置。编辑/etc/nova/nova.conf文件,并完成下列操作:
[root@localhost ~]$ vim /etc/nova/nova.conf a.编辑[DEFAULT]小节,配置API接口和驱动程序: [DEFAULT] network_api_class=nova.network.neutronv2.api.API security_group_api=neutron linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver=nova.virt.firewall.NoopFirewallDriver b.编辑[neutron]小节,配置访问参数: [neutron] url=http://controller.nice.com:9696 auth_strategy=keystone admin_auth_url=http://controller.nice.com:35357/v2.0 admin_tenant_name=service admin_username=neutron admin_password=NEUTRON_PASS
(6)完成配置
1、为ML2插件配置文件创建连接文件。
[root@localhost ~]$ ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
2、初始化数据库
[root@localhost ~]$ su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
3、重新启动计算服务
[root@localhost ~]$ systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service
4、启动网络服务并配置开机自动启动
[root@localhost ~]$ systemctl enable neutron-server.service && systemctl start neutron-server.service
(7)验证
列出加载的扩展模块,确认成功启动neutron-server进程 [root@controller ~]$ neutron ext-list +-----------------------+-----------------------------------------------+ | alias | name | +-----------------------+-----------------------------------------------+ | security-group | security-group | | l3_agent_scheduler | L3 Agent Scheduler | | ext-gw-mode | Neutron L3 Configurable external gateway mode | | binding | Port Binding | | provider | Provider Network | | agent | agent | | quotas | Quota management support | | dhcp_agent_scheduler | DHCP Agent Scheduler | | l3-ha | HA Router extension | | multi-provider | Multi Provider Network | | external-net | Neutron external network | | router | Neutron L3 Router | | allowed-address-pairs | Allowed Address Pairs | | extraroute | Neutron Extra Route | | extra_dhcp_opt | Neutron Extra DHCP opts | | dvr | Distributed Virtual Router | +-----------------------+-----------------------------------------------+
(1)配置先决条件
编辑/etc/sysctl.conf文件,包含下列参数:
[root@localhost ~]$ vim /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
[root@localhost ~]$ sysctl -p #使更改生效
(2)安装网络组件并配置
[root@localhost ~]$ yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch 配置网络通用组件,网络通用组件配置包含认证机制,消息队列及插件。 编辑/etc/neutron/neutron.conf文件并完成下列操作: [root@localhost ~]$ vim /etc/neutron/neutron.conf a.编辑[database]小节,注释任何connection选项。因为network节点不能直接连接数据库。 b.编辑[DEFAULT]小节,配置RabbitMQ消息队列访问 [DEFAULT] rpc_backend=rabbit rabbit_host=controller.nice.com rabbit_password=guest c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问: [DEFAULT] auth_strategy=keystone [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 #需自己添加 identity_uri=http://controller.nice.com:35357 #需自己添加 admin_tenant_name=service admin_user=neutron admin_password=NEUTRON_PASS d.编辑[DEFAULT]小节,启用Modular Layer2(ML2)插件,路由服务和重叠IP地址功能: [DEFAULT] core_plugin=ml2 service_plugins=router allow_overlapping_ips=True e.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错 [DEFAULT] verbose=True
(3)配置Modular Layer 2 (ML2) plug-in,ML2插件使用OpenvSwitch(OVS)机制为虚拟机实例提供网络框架
编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成下列操作 [root@localhost ~]$ vim /etc/neutron/plugins/ml2/ml2_conf.ini a.编辑[ml2]小节,启用flat和generic routing encapsulation (GRE)网络类型驱动,配置GRE租户网络和OVS驱动机制。 [ml2] type_drivers=flat,gre tenant_network_types=gre mechanism_drivers=openvswitch b.编辑[ml2_type_flat]小节,配置外部网络: [ml2_type_flat] flat_networks=external c.编辑[ml2_type_gre]小节,配置隧道标识范围: [ml2_type_gre] tunnel_id_ranges=1:1000 d.编辑[securitygroup]小节,启用安全组,启用ipset并配置OVS防火墙驱动: [securitygroup] enable_security_group=True enable_ipset=True firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver e.编辑[ovs]小节,配置Open vSwitch(OVS) 代理(需自己添加) [ovs] local_ip=172.16.0.6 tunnel_type=gre enable_tunneling=True bridge_mappings=external:br-ex
(4)配置Layer-3 (L3) agent
编辑/etc/neutron/l3_agent.ini文件并完成下列配置:
[root@localhost ~]$ vim /etc/neutron/l3_agent.ini
a.编辑[DEFAULT]小节,配置驱动,启用网络命名空间,配置外部网络桥接
[DEFAULT]
interface_driver= neutron.agent.linux.interface.OVSInterfaceDriver
use_namespaces=True
external_network_bridge=br-ex
b.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。
[DEFAULT]
verbose=True #需自己添加
(5)配置DHCP agent
1、编辑/etc/neutron/dhcp_agent.ini文件并完成下列步骤: [root@localhost ~]$ vim /etc/neutron/dhcp_agent.ini a.编辑[DEFAULT]小节,配置驱动和启用命名空间 [DEFAULT] interface_driver=neutron.agent.linux.interface.OVSInterfaceDriver dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq use_namespaces=True b.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] debug=True 2、(可选,在VMware虚拟机中可能是必要的!)配置DHCP选项,将MUT改为1454bytes,以改善网络性能。 a.编辑/etc/neutron/dhcp_agent.ini文件,先编辑[DEFAULT]小节,启用dnsmasq配置: [DEFAULT] dnsmasq_config_file=/etc/neutron/dnsmasq-neutron.conf b.创建并编辑/etc/neutron/dnsmasq-neutron.conf文件并完成下列配置: [root@localhost ~]$ vim /etc/neutron/dnsmasq-neutron.conf #启用DHCP MTU选项(26)并配置值为1454bytes dhcp-option-force=26,1454 user=neutron group=neutron c.终止任何已经存在的dnsmasq进行,shell中敲下面这个命令 [root@localhost ~]$ pkill dnsmasq
(6)配置metadata agent
1、编辑/etc/neutron/metadata_agent.ini文件并完成下列配置: [root@localhost ~]$ vim /etc/neutron/metadata_agent.ini a.编辑[DEFAULT]小节,配置访问参数: [DEFAULT] auth_url=http://controller.nice.com:5000/v2.0 auth_region=regionOne admin_tenant_name=service admin_user=neutron admin_password=NEUTRON_PASS b.编辑[DEFAULT]小节,配置元数据主机: [DEFAULT] nova_metadata_ip=controller.nice.com c.编辑[DEFAULT]小节,配置元数据代理共享机密暗号: [DEFAULT] metadata_proxy_shared_secret=METADATA_SECRET b.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] debug=True
(7)下面需要在controller节点配置
#编辑/etc/nova/nova.conf文件并完成下列配置
[root@localhost ~]$ vim /etc/nova/nova.conf
#编辑[neutron]小节,启用元数据代理并配置机密暗号:
[neutron]
service_metadata_proxy=True
metadata_proxy_shared_secret=METADATA_SECRET
#在controller节点,重新启动computeAPI服务
[root@localhost ~]$ systemctl restart openstack-nova-api.service
(8)回到neutron节点上来,配置Open vSwitch(OVS)服务
1、启动VOS服务并配置开机自动启动:
[root@localhost ~]$ systemctl enable openvswitch.service && systemctl start openvswitch.service
2、添加外部网桥(external birdge)
[root@localhost ~]$ ovs-vsctl add-br br-ex
3、添加一个端口到外部网桥,用于连接外部物理网络
[root@localhost ~]$ ovs-vsctl add-port br-ex eno50332184 #INTERFACE_NAME
#注:将INTERFACE_NAME换成实际连接外部网卡接口名。如:eth2或eno50332208。
(9)完成安装
1.创建网络服务初始化脚本的符号连接
[root@localhost ~]$ ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
[root@localhost ~]$ cp /usr/lib/systemd/system/neutron-openvswitch-agent.service /usr/lib/systemd/system/neutron-openvswitch-agent.service.orig
[root@localhost ~]$ sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' /usr/lib/systemd/system/neutron-openvswitch-agent.service
2.启动网络服务并设置开机自动启动
[root@localhost ~]$ systemctl enable neutron-openvswitch-agent.service neutron-l3-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-ovs-cleanup.service
[root@localhost ~]$ systemctl start neutron-openvswitch-agent.service neutron-l3-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service neutron-ovs-cleanup.service
(10)验证(在controller节点执行下列命令)
1.执行admin环境变量脚本
[root@localhost ~]$ source admin-openrc.sh
2.列出neutron代理,确认启动neutron agents成功。
[root@localhost ~]$ neutron agent-list
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
| id | agent_type | host | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
| 067770b8-60a6-428e-8f52-817435dbf84f | Open vSwitch agent | network.nice.com | :-) | True | neutron-openvswitch-agent |
| 2a5bf715-0fe2-4162-b7a8-6deb26547b09 | DHCP agent | network.nice.com | :-) | True | neutron-dhcp-agent |
| aef71953-de29-407a-94a6-a13b1918aa7e | Metadata agent | network.nice.com | :-) | True | neutron-metadata-agent |
| f949b3ca-b816-48d3-87bd-f96d31b76757 | L3 agent | network.nice.com | :-) | True | neutron-l3-agent |
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
(1)配置先决条件
编辑/etc/sysctl.conf文件,使其包含下列参数:
[root@localhost ~]$ vi /etc/sysctl.conf
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
使/etc/sysctl.conf文件中的更改立即生效:
[root@localhost ~]$ sysctl -p
(2)安装网络组件并配置网络通用组件
[root@localhost ~]$ yum -y install openstack-neutron-ml2 openstack-neutron-openvswitch vim 编辑/etc/neutron/neutron.conf文件并完成下列操作: [root@localhost ~]$ vim /etc/neutron/neutron.conf a.编辑[database]小节,注释所有connection配置项。因为计算节点不能直接连接数据库。 # connection = mysql://root:pass@127.0.0.1:3306/neutron b.编辑[DEFAULT]小节,配置RabbitMQ消息代理访问: [DEFAULT] rpc_backend=rabbit rabbit_host=controller.nice.com rabbit_password=guest c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问: [DEFAULT] auth_strategy=keystone [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 #需自行添加 identity_uri=http://controller.nice.com:35357 #需自行添加 admin_tenant_name=service admin_user=neutron admin_password=NEUTRON_PASS d.编辑[DEFAULT]小节,启用Modular Layer2(ML2)插件,路由服务和重叠ip地址功能: [DEFAULT] core_plugin=ml2 service_plugins=router allow_overlapping_ips=True e.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True
(3)配置Modular Layer 2 (ML2) plug-in
编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件并完成下列操作: [root@localhost ~]$ vim /etc/neutron/plugins/ml2/ml2_conf.ini a.编辑[ml2]小节,启用flat和generic routing encapsulation (GRE)网络类型驱动,GRE租户网络和OVS机制驱动: [ml2] type_drivers=flat,gre tenant_network_types=gre mechanism_drivers=openvswitch b.编辑[ml2_type_gre]小节,配置隧道标识符(id)范围: [ml2_type_gre] tunnel_id_ranges=1:1000 c.编辑[securitygroup]小节,启用安装组,ipset并配置OVS iptables防火墙驱动: [securitygroup] enable_security_group=True enable_ipset=True firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver d.编辑[ovs]小节,配置Open vSwitch(OVS) agent(需自行添加) [ovs] local_ip=172.16.0.10 tunnel_type=gre enable_tunneling=True
(4)配置Open vSwitch(OVS) service
启动OVS服务并设置开机自动启动:
[root@localhost ~]$ systemctl enable openvswitch.service && systemctl start openvswitch.service
(5)配置计算服务使用网络
编辑/etc/nova/nova.conf文件并完成下列操作: [root@localhost ~]$ vim /etc/nova/nova.conf a.编辑[DEFAULT]小节,配置API接口和驱动: [DEFAULT] network_api_class=nova.network.neutronv2.api.API security_group_api=neutron linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver=nova.virt.firewall.NoopFirewallDriver b.编辑[neutron]小节,配置访问参数: [neutron] url=http://controller.nice.com:9696 auth_strategy=keystone admin_auth_url=http://controller.nice.com:35357/v2.0 admin_tenant_name=service admin_username=neutron admin_password=NEUTRON_PASS
(6)完成安装
1、创建网络服务初始化脚本的符号连接
[root@localhost ~]$ ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
[root@localhost ~]$ cp /usr/lib/systemd/system/neutron-openvswitch-agent.service /usr/lib/systemd/system/neutron-openvswitch-agent.service.orig
[root@localhost ~]$ sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' /usr/lib/systemd/system/neutron-openvswitch-agent.service
2、重启计算服务:
[root@localhost ~]$ systemctl restart openstack-nova-compute.service
3、启动OVS代理服务并设置开机自动启动:
[root@localhost ~]$ systemctl enable neutron-openvswitch-agent.service && systemctl start neutron-openvswitch-agent.service
(7)验证(在controller节点执行下列命令)
1.执行admin环境变量脚本
[root@localhost ~]$ source admin-openrc.sh
2.列出neutron代理,确认启动neutron agents成功。
[root@localhost ~]$ neutron agent-list
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
| id | agent_type | host | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
| 067770b8-60a6-428e-8f52-817435dbf84f | Open vSwitch agent | network.nice.com | :-) | True | neutron-openvswitch-agent |
| 29f63e11-7ac1-42b9-afc0-dcaecaebbff9 | Open vSwitch agent | compute.nice.com | :-) | True | neutron-openvswitch-agent |
| 2a5bf715-0fe2-4162-b7a8-6deb26547b09 | DHCP agent | network.nice.com | :-) | True | neutron-dhcp-agent |
| aef71953-de29-407a-94a6-a13b1918aa7e | Metadata agent | network.nice.com | :-) | True | neutron-metadata-agent |
| f949b3ca-b816-48d3-87bd-f96d31b76757 | L3 agent | network.nice.com | :-) | True | neutron-l3-agent |
+--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
(1)创建一个外部网络(浮动网络)
1、执行admin环境变量脚本
[root@localhost ~]$ source admin-openrc.sh
2、创建网络
[root@localhost ~]$ neutron net-create ext-net --shared --router:external True --provider:physical_network external --provider:network_type flat
(2)创建一个外部网络的子网(公网地址池):例如,外网网段为:100.100.100.0/24,浮动地址范围为:100.100.100.11~100.100.100.240,网关为:100.100.100.10(注意此处的公网地址在真实的环境中,应该是向运营商申请的)
[root@localhost ~]$ neutron subnet-create ext-net --name ext-subnet --allocation-pool start=100.100.100.11,end=100.100.100.240 --disable-dhcp --gateway 100.100.100.10 100.100.100.0/24 #网关100.100.100.10,网段100.100.100.0/24
(3)配置租户网络(在controller节点执行后面的命令),先执行demo环境变量脚本
1、执行demo环境变量脚本
[root@localhost ~]$ source demo-openrc.sh
2、创建租户网络
[root@localhost ~]$ neutron net-create demo-net
(4)创建一个租户网络的子网,例如,租户网的网段为192.168.2.0/24,网关为192.168.2.1(网关通常默认为.1)
[root@localhost ~]$ neutron subnet-create demo-net --name demo-subnet --gateway 192.168.2.1 192.168.2.0/24
(5)在租户网络创建一个路由器,用来连接外部网和租户网
1、创建路由器
[root@localhost ~]$ neutron router-create demo-router
2、附加路由器到demo租户的子网
[root@localhost ~]$ neutron router-interface-add demo-router demo-subnet
3、通过设置网关,使路由器附加到外部网
[root@localhost ~]$ neutron router-gateway-set demo-router ext-net
(6)确认连接
1、查看路由器获取到的IP。
[root@localhost ~]$ neutron router-list
2、在任何一台外部主机上ping路由器获取到的外部地址
查看neutron的外部网络是用的哪块虚拟网卡
修改网卡ip为100.100.100.244
测试:此时我们依靠外部网络就可以ping通租户的路由器
基于B/S架构,进行管理
Horizon的安装步骤:
先决条件
查看Nova服务是否正常运行,Neutron代理端是否正常连接
[root@controller ~]$ nova service-list ERROR (Forbidden): Policy doesn't allow compute_extension:services to be performed. (HTTP 403) (Request-ID: req-897d0e5e-1fbe-4a31-ba1e-61b59600f2e5) 可能出现的原因是环境变量的问题,所以先运行脚本 [root@controller ~]$ source admin-openrc.sh [root@controller ~]$ nova service-list +----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-consoleauth | controller.nice.com | internal | enabled | up | 2022-12-04T12:16:39.000000 | - | | 2 | nova-conductor | controller.nice.com | internal | enabled | up | 2022-12-04T12:16:39.000000 | - | | 3 | nova-scheduler | controller.nice.com | internal | enabled | up | 2022-12-04T12:16:40.000000 | - | | 4 | nova-cert | controller.nice.com | internal | enabled | up | 2022-12-04T12:16:40.000000 | - | | 5 | nova-compute | compute.nice.com | nova | enabled | up | 2022-12-04T12:16:46.000000 | - | +----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+ [root@controller ~]$ neutron agent-list +--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+ | id | agent_type | host | alive | admin_state_up | binary | +--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+ | 067770b8-60a6-428e-8f52-817435dbf84f | Open vSwitch agent | network.nice.com | :-) | True | neutron-openvswitch-agent | | 29f63e11-7ac1-42b9-afc0-dcaecaebbff9 | Open vSwitch agent | compute.nice.com | :-) | True | neutron-openvswitch-agent | | 2a5bf715-0fe2-4162-b7a8-6deb26547b09 | DHCP agent | network.nice.com | :-) | True | neutron-dhcp-agent | | aef71953-de29-407a-94a6-a13b1918aa7e | Metadata agent | network.nice.com | :-) | True | neutron-metadata-agent | | f949b3ca-b816-48d3-87bd-f96d31b76757 | L3 agent | network.nice.com | :-) | True | neutron-l3-agent | +--------------------------------------+--------------------+------------------+-------+----------------+---------------------------+
接着安装仪表盘套件(controller上安装)
(1)安装仪表板组件
[root@localhost ~]$ yum install openstack-dashboard httpd mod_wsgi memcached python-memcached vim -y
(2)配置仪表板
编辑/etc/openstack-dashboard/local_settings文件并完成下列配置 [root@localhost ~]$ vim /etc/openstack-dashboard/local_settings a.配置dashboard使用controller节点上的OpenStack服务 OPENSTACK_HOST="controller.nice.com" b.设置允许来自所有网络的主机访问dashboard ALLOWED_HOSTS=['controller.nice.com', '*'] c.配置memcached会话存贮服务(将原有CACHES区域注释) CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } } d.(可选)配置时区 TIME_ZONE = "Asia/Shanghai"
(3)安装完成后
1、在RHEL或CentOS上,配置SElinux去允许web服务器访问OpenStack服务(如果你没
关SElinux):
[root@localhost ~]$ setsebool-P httpd_can_network_connecton
2.修改相关文件归属,使dashboardCSS可以被加载。
[root@localhost ~]$ chown -R apache:apache /usr/share/openstack-dashboard/static
3.启动web服务和会话保存服务,并设置开机自动启动。
[root@localhost ~]$ systemctl enable httpd.service memcached.service
[root@localhost ~]$ systemctl start httpd.service memcached.service
(4)验证
1、访问dashboard,在浏览器(建议谷歌浏览器)输入:http://controller.nice.com/dashboard
特别注意由于我们没有设置DNS服务器,所以需要修改windows的HOST文件,将controller的IP与对应域名进行绑定
2、使用admin或demo用户登录
账号 admin
密码 ADMIN_PASS
组件说明
(后端指的不同的操作系统)
Block Storage(cinder)安装配置(controller节点)
1、创建数据库,并完成下列步骤: a.以数据库管理员root的身份连接数据库: [root@localhost ~]$ mysql -uroot -p123 b.创建cinder数据库 MariaDB [(none)]> CREATE DATABASE cinder; c.创建数据库用户cinder,并授予cinder用户对cinder数据库的完全控制权限: MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS'; d.退出数据库连接 MariaDB [(none)]> exit 2、执行admin环境变量脚本 [root@localhost ~]$ source admin-openrc.sh 3、在认证服务中创建块存储服务认证信息,完成下列步骤: a.创建cinder用户 [root@localhost ~]$ keystone user-create --name cinder --pass CINDER_PASS b.链接cinder用户到service租户和admin角色 [root@localhost ~]$ keystone user-role-add --user cinder --tenant service --role admin c.创建cinder服务(两个版本,volume,volumev2都创建) [root@localhost ~]$ keystone service-create --name cinder --type volume --description "OpenStackBlock Storage" [root@localhost ~]$ keystone service-create --name cinderv2 --type volumev2 --description "OpenStackBlock Storage" d.创建块存储服务端点 [root@localhost ~]$ keystone endpoint-create \ --service-id $(keystone service-list | awk '/ volume / {print $2}') \ --publicurl http://controller.nice.com:8776/v1/%\(tenant_id\)s \ --internalurl http://controller.nice.com:8776/v1/%\(tenant_id\)s \ --adminurl http://controller.nice.com:8776/v1/%\(tenant_id\)s \ --region regionOne [root@localhost ~]$ keystone endpoint-create \ --service-id $(keystone service-list | awk '/ volumev2 / {print $2}') \ --publicurl http://controller.nice.com:8776/v2/%\(tenant_id\)s \ --internalurl http://controller.nice.com:8776/v2/%\(tenant_id\)s \ --adminurl http://controller.nice.com:8776/v2/%\(tenant_id\)s \ --region regionOne
(2)安装并配置块存储控制组件
1、安装软件包 [root@localhost ~]$ yum -y install openstack-cinder python-cinderclient python-oslo-db vim 2、编辑/etc/cinder/cinder.conf文件并完成下列操作: [root@localhost ~]$ vim /etc/cinder/cinder.conf a.编辑[database]小节,配置数据库连接: [database] connection=mysql://cinder:CINDER_DBPASS@controller.nice.com/cinder b.编辑[DEFAULT]小节,配置RabbitMQ消息代理访问: [DEFAULT] rpc_backend=rabbit rabbit_host=controller.nice.com rabbit_password=guest c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问: [DEFAULT] auth_strategy=keystone [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 identity_uri=http://controller.nice.com:35357 admin_tenant_name=service admin_user=cinder admin_password=CINDER_PASS d.编辑[DEFAULT]小节,配置my_ip选项使用controller节点的控制端口ip: [DEFAULT] my_ip=192.168.222.5 e.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True 3、初始化块存储服务数据库 [root@localhost ~]$ su -s /bin/sh -c "cinder-manage db sync" cinder
(3)完成安装
启动块存储服务并设置开机自动启动:
[root@localhost ~]$ systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
[root@localhost ~]$ systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
安装并配置block节点
(1)配置先决条件
1、添加一个新的硬盘(如:sdb),并分将全部空间分成一个主分区。 [root@block ~]$ fdisk -l 查看是否添加了硬盘 2、安装LVM软件包(根据自身情况) [root@localhost ~]$ yum install lvm2 vim 3、启动LVM服务并设置开机自动启动(根据自身情况) [root@localhost ~]$ systemctl enable lvm2-lvmetad.service [root@localhost ~]$ systemctl start lvm2-lvmetad.service 4、创建物理卷/dev/sdb [root@localhost ~]$ pvcreate /dev/sdb 5、创建卷组cinder-volumes(名字不要改): [root@localhost ~]$ vgcreate cinder-volumes /dev/sdb 6、编辑/etc/lvm/lvm.conf文件,使系统只扫描启用LVM的磁盘。防止识别其他非LVM磁盘对块存储服务造成影响。 编辑devices小节,添加过滤器允许/dev/sdb磁盘,拒绝其他设备。 [root@localhost ~]$ vim /etc/lvm/lvm.conf devices { filter = [ "a/sdb/", "r/.*/"] 警告:如果你的系统磁盘使用了LVM,则必须添加系统盘到过滤器中: filter = [ "a/sda", "a/sdb/", "r/.*/"] 同样,如果conpute节点的系统盘也使用了LVM,则也需要修改/etc/lvm/lvm.conf文件。并添加过滤器。 filter = [ "a/sdb/", "r/.*/"]
(2)安装并配置块存储卷组件
1、安装软件包 [root@localhost ~]$ yum install openstack-cinder targetcli python-oslo-db MySQL-python 2、编辑/etc/cinder/cinder.conf文件并完成下列操作: [root@localhost ~]$ vim /etc/cinder/cinder.conf a.编辑[database]小节,配置数据库访问: [database] connection=mysql://cinder:CINDER_DBPASS@controller.nice.com/cinder b.编辑[DEFAULT]小节,配置RabbitMQ消息代理访问: [DEFAULT] rpc_backend=rabbit rabbit_host=controller.nice.com rabbit_password=guest c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问: [DEFAULT] auth_strategy=keystone [keystone_authtoken] auth_uri=http://controller.nice.com:5000/v2.0 identity_uri=http://controller.nice.com:35357 admin_tenant_name=service admin_user=cinder admin_password=CINDER_PASS d.编辑[DEFAULT]小节,配置my_ip选项: [DEFAULT] my_ip=192.168.222.20 e.编辑[DEFAULT]小节,配置镜像服务器位置: [DEFAULT] glance_host=controller.nice.com f.编辑[DEFAULT]小节,配置块存储服务使用lioadmiSCSI服务 [DEFAULT] iscsi_helper=lioadm g.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。 [DEFAULT] verbose=True
(3)完成安装
启动块存储volume服务和iSCSI服务,并设置开机自动启动。
[root@localhost ~]$ systemctl enable openstack-cinder-volume.service target.service
[root@localhost ~]$ systemctl start openstack-cinder-volume.service target.service
(4)验证(在controller节点完成下列操作)
1、执行admin环境变量脚本 [root@localhost ~]$ source admin-openrc.sh 2、列出服务组件确认每个进程启动成功(此处如果volumes状态为down,则有可能出现了block与controller时间不同步导致的) [root@localhost ~]$ cinder service-list [root@controller ~]# cinder service-list +------------------+---------------------+------+---------+-------+----------------------------+-----------------+ | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +------------------+---------------------+------+---------+-------+----------------------------+-----------------+ | cinder-scheduler | controller.nice.com | nova | enabled | up | 2022-12-04T13:37:10.000000 | None | | cinder-volume | block.nice.com | nova | enabled | down | 2022-12-11T16:33:06.000000 | None | +------------------+---------------------+------+---------+-------+----------------------------+---------------- 重新将block与controller进行时间同步 在block上做 [root@block ~]$ ntpdate -u controller.nice.com 4 Dec 21:35:17 ntpdate[2615]: step time server 192.168.222.5 offset -615477.440225 sec 再去controller上 [root@controller ~]$ cinder service-list +------------------+---------------------+------+---------+-------+----------------------------+-----------------+ | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +------------------+---------------------+------+---------+-------+----------------------------+-----------------+ | cinder-scheduler | controller.nice.com | nova | enabled | up | 2022-12-04T13:37:20.000000 | None | | cinder-volume | block.nice.com | nova | enabled | up | 2022-12-04T13:37:17.000000 | None | +------------------+---------------------+------+---------+-------+----------------------------+-----------------+ 3、执行demo用户环境变量脚本 [root@localhost ~]$ source demo-openrc.sh 4、创建1GB的卷 [root@localhost ~]$ cinder create --display-name demo-volume1 1 5、确认卷已创建并可用 [root@localhost ~]$ cinder list
创建密钥对
大多数云镜像使用公钥认证,这有别于传统的用户名/密码认证。在启动一个实例之前,你必须使用ssh-keygen命令生成一个密钥对,并将公钥添加到你的OpenStack环境
1、执行demo环境变量脚本
[root@localhost ~]$ source demo-openrc.sh
2、生成密钥对
[root@localhost ~]$ ssh-keygen
3、添加公钥到OpenStack环境
[root@localhost ~]$ nova keypair-add --pub-key ~/.ssh/id_rsa.pub demo-key
4、验证公钥是否添加成功
[root@localhost ~]$ nova keypair-list
启动一个实例
要启动一个实例,你必须最少指定flavor(云主机类型),imagename(镜像名),network(网络),security group(安全组),key(密钥)和instance name(实例名)。 1、flavor用来指定一个虚拟的独立分配的资源。包括cpu,内存和存储。查看可用的flavor: [root@localhost ~]$ nova flavor-list 2、列出可用的镜像 [root@localhost ~]$ nova image-list 3、列出可用的网络 [root@localhost ~]$ neutron net-list 4、列出可用的安全组 [root@localhost ~]$ nova secgroup-list 5、启动实例 [root@localhost ~]$ nova boot --flavor m1.tiny --image cirros-0.3.3-x86_64 --nic net-id=320b228b-a84c-4a76-a669-4cd232e9c5fa --security-group default --key-name demo-key demo-instance1 6、查看实例状态 [root@localhost ~]$ nova list
通过虚拟控制台访问你的实例
获取用于访问你的实例的Virtual Network Computing (VNC) 会话URL,并通过浏览器访问:
[root@localhost ~]$ nova get-vnc-console demo-instance1 novnc
确保你的客户端能够解析controller节点的FQDN名。
确认能够连接demo-net租户网络的网关
[root@localhost ~]$ ping -c 4 192.168.2.1
确认能够连接ext-net外部网络
[root@localhost ~]$ ping -c 10.0.0.1
远程访问你的实例
1、添加规则到名为default的安全组: a.允许ICMP协议(ping): [root@localhost ~]$ nova secgroup-add-rule default icmp-1 -1 0.0.0.0/0 b.允许ssh协议: [root@localhost ~]$ nova secgroup-add-rule default tcp22 22 0.0.0.0/0 2、在ext-net外部网络创建一个浮动IP地址: [root@localhost ~]$ neutron floatingip-create ext-net 3、分配浮动IP地址到你的实例: [root@localhost ~]$ nova floating-ip-associate demo-instance110.0.0.110 4、检查你的浮动IP地址状态: [root@localhost ~]$ nova list 5、从任何一个可以和ext-net网络通讯的主机测试连通性 [root@localhost ~]$ ping -c 4 10.0.0.110 6、从任何一个可以和ext-net网络通讯的主机上通过ssh访问实例 [root@localhost ~]$ sshcirros@10.0.0.110 或将私钥文件复制到外部客户端,通过密钥对验证登录 [root@localhost ~]$ ssh-iid_rsacirros@10.0.0.110
为demo-instance添加额外的云硬盘
如果你的环境中包含块存储服务,则你可以为你的实例添加云硬盘。
1、执行demo环境变量脚本 [root@localhost ~]$ source demo-openrc.sh 2、列出卷 [root@localhost ~]$ nova volume-list 3、附加demo-volume1卷到demo-instance1实例: [root@localhost ~]$ nova volume-attach demo-instance1 158bea89-07db-4ac2-8115-66c0d6a4bb48 4、列出卷 [root@localhost ~]$ nova volume-list 5、从任何一个可以和ext-net网络通讯的主机上通过ssh访问实例,并使用fdisk命令确认新存储。 [root@localhost ~]$ ssh cirros@10.0.0.110 [root@localhost ~]$ sudo fdisk -l
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。