1、Openstack虚拟化云计算平台详细安装流程报告1. 写在前面的话Openstack到目前为止(201403),已经包含多个稳定版本(A-H),最新的稳定版本是Havana版,我们现在使用的实验版本也是havana版本。由于openstack的版本相互之间差异比较大,组件的安装命令等也略有相同,所以在参考此文档时要注意区别openstack的版本。Openstack的各个组件相互之间是通过网络来进行互联互通,不同的组件理论上都可以部署在不同的节点上,可以通过一些的额外的步骤来提高openstack的可用性。基于我们的实验环境和现实情况,我们选择了官网推荐的最经典的安装方式,因此阅读此文档的读
2、者在阅读文档时,注意我们使用的安装方式不是openstack的唯一安装方式。2. Openstack架构2.1基础组件服务组件说明备注DashBoardHorizon提供WEB界面ComputerNova计算也就是虚拟机NetworkingNeutron提供给nova网络支持实验环境不需要安装Object StorageSwift提供对象存储实验环境不需要安装Block StorageCinder提供云硬盘给novaIdentity SserviceKeystone提供所有组件的认证Image ServiceGlance提供给nova镜像服务Telemetry ServiceCellomete
3、r监控cinder,neutron,nova,glance实验环境不需要安装Orchestration ServiceHeat与AWS cloud兼容实验环境不需要安装2.2组件对应关系3. 基础配置1. 硬件配置情况介绍:机器CPU内存硬盘网卡其他虚拟机1单核E5500 Intel2.8G2G20G单网卡2.节点情况介绍:机器节点主机名IP地址操作系统用户名密码情况节点centos10.10.70.20CentOS6.5 basicServerroot/rootpassOpenstack/openstack3.网络情况介绍: 通过一台单独的交换机进行网络访问,因此网络中有大量可用的10.10
4、.70.XX段地址,可以分配给不同的虚拟机。实验环境的网络速度有限速,所以很多措施是节省网络代码,如果网络条件好,很多步骤可以省略或者替换。4.相关密码统计所属机器用户名密码用户名密码说明Centos的用户密码root/rootpassRoot用户的密码openstack/openstackOpenstack的用户名密码mySQL数据库服务器Root/mysqlrootOpenstack服务密码Nova/novaKeystone/keystoneGlance/glanceCinder/cinderOpenstack数据库密码Nova/novaKeystone/keystoneGlance/gl
5、anceCinder/cinder4. 基本的操作系统配置重要提醒在进行下面的所有操作时,必须要有root权限,如果root权限不好获取,可以通过sudo命令来获取。4.1基础网络设置1. 将节点的IP设置成静态的IP地址。修改文件:vi /etc/sysconfig/network-scripts/ifcfg-eth0需要注意的内容如下:DEVICE=eth0 网卡的名称HWADDR=00:1E:67:24:E7:31 Mac地址的名称TYPE=Ethernet 网络类型UUID=c6ee6fd1-467b-4f36-bcdc-307bc678191b ONBOOT=yes这是随系统启动而启
6、动的选项NM_CONTROLLED=no这是由系统的networkmanager来管理IP地址, 设置为NoBOOTPROTO=static设置网卡获取IP地址方式 有static,DHCP,bootp. 分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址IPADDR=10.10.70.20 如果设置网卡获得ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址NETMASK=255.255.255.0 子网掩码GATEWAY=10.10.70.211 网关地址ARPCHECK=noDNS1=10.10.70.211设置完成之后,重启网络: se
7、rvice network restart重要提醒1.有些教程中说ifcfg-eth0中的配置网关的GATEWAY关键字是 NETWORK,是不对的 ,实现发现如果设置错误,上不了外网。2.ARPCHECK=no的作用是解决错误:网络重启报错:Bringing up interface eth0: Determining if ip address 10.10.70.20 is already in use for device eth0.2. 设置节点的网关修改对应网卡的网关的配置文件vi/etc/sysconfig/network修改以下内容NETWORKING=yes(表示系统是否使用网
8、络,一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启动) HOSTNAME=centos(设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应) GATEWAY=10.10.70.211(设置本机连接的网关的IP地址。)设置完成之后,重启网络: service network restart3. 设置节点的DNS修改对应网卡的DNS的配置文件vi/etc/resolv.conf 修改一下内容:nameserver10.10.70.211设置完成之后,重启网络: service network restart4. 设置节点的主机名IP对应关系1
9、、修改文件:vi/etc/sysconfig/network设置:HOSTNAME=centos 2、修改文件:vi etc/hosts在以前的内容上增加: 127.0.0.1 centos 10.10.70.20 centos重要提醒设置节点的主机名和IP对应关系时要注意,每个节点都要配置此项,而且每个节点都要配置整个网络中其他节点的IP和主机名的对应关系。这样做的目的是为了在整个网络中,可以通过主机名来访问其他的机器。 5. 关闭节点的防火墙以及其他安全策略。1. 重启网络运行以下命令 service NetworkManager stop service network start ch
10、kconfig NetworkManager off chkconfig network on2. 关闭防火墙service iptables stopchkconfig iptables offservice ip6tables stopchkconfig ip6tables off3. 关闭SELinuxsetenforce 0vi etc/sysconfig/selinux修改SELINUX=permissive重要提醒1. 获取当前 SELinux 运行状态#getenforce可能返回结果有三种:Enforcing、Permissive和Disabled。Disabled 代表 SE
11、Linux 被禁用,Permissive 代表仅记录安全警告但不阻止可疑行为,Enforcing 代表记录警告且阻止可疑行为。目前常见发行版中,RHEL 和 Fedora 默认设置为 Enforcing,其余的如 openSUSE 等为 Permissive。2. 改变 SELinux 运行状态setenforce Enforcing | Permissive | 1 | 0 该命令可以立刻改变 SELinux 运行状态,在 Enforcing 和 Permissive 之间切换,结果保持至关机。一个典型的用途是看看到底是不是 SELinux 导致某个服务或者程序无法运行。若是在 setenf
12、orce 0 之后服务或者程序依然无法运行,那么就可以肯定不是 SELinux 导致的。若是想要永久变更系统 SELinux 运行环境,可以通过更改配置文件/etc/sysconfig/selinux实现。注意当从 Disabled 切换到 Permissive 或者 Enforcing 模式后需要重启计算机并为整个文件系统重新创建安全标签(touch /.autorelabel & reboot)。4.2时间同步服务器设置因为是单节点所以可以省略掉4.3MySQL数据库设置1. 节点安装步骤:l 运行以下命令,安装mysql服务器和客户端 yum install -y mysql mysql
13、-server MySQL-pythonl 启动MySQL服务 service mysqld start chkconfig mysqld onl 初始化MYSQL数据库 mysql_install_db mysql_secure_installation 重要提醒初始化MYSQL数据库的目的是为了删除mysql自带的测试数据库以及为mysql的root用户增加密码:实验环境的密码为:mysqlroot 4.4Openstack基础包下载设置在各个节点中,按照以下步骤安装: yum install http:/repos.fedorapeople.org/repos/openstack/ope
14、nstack-havana/rdo-release-havana-6.noarch.rpm -y yum install http:/dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm -y yum install openstack-utils -y yum install openstack-selinux -y yum upgrade -y reboot重要提醒由于网络原因,可能会提示下载失败等问题,这是由于需要远程国外的网站下载资源,如果一旦碰到下载失败的情况,重复执行命令即可,linux会自动连续下载。
15、Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again修改/etc/yum.repos.d/epel.repo文件,做如下改动#baseurl=http:/download.fedoraproject.org/pub/epel/6/$basearchmirrorlist=https:/mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch变为baseurl=http:/download.fedorapr
16、oject.org/pub/epel/6/$basearch#mirrorlist=https:/mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch保存文件,再次执行即可5.5消息服务器设置在节点进行消息服务器的安装工作:1.安装消息服务器 yum install qpid-cpp-server memcached -y2. 修改/etc/qpidd.conf文件,将auth的选项设置no,来禁用qpidd的认证。auth=no3.启动消息服务器,并设置为自动启动。 service qpidd start chkconfi
17、g qpidd on5. 配置用户权限服务Idenitity Service5.1用户权限服务的基本概念用户权限服务主要包含两个功能:l 用户管理:管理用户以及用户的权限。l 服务目录:通过服务终端提供相应的服务目录。主要涉及的名词有:l 用户(user):用户指的是使用openstack云服务的使用者,用户具有登录和使用资源的权限,用户隶属于租户。l 证书(Credentials):有且只有用户自己知道的一组数据,比如:密码,认证令牌等等l 认证(Authentication):确定一个用户身份的动作。l 令牌(token):组用来访问资源的随机数字,令牌中包含了访问资源的范围和权限等等。l
18、 租户(tenant):租户可以被理解为一个项目,团队或组织。你必须指定一个相应的租户(tenant)才可以申请OpenStack服务l 服务(Service):openstack的组件表现形式,提供了一个或者多个终端,用户可以通过访问终端来资源。 l 终端(Endpoint):通过网络访问服务的一种方式,通常是URL地址等。l 角色(Role):角色代表特定的租户中的用户操作权限5.2安装和配置用户权限服务在节点中完成以下操作:1. 在节点中安装keystone服务包 yum install openstack-keystone python-keystoneclient -y2. 用户权限
19、服务通过数据库来存储基本信息。因此需要在数据库中修改数据库的位置,本实验中使用了mysql数据,通过以下命令来修改数据库配置信息。 openstack-config -set /etc/keystone/keystone.conf sql connection mysql:/keystone:keystonecentos/keystone3. 通过openstack-db 命令来初始化数据库表,同时创建相应的数据库和用户。 openstack-db -init -service keystone -password keystone4. 使用openssl来生成认证令牌,用来使用用户权限服务和
20、openstack的其他服务之间共享数据。 ADMIN_TOKEN=$(openssl rand -hex 10) echo $ADMIN_TOKEN openstack-config -set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN重要提醒 这个步骤里生成ADMIN_TOKEN,后面需要频繁的使用到,所以此时要记录下来。5. KeyStone使用了PKI令牌,执行下面的名来安装关键字和证书。 keystone-manage pki_setup -keystone-user keystone -keystone-
21、group keystone chown -R keystone:keystone /etc/keystone/* /var/log/keystone/keystone.log6. 启动keystone的服务并设置为开机自启动。 service openstack-keystone start&chkconfig openstack-keystone on5.3定义用户,租户,角色等安装完用户权限服务之后,可以增加相应的角色,租户,用户等。1. 设置环境变量 export OS_SERVICE_TOKEN=使用上面生成的ADMIN_TOKEN export OS_SERVICE_ENDPOIN
22、T=http:/centos:35357/v2.02. 创建租户 keystone tenant-create -name=admin -description=Admin Tenant keystone tenant-create -name=service -description=Service Tenant3. 创建用户 keystone user-create -name=admin -pass=admin -email=admin4. 创建角色 keystone role-create -name=admin5. 将用户添加到对应的角色中去。 keystone user-role-
23、add -user=admin -tenant=admin -role=admin重要提醒如果keystone服务报错: The request you have made requires authentication. (HTTP 401)检查: 1. 检查环境变量是否设置1.检查AMDIN_PASS是不是没有替换,如果没有替换a.通过keystoneuser-password-update b.通过openstack-db -drop -service keystone 删除数据库重建5.4定义服务和端点在openstack中注册服务和终端,注册之前确保前面定义的OS_SERVICE_T
24、OKEN可用。1. 注册服务 keystone service-create -name=keystone -type=identity -description=Keystone Identity Service执行完命令之后,记录下服务产生的ID。2. 注册终端 keystone endpoint-create -service-id=上面流程中注册服务产生的服务的ID -publicurl=http:/centos:5000/v2.0 -internalurl=http:/centos:5000/v2.0 -adminurl=http:/centos:35357/v2.06. 配置镜像服
25、务 镜像服务就是openstack用来存储服务器镜像的一个服务。镜像的存储位置可以有几种配置方式,可以通过配置文件/etc/glance/glance-cache.conf配置文件来进行修改。 在节点执行以下命令:1. 安装镜像服务。yum install -y openstack-glance2. 在配置文件中修改镜像服务所在的数据库信息。 openstack-config -set /etc/glance/glance-api.conf DEFAULT sql_connection mysql:/glance:glancecentos/glance openstack-config -se
26、t /etc/glance/glance-registry.conf DEFAULT sql_connection mysql:/glance:glancecentos/glance3. 通过openstack-db来初始化数据库,用户,表。openstack-db -init -service glance -password glance4. 创建glance用户,并添加到对用的角色上。keystone user-create -name=glance -pass=glance -email=glancekeystone user-role-add -user=glance -tenant
27、=service -role=admin重要提醒运行命令keystoneuser-role-add-user=glance-tenant=service-role=admin后,通过keystone user-role-list查看不到glance的相关配置,不是配置错误,可以通过命令:keystone -os-tenant-name service -os-username glance -os-password glance user-role-list来查看 5. 在配置文件中做一些修改,来保证镜像服务和用户权限服务结合。openstack-config -set /etc/glance
28、/glance-api.conf keystone_authtoken auth_uri http:/centos:5000openstack-config -set /etc/glance/glance-api.conf keystone_authtoken auth_host centosopenstack-config -set /etc/glance/glance-api.conf keystone_authtoken admin_tenant_name serviceopenstack-config -set /etc/glance/glance-api.conf keystone_
29、authtoken admin_user glanceopenstack-config -set /etc/glance/glance-api.conf keystone_authtoken admin_password glanceopenstack-config -set /etc/glance/glance-api.conf paste_deploy flavor keystoneopenstack-config -set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http:/centos:5000opens
30、tack-config -set /etc/glance/glance-registry.conf keystone_authtoken auth_host centosopenstack-config -set /etc/glance/glance-registry.conf keystone_authtoken admin_tenant_name serviceopenstack-config -set /etc/glance/glance-registry.conf keystone_authtoken admin_user glanceopenstack-config -set /et
31、c/glance/glance-registry.conf keystone_authtoken admin_password glanceopenstack-config -set /etc/glance/glance-registry.conf paste_deploy flavor keystone6. 在配置文件中增加认证相关配置。首先复制配置文件到正确的位置 cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini cp /usr/share/glance/glance-regist
32、ry-dist-paste.ini /etc/glance/glance-registry-paste.ini编辑这两个配置文件,将以下配置添加到选项:filter:authtoken中vi /etc/glance/glance-api-paste.inivi /etc/glance/glance-registry-paste.inifilter:authtokenpaste.filter_factory=keystoneclient.middleware.auth_token:filter_factoryauth_host=centosadmin_user=glanceadmin_tenan
33、t_name=serviceadmin_password=glance7. 注册服务 keystone service-create -name=glance -type=image -description=Glance Image Service8. 注册服务终端 keystone endpoint-create -service-id=上面注册服务时产生的服务ID -publicurl=http:/centos:9292 -internalurl=http:/centos:9292 -adminurl=http:/centos:92929. 启动镜像服务病设置为自动启动 service
34、openstack-glance-api start & chkconfig openstack-glance-api on service openstack-glance-registry start & chkconfig openstack-glance-registry on7. 配置计算服务计算服务是云算机器,它是IaaS系统的主要部分,用它来承载和管理云计算系统。7.1安装计算服务1. 安装计算包 yum install -y openstack-nova python-novaclient2. 在配置文件中修改数据库存储信息openstack-config -set /etc/
35、nova/nova.conf database connection mysql:/nova:novacentos/nova3. 在配置文件中配置消息服务器 openstack-config -set /etc/nova/nova.conf DEFAULT rpc_backend mon.rpc.impl_qpid openstack-config -set /etc/nova/nova.conf DEFAULT qpid_hostname centos使用openstack-db命令来初始化数据库,用户,表openstack-db -init -service nova -password
36、nova4. 在配置文件中配置vnc相关的配置openstack-config -set /etc/nova/nova.conf DEFAULT my_ip 10.10.70.20openstack-config -set /etc/nova/nova.conf DEFAULT vnc_enabled Trueopenstack-config -set /etc/nova/nova.conf DEFAULT vncserver_listen 10.10.70.20openstack-config -set /etc/nova/nova.conf DEFAULT vncserver_proxyc
37、lient_address 10.10.70.20openstack-config -set /etc/nova/nova.conf DEFAULT novncproxy_base_url http:/centos:6080/vnc_auto.html重要提醒my_ip是一个非常重要的参数,一定要配置成外网的IP。官方文档中使用了内网IP,是不对。一定注意。 5. 创建用户和角色 keystone user-create -name=nova -pass=nova -email=nova keystone user-role-add -user=nova -tenant=service -ro
38、le=admin6. 修改配置信息,使配置文件和身份认证服务结合。openstack-config -set /etc/nova/nova.conf DEFAULT auth_strategy keystoneopenstack-config -set /etc/nova/nova.conf keystone_authtoken auth_host centosopenstack-config -set /etc/nova/nova.conf keystone_authtoken auth_protocol httpopenstack-config -set /etc/nova/nova.co
39、nf keystone_authtoken auth_port 35357openstack-config -set /etc/nova/nova.conf keystone_authtoken admin_user novaopenstack-config -set /etc/nova/nova.conf keystone_authtoken admin_tenant_name serviceopenstack-config -set /etc/nova/nova.conf keystone_authtoken admin_password nova7. 在配置文件中配置镜像的相关服务ope
40、nstack-config -set /etc/nova/nova.conf DEFAULT glance_host centos8. 在配置文件中增加证书,配置文件的filter:authtoken选项中增加配置段。vi /etc/nova/api-paste.inifilter:authtokenpaste.filter_factory = keystoneclient.middleware.auth_token:filter_factoryauth_host = centosauth_port = 35357auth_protocol = httpauth_uri = http:/cen
41、tos:5000/v2.0admin_tenant_name = serviceadmin_user = novaadmin_password = nova9. 创建服务keystone service-create -name=nova -type=compute -description=Nova Compute service10. 创建服务终端keystone endpoint-create -service-id=上面注册服务时产生的服务ID -publicurl=http:/centos:8774/v2/%(tenant_id)s -internalurl=http:/centos
42、:8774/v2/%(tenant_id)s -adminurl=http:/centos:8774/v2/%(tenant_id)s11. 启动服务以及服务设置为自动启动。service openstack-nova-api startservice openstack-nova-cert startservice openstack-nova-consoleauth startservice openstack-nova-scheduler startservice openstack-nova-conductor startservice openstack-nova-novncprox
43、y startchkconfig openstack-nova-api onchkconfig openstack-nova-cert onchkconfig openstack-nova-consoleauth onchkconfig openstack-nova-scheduler onchkconfig openstack-nova-conductor onchkconfig openstack-nova-novncproxy onservice libvirtd startservice messagebus startchkconfig libvirtd onchkconfig me
44、ssagebus onservice openstack-nova-compute startchkconfig openstack-nova-compute on7.2网络设置在所有的计算节点中运行以下命令:1. 安装网络相关包yum install -y openstack-nova-network2. 在各个计算节点的nova.conf文件中加入网络模块openstack-config -set /etc/nova/nova.conf DEFAULT network_manager work.manager.FlatDHCPManageropenstack-config -set /et
45、c/nova/nova.conf DEFAULT firewall_driver nova.virt.libvirt.firewall.IptablesFirewallDriveropenstack-config -set /etc/nova/nova.conf DEFAULT network_size 254openstack-config -set /etc/nova/nova.conf DEFAULT allow_same_net_traffic Falseopenstack-config -set /etc/nova/nova.conf DEFAULT multi_host Trueopenstack-config -set /etc/nova/nova.conf DEFAULT send_arp_for_ha Trueopenstack-config -set /etc/nova/nova.conf DEFAULT share_dhcp_address Trueopenstack-config -set /etc/nova/nova.conf DEFAULT forc
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100