openstack安装问题总结

前序

    研究生半年干了什么?最多的事就是运维hhh,实验室项目要求,安装openstack,进行运维,如果机器好点还好,有些机器真的是不行,一天天的崩,来来回回估计安装过两三次,分别在centos7,ubuntu16,ubuntu18上进行过安装,运维过程中遇到过各种头秃的问题,但就是这样之后,能力才能提升。。。,下面我将详细介绍一下我的学习流程,以及当时按照哪个博客进行安装的,遇到的问题,以及有些难理解的稍微说一下,同时也方便我几年后再次接到类似需求能够快速回炉重造。

openstack安装

官方文档

openstack官方安装文档
    这个文档基本包含了非常全的安装过程,那个系统应该用哪个版本什么的,非常全,当然这个是那种分布式结点啊,服务分别安装的,也可以是一键安装,就那种DevStack工具,听说不太稳定,我就没采用,如果就是为了学习openstack的话,而不是项目要用,完全可以采用一键安装。
openstack安装指导
    这个就是类似博客一样的过程,非常详细,只要照着安装就行,就是过程中会遇到各种各样的问题,整个一个纠错的过程就是自己成长的过程,首先查看日志,找到错误error是什么,到google去查,一般都会找到解决方法。

具体安装

总共有这么多个服务需要安装:

  • 有两个网络,一个内网用来管理,一个外网进行访问(也可以一个网络,就是openstack启动会创建网桥,这样你就出现一些网桥没映射网卡等问题,不过也可以解决)
  • ntp时间同步(所有node)
  • 安装train版yum源(所有node)
  • 安装客户端(所有node)
  • 安装数据库(controller)
  • 安装消息队列服务(controller)
  • 安装memcache(controller)
  • 安装etcd(controller)
  • 安装keystone身份认证服务(controller)
  • 安装glance服务(controller)
  • 安装placement放置服务(controller)(好像ubuntu系统安的那个版本,不用这个服务)
  • 安装nova计算服务(控制结点)
  • 安装nova计算服务(计算节点)
  • 安装neutron网络服务(控制节点)
  • 安装neutron网络服务(计算节点)
centos系统

    安装openstack的Train版本
    配置:一台控制结点,三台计算结点,一个存储结点
    当然当时安装的时候,还是决定不全看官方文档,就害怕有一些坑,就连着网上的博客和官网文档对照的一起来弄,刚开始是比较慢的,后面就快了,当时参考的博客有两个:
暗香流行风缥缈
实力捍卫尊严あ

unbuntu系统

    不同版本的ubuntu系统,安装的openstack版本也略有差异,下图来自官方文档
安装版本
    配置:一台控制结点, 两台计算结点,这个配置高点,opensatck比较稳定

安装流程

    我自己也写了一个环境搭建的过程文档,但肯定没有官网的全,完全可以去网上找到详细地安装文档,我等会会记述运维遇到的问题(这个是真实遇到的,很具有参考性)。关键的是那个,很有用。我这个没脱敏,一些密码没改,涉及到密码复用的安全问题,我还是不放链接了。
在这里插入图片描述

网络理解

    我记得当时网络这里没理解什么意思,所以这里记录一下。
    其中最主要的就是网络部分,因为可以选择两种,一种是提供商网络,一种是自助服务网络

  • 提供商网络:由admin创建,普通用户或租户不能建立自己的局域网(需要加路由),相当于只有一个网络,不能建局域网,就没有NAT选项了,只有桥接网络。
  • 自助服务网络:普通租户可以创建自己的子网,自己的路由,租户的子网依托在admin的提供商网络上,admin也可以创建自己的网络。既可以桥接,也可以用NAT。
日志

    因为排错还是非常需要日志的,通过日志找到错误,然后利用搜索引擎找到解决方法。主要是下面两个日志出错:
nova日志

  • nova-api.log:用户与OpenStack交互以及OpenStack组件间交互的消息相关日志
  • nova-compute.log:虚拟机实例在启动和运行中产生的日志
  • nova-scheduler.log:有关调度的,分配任务给节点以及消息队列的相关日志
  • nova-conductor.log:nova-compute和数据库操作均通过conductor实现
  • nova-consoleauth.log:关于nova-console服务的验证细节
  • nova-manage.log:运行nova-manage命令时产生的日志
  • nova-novncproxy.log:关于nova的VNC服务的详细信息

Neutron日志

  • dhcp-agent.log:关于dhcp-agent的日志
  • l3-agent.log:与l3代理及其功能相关的日志
  • neutron-metadata-agent.log:通过neutron代理给Nova元数据服务的相关日志
  • openvswitch-agent.log:与openvswitch相关操作的日志项,在具体实现OpenStack网络时,如果使用了不同的插件,就会有相应的日志文件名
  • neutron-server.log:与Neutron API服务相关的日志

问题以及解决方法

  1. 现在就是有一个需求,当前服务器有两个网卡,一个网卡连接的内网,不能上网,一个网卡连接的路由器,可以利用这个网卡上网,但是呢,我这边内网连接还想用ssh连接,还想能上网,因为一个机器只能有一个默认网关(可能也有设置的方法,但是我不知道。。。),怎么办呢?
    解决: 新建一个路由表,在这个路由表中添加内网的网关作为该路由表的默认网关,主机的默认路由表就用路由器的那个网关就行,linux下建立多网卡多网关
//其中10段是内网,192段是连接的路由器的局域网
//增加路由表
echo "100 Intranet" >> /etc/iproute2/rt_tables
//每个路由表里面建立默认网关
sudo ip route add default via 10.15.196.1 dev eno1 table Intranet
//增加路由原路返回规则,使来自不同的口的走不同的路由表
sudo ip rule add from 10.15.196.125 table Intranet
//添加192段为默认路由,可以访问外网
sudo route add default gw 192.168.1.1 dev eno2d1
  1. 因为10段是管理网络,突然连不上了,只能通过其他节点,连接该主机的另一个网卡,经过查找原因,发现计算节点建立的网桥没对应上网卡,导致那个ip就失联了
    解决:利用另一个网卡登录上去,输入brctl show #没有真实设备与之对应,brctl addif brq32d4f2b2-cc eno1 #将eno1添加到brq32d4f2b2-cc网桥上,让br0有真实的物理网卡与之对应, 接着在将该网桥设为Intranet路由表的默认网关。
  2. 因为openstack创建的局域网虚拟机是不能上网的,那怎么让虚拟机上网的?
    解决:就在虚拟机能连上的物理机,该物理机能上网,在物理机上创建NAT网关,并且将该物理机ip作为虚拟机默认网关,sudo iptables -t nat -A POSTROUTING -o eno2d1 -s 10.15.196.0/24 -j SNAT --to 192.168.1.104,具体地址:linux局域网通过映射(双网卡)访问外网
  3. 计算节点的neutron服务报错ProcessExecutionError: Exit code: 2; Stdin: ; Stdout: ; Stderr: RTNETLINK answers: Permission denied:?
    解决
sudo vi /etc/sysctl.conf
//添加:net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -p
  1. 用openstack都知道,不能再openstack上将虚拟机部署在某个结点上,那如何用命令行来创建呢?
    解决:创建虚拟机在指定节点,openstack server create --flavor m1.nano --image cirros --nic net-id=32d4f2b2-ccb3-456d-90f4-589648c5ec28 --security-group 80b3c84d-d466-4dc5-b2b8-fb9e8a81d30f --key-name mykey --availability-zone nova:compute1:compute1 test-vm
  2. 当你将vmware的镜像迁移到openstack中时,会出现一些小问题,如下:
    在这里插入图片描述
    解决vmware迁移到openstack的一些坑
    在这里插入图片描述
  3. linuxbridge出现NetlinkError:
    解决linuxbridge出现NetlinkError的解决办法
  4. openstack 创建虚拟机的时候报错: Failed to allocate the network(s), not rescheduling.]?
    解决:当时也是找了挺长时间,才发现这篇博客,太赞了,openstack 创建虚拟机的时候报错: Failed to allocate the network(s), not rescheduling.
  5. 有的时候,发现虚拟机不能上网了,于是查看之前做的NAT网关,发现没有任何问题,这时候你就要想是不是防火墙的问题?
    解决: 如果网关无法生效,是因为网关机器的防火墙阻挡了,将防火墙关掉即可
  6. 虚拟机登录可以有密钥登录,但是这样你通过console进去,就登录不了系统了,所以还是需要能够用密码登录的
    解决:将下面存储成一个文件,创建的时候上传该文件,或者输入到那个脚本区域内
#cloud-config
chpasswd:
  list: |
    root:123456
  expire: False

在这里插入图片描述

  1. 因为节点命令也十分重要,当发现这个Error: Host ‘openstack’ is not mapped to any cell,由于hostname修改之后openstack找不到了,运行一下命令修正:nova-manage cell_v2 discover_hosts --verbose
    解决
    在这里插入图片描述
  2. 当创建实例成功之后,发现实例ip访问不了,说明network有问题,在控制机上输入ip addr,如果有类似如图所示说明成功建立网桥:
    在这里插入图片描述
    解决:首先查看网络日志,看有没有报错,如果没有说明网络有问题,那将控制节点和计算节点的网络服务均重启一遍,删除实例重新建立。
  3. 当你在虚拟机里开放某个端口后,发现怎么也访问不到,但是能ping通,如何解决?(我觉得挺重要的,犯过很多次这样的错误)
    解决:因为openstack开启之后会给虚拟机添加安全组规则,所以当虚拟机实例里面需要开放某些服务时,所以安全组规则也需要进行修改,这样物理机才能访问到。
  4. 有的时候,物理机重启之后,网桥上没ip,也没成功映射网卡,怎么办?
    解决:先用brctl show 查看网桥是否与真实网卡进行映射, 如果没有,需加下映射映射网卡,可以参看第2个问题,没ip,可以这样解决ifconfig br0 172.25.254.176/24
  5. openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.,怎么办?
    解决:有个博客完美解决, openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable
  6. Openstack部署compute计算节点时,openstack-nova-compute无法启动?
    解决Openstack部署compute计算节点时,openstack-nova-compute无法启动
  7. 有时候就会有这样的需求,因为资源需要修改,或者虚拟机需要进行迁移,新建的虚拟机我还想之前的ip,所以需要修改ip,怎么做?
    解决
    查找你要修改ip地址的网卡id
neutron port-list

在这里插入图片描述
允许你的ip通过

neutron port-update 你ip对应id --allowed-address-pairs type=dict list=true ip_address=你的ip

进入mysql数据库,修改数据

use neutron;
select * from ipallocations where port_id='该port_id是之前查找的网卡id'; 
update ipallocations set ip_address='要改的ip'  where port_id='该port_id是之前查找的网卡id';

进入虚拟机修改ip地址就可以和外网通信了(这个最重要的是,创虚拟机的时候设置过密码登录,不然你当前ssh无法连到那台机器了,除非你改之前,就ssh连接进去改了ip)

  1. 我发现vnc如果使用0.0.0.0监听的话,非常危险,已经亲自尝试过了,居然被挖矿的通过这个进去了,黑客攻击openstack创建的虚拟机。
    解决
    参考资料:
    云计算—记一次黑客攻击openstack创建的虚拟机:https://www.cnblogs.com/yaohong/p/8417639.html#_label2_2
    关于OpenStack中虚拟机VNC访问安全问题(这个博客分析的比较细致):https://www.jianshu.com/p/b91dc99c5b77
    注意:上面那个iptables规则里的控制节点是管理网络ip
    如何删除iptables规则:
    https://blog.csdn.net/yelllowcong/article/details/75949296
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
OpenStack是一种开源的云计算管理平台,它提供了一整套的云计算基础设施服务,包括计算、网络、存储、身份认证等。在实践中,OpenStack安装通常包括以下几个主要步骤。 首先,准备环境。在安装OpenStack之前,需要确保所使用的服务器满足一定的硬件要求,并且已经正确安装了操作系统。通常推荐使用Ubuntu Server或CentOS等Linux发行版作为操作系统。 接下来,安装依赖软件。OpenStack运行需要一些其他的软件支持,如MySQL数据库、RabbitMQ消息队列中间件、Keystone身份认证服务等。这些软件可以通过包管理工具进行安装,比如apt-get或yum。 然后,安装OpenStack组件。OpenStack由多个组件组成,包括Nova计算服务、Neutron网络服务、Cinder块存储服务等。一般来说,可以使用apt-get或yum命令来安装这些组件。需要注意的是,不同的组件可能需要不同的配置文件和参数设置。 安装完成后,需要对OpenStack进行配置。配置涉及到的内容很多,包括网络配置、存储配置、身份认证配置等。这些配置可以通过修改相应的配置文件来完成,比如nova.conf、neutron.conf等。 最后,启动和测试OpenStack服务。启动过程中,需要确保各个组件的服务正常运行,并且没有错误信息输出。为了测试OpenStack安装是否成功,可以使用一些命令行工具或者图形界面来创建虚拟机、网络等资源,并进行相应的操作和管理。 总结来说,全网最全OpenStack安装涉及到环境准备、依赖软件安装OpenStack组件安装、配置和启动、测试等步骤。在实践中,可以参考OpenStack官方文档、社区论坛或者一些专业的安装指南来帮助完成安装过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值