openstack juno 完全按照官方文档安装
http://pan.baidu.com/s/1hqiWODm本文档旨在指导新手直接利用openstack juno的官方安装文档,一条条复制来安装openstack juno。会指出文档中的一些容易混淆的地方。
keystone安装:
1、安装keystone对数据库授权时候,不能直接copy,因为 IDENTIFIED BY 'KEYSTONE_DBPASS';密码KEYSTONE_DBPASS前面有个空格。
再次验证keystone:
发现有报错,看keystone日志:
很明显这里面就是报keystone数据库表token字段不存在,说明数据库没有创建成功,再次创建数据库
发现再次失败:
看keystone日志:
检查keystone配置文件:vim /etc/keystone/keystone.conf
此处输出的token值需要与keystone.conf文件的ADMIN_TOKEN一致。
发现正常。
注意官方文档上面对OS_SERVICE_TOKEN进行了两次环境变量赋值(其实第二次是在举例用随机值):目的就是保证环境变量的值与keystone.conf的值保持一致即可。
提前:如果报数据库连接不上,则应该去排查下述配置是否正确:若再次连接不上,需要考虑数据库的权限问题(如下图),最简单的办法就是用该账号手动登录数据库:mysql -ukeystone -pKEYSTONE_DBPASS第一次没成功,第二次成功了(第一次特意把keystone写成了ketone,当然不会成功,所以要尽量避免拼写错误)
glance安装:
没有太多将的,直接复制粘贴就可:
控制节点安装:
注意此处用了硬编码ip地址:
systemctl start openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
如果上述命名提示不存在:则请yum install 对应包
计算节点compute安装:
本次试验中,采用all-in-one环境,因此controller和compute节点有些配置项会重复,请注意区分。
此处my_ip填写管理网络的ip地址。此处all-in-one即本机地址。
下图说明:如果你openstack环境使用的是支持虚拟化的物理机virt_type=kvm,否则使用qemu
网络节点neutron安装(配置相应控制节点及对应的计算节点):
用户可以自行选择最新的neutron或者老版本的nova-network组件,本实验讲解neutron
下图复制有问题: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
根据报错,直接跟踪到对应地方,显然我们复制粘贴有问题,被分行了。
修改后:
再次执行数据库同步命令,一切正常
systemctl restart openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service
网络节点neutron安装(配置网络节点):
yum install openstack-neutron openstack-neutron-ml2 openstack-neutronopen-vswitch -y上图设置的为隧道的ip地址,隧道是用来连接各计算节点进行通信(注:br-int是连接同一个计算节点上的各个vm之间通信)。如果有单独配置隧道网卡,则该ip为该网卡ip。本实验中all-in-one共用eth0,因此此处使用eth0 ip地址192.168.10.12。更多ovs 相关知识请参考博文:http://blog.iyunv.com/tantexian/article/details/44563255
配置网络时候,一定要注意将 SERVICE_TENANT_ID修改为对应的id值~
注意此处用了固定死的ip地址:
Modular Layer 2 (ML2) plug-in 、Layer-3 (L3) agent、DHCP agent 具体干什么的?
The ML2 plug-in uses the OpenvSwitch (OVS) mechanism (agent) to build the virtual networking framework for instances.
The Layer-3(L3) agent provides routing services for virtual networks.
The DHCPagent provides DHCP services for virtual networks.
ML2使用open vSwich为虚拟机建立虚拟网络通信框架。L3代理为 ML2创建的虚拟网络提供路由转发等服务。DHCP agent:用于为虚拟网络提供DHCP服务(DHCP== Dynamic Host Configuration Protocol,动态主机配置协议,自动分配ip地址)
下图不能直接复制,直接复制要出错:
下图注意替换为正确的网卡名:
下面操作会报错,因为,前面我们已经链接一次了:
systemctl enable neutron-openvswitch-agent.service neutron-l3-agent.service neutron-dhcp-agent.service neutron-metadata-agent.serviceneutron-ovs-cleanup.service
systemctl start neutron-openvswitch-agent.service neutron-l3-agent.service neutron-dhcp-agent.serviceneutron-metadata-agent.service
重启api服务,报错:systemctl restart openstack-nova-api.service
看到启动api出错,第一个想到的肯定是api的日志:此时发现日志目录下面还没有api.log日志文件。那么接下来可以用前台直接启动api方式,查看错误:
定位到nova.conf 17行:从上很容易发现又是我们直接复制粘贴pdf换行符导致。(所以直接复制粘贴时候需要多注意下,本次演示主要是教大家如何盘查错误,所以会尽可能暴露一些错误出来)
发现还是启动不了:查看nova-api进程:
发现已经启动了好几个进程了,kill掉重启:一切正常。
报已经存在,因为之前已添加过一次。
创建网络时候,如果不是特别清楚的,直接copy例子即可:
下图是教你如何配置nova-network,即你可以选择使用neutron或者nova-network两个组件之一。如果上述配置了neutron则下面的nova-network不需要再配置。(推荐使用neutron)
dashboard安装(配置horizon):
跟着一路配置到底,然后访问:
出现不能访问。
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/B2E4ABA7AE5F41339A8BC3502FB653CA
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/62CFB171C97D4CA1B4ED61BD5A933F51
http://free.yes81.net/yes81/view-11396.html
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/CFD049C7199B461C9DB9F8C1707A72AF
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/4618223224C14638BCFF0F334725AFF0
vim /etc/selinux/confighttp://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/6AE07955A91547268FDB9C16EC3AA9C8然后重启机器。
结果还是不行。http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/C9A4AFD0AA0C46AF9A14783A4C8B233C
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/DAEF7A40097C42BDA257126BF31F479A
最后发现是centos7的防火墙规则变了。 firewall-cmd --add-service=httphttp://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/EFCD818C55634A109332E43DC9B18D5A
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/CBD3D72CB5894C219DD18B9E8CDCFF37看到上图,总算是能访问了,报了500错误,看日志。
tailf /var/log/httpd/error_log
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/F6F290328E134D6185063B01B2524AD4
显示报的有语法错误。http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/403AA5DE1081407190BDBA580B53CCE2
汗,报的又是复制的错误。http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/F2044517C8444A11BCF093D7DBC4E025修改正确,重启。
systemctl restart httpd.service memcached.service
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/12C1F92757CA4A7FBE1C3E9FE695E770
至此openstack的基础组件安装完毕,大功告成,简单吧~~~~
第二部分:接下来,我们登录下openstack系统,熟悉一下:那么关于我们的登录用户名和密码在哪儿呢?回到keystone章节:http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/4F8F83F887D0469D8C65B69F4F28F085
admin 为用户名, ADMIN_PASS为密码。试验下:http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/BAAA2AE463D14ADDB86DAF5D0A9443D1成功登录。
注:创建虚拟机的前置条件为:1、有能用来创建虚拟机的镜像 2、有创建好的能分配给虚拟机的网络上述两条其实在之前镜像配置及网络配置章节都用命名创建好了(当前也可以在dashboard上面直接创建新的),此处直接用就可以了。http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/B0F0865982EF4841AF6AF06F17C20CB1
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/DC6F68DE738444D5B46E1E195633D08F
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/8272D67470214A20A893E799F5022A34
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/BA41E2FF3A3C46DFA76EB8110CAB8E6Chttp://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/472BCAF6F6994700B97DF3BAD6DEBAB2
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/A158FACB23894F02A489E3AD09D6A2E2
孵化时报错,(如果在调度之前报错很可能在控制部分(包含了调度代码)代码出错,如果在孵化中卡着,则很可能是计算节点compute代码出错)
此处很明白的知道是网络分配没有成功。查看日志:vim /var/log/nova/nova-compute.log
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/9A13B1E5AD1A4817826D2874F0D67012def _create_domain_and_network(self, context, xml, instance, network_info, block_device_info=None, power_on=True, reboot=False, vifs_already_plugged=False, disk_info=None): """Do required network setup and create domain.""" block_device_mapping = driver.block_device_info_get_mapping( block_device_info) for vol in block_device_mapping: connection_info = vol['connection_info'] info = blockinfo.get_info_from_bdm( CONF.libvirt.virt_type, vol) conf = self._connect_volume(connection_info, info) # cache device_path in connection_info -- required by encryptors if 'data' in connection_info: connection_info['data']['device_path'] = conf.source_path vol['connection_info'] = connection_info vol.save(context) if (not reboot and 'data' in connection_info and 'volume_id' in connection_info['data']): volume_id = connection_info['data']['volume_id'] encryption = encryptors.get_encryption_metadata( context, self._volume_api, volume_id, connection_info) if encryption: encryptor = self._get_volume_encryptor(connection_info, encryption) encryptor.attach_volume(context, **encryption) timeout = CONF.vif_plugging_timeout if (self._conn_supports_start_paused and utils.is_neutron() and not vifs_already_plugged and power_on and timeout): events = self._get_neutron_events(network_info) else: events = [] launch_flags = events and libvirt.VIR_DOMAIN_START_PAUSED or 0 domain = None try: with self.virtapi.wait_for_instance_event( instance, events, deadline=timeout, error_callback=self._neutron_failed_callback): self.plug_vifs(instance, network_info) self.firewall_driver.setup_basic_filtering(instance, network_info) self.firewall_driver.prepare_instance_filter(instance, network_info) with self._lxc_disk_handler(instance, block_device_info, disk_info): domain = self._create_domain( xml, instance=instance, launch_flags=launch_flags, power_on=power_on) self.firewall_driver.apply_instance_filter(instance, network_info) except exception.VirtualInterfaceCreateException: # Neutron reported failure and we didn't swallow it, so # bail here with excutils.save_and_reraise_exception(): if domain: domain.destroy() self.cleanup(context, instance, network_info=network_info, block_device_info=block_device_info) except eventlet.timeout.Timeout: # We never heard from Neutron LOG.warn(_LW('Timeout waiting for vif plugging callback for ' 'instance %(uuid)s'), {'uuid': instance['uuid']}) if CONF.vif_plugging_is_fatal: if domain: domain.destroy() self.cleanup(context, instance, network_info=network_info, block_device_info=block_device_info) raiseexception.VirtualInterfaceCreateException() # Resume only if domain has been paused if launch_flags & libvirt.VIR_DOMAIN_START_PAUSED: domain.resume() return domain
第一个怀疑的肯定是网络服务是不是没有启动呢?检测下网络服务情况:neutron agent-listhttp://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/54DB2560661644198DA47F28C4667AC4
发现dhcp down掉了~查看下是什么原因导致的dhcp挂掉: grep -rn ERROR /var/log/neutron/http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/50146A0391014A5CB5C98B4475E198EA
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/69718C0B50384F9C8ECBF98E028BFBEDvim /etc/neutron/dhcp_agent.inihttp://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/5C1CDE5CD07F4C25A88BAC18851DB2E0发现上处粗心没有配置,配置打开,重启服务继续。 systemctl restart neutron-dhcp-agent.servicehttp://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/4115803F43F3439C8A67BC6490A5CEB3
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/7506C61C0A0146C7B2815FF28609A0BC
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/AC88318E5EA04CC19FD83FE9744D17CF
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/878B3EBAB34F454A8A2DEABF9DCE438D
http://note.youdao.com/yws/public/resource/6f53722a429a15bae1d24ff71f944d89/F61237DCD82747209AD43C924FC763E8
生成虚拟机成功!
版权声明:欢迎大家转载,转载请注明出处blog.iyunv.com/tantexian。
页:
[1]