专栏首页磨磨谈解决calamari无法获取节点信息的bug

解决calamari无法获取节点信息的bug

一、前言

一直在做calamari的相关的一些打包和安装的工作,都是业余弄的东西,所以并没有仔细的进行功能点的验证测试,正好ceph社区群里面有人问了个问题

calamari上是不是能看到ceph的version?

对于这个问题,好像确实没有见到过,而之前正好有个页面看到是空的,当时还不清楚这个是什么用的

而另外一位群友贴出了这个地方的是有值的,这个地方是有BUG的,在咨询了相关的问题描述以后,我们来看下,可以如何解决这个问题

二、问题解决过程

2.1 问题描述:

calamari的salt-master节点在读取

/var/cache/salt/master/minions/{minion-hostname}/data.p

的时候有权限问题,在修改权限以后,可以读取到了,但是在重启了salt-minion以后,这个文件会被更新,然后权限又变成无法读取的

2.2 相关知识补充

Grains - salt-minion 自身的一些静态信息

salt '*' grains.ls       # 查看 grains 分类
salt '*' grains.items    # 查看 grains 所有信息
salt '*' grains.item os  # 查看 grains 某个信息
salt '*' grains.get os

上面的是salt-minion的静态信息的查询的相关的命令,salt-minion在进行重启的时候会将一些静态的信息推送到salt-master上面去,而这个生成的信息正好就是我们上面提出有权限问题的data.p这个存储的文件的,那么解决问题就是修改这个地方的权限的问题了

2.3 修改salt-master代码

这个问题通过修改salt-master的master.py代码可以解决

写入这个grains信息的代码在/usr/lib/python2.7/site-packages/salt/master.py这个文件当中,代码段如下:

  def _pillar(self, load):
···
        if self.opts.get('minion_data_cache', False):
            cdir = os.path.join(self.opts['cachedir'], 'minions', load['id'])
            if not os.path.isdir(cdir):
                os.makedirs(cdir)
            datap = os.path.join(cdir, 'data.p')
            tmpfh, tmpfname = tempfile.mkstemp(dir=cdir)
            os.close(tmpfh)
            with salt.utils.fopen(tmpfname, 'w+b') as fp_:
                fp_.write(
                    self.serial.dumps(
                        {'grains': load['grains'],
                         'pillar': data})
                    )
            # On Windows, os.rename will fail if the destination file exists.
            salt.utils.atomicfile.atomic_rename(tmpfname, datap)
        return data

就是这个函数就是负责这个文件写入的,我们只在这个代码里面增加一个文件的权限的控制,在salt.utils.atomicfile.atomic_rename(tmpfname, datap)这行之上增加一行代码os.chmod(tmpfname, 0o644)

 def _pillar(self, load):
···
        if self.opts.get('minion_data_cache', False):
            cdir = os.path.join(self.opts['cachedir'], 'minions', load['id'])
            if not os.path.isdir(cdir):
                os.makedirs(cdir)
            datap = os.path.join(cdir, 'data.p')
            tmpfh, tmpfname = tempfile.mkstemp(dir=cdir)
            os.close(tmpfh)
            with salt.utils.fopen(tmpfname, 'w+b') as fp_:
                fp_.write(
                    self.serial.dumps(
                        {'grains': load['grains'],
                         'pillar': data})
                    )
            # On Windows, os.rename will fail if the destination file exists.
            os.chmod(tmpfname, 0o644)
            salt.utils.atomicfile.atomic_rename(tmpfname, datap)
        return data

修改好了以后,重启下salt-master,然后重启下salt-minion

systemctl restart salt-minion

检查权限,已经看到权限变成了644了

[root@lab8106 ~]# ll /var/cache/salt/master/minions/lab8106/data.p 
-rw-r--r-- 1 root root 5331 Jan  9 15:33 /var/cache/salt/master/minions/lab8106/data.p

现在再看下前台页面效果:

问题解决

三、总结

calamari有一些各种各样的小问题,总体上还是一款非常简洁漂亮的管理界面,在没有监控系统的情况下,还是一个不错的选择

本文分享自微信公众号 - 磨磨谈(momotan1987),作者:张鹏

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Cephfs 操作输出到日志查询系统

    文件系统当中如果某些文件不见了,有什么办法判断是删除了还是自己不见了,这个就需要去日志里面定位了,通常情况下是去翻日志,而日志是会进行压缩的,并且查找起来非常的...

    用户2772802
  • 如何获得红帽的发行版ceph

    通常来说获取红帽的安装包需要购买服务,通过ISO获得,这个之前经常会被购买的人分享出来,但是这种是没有红帽的服务的,并且非正常途径获得,还需要找人要,本篇的扩展...

    用户2772802
  • 预估ceph的迁移数据量

    我们在进行 ceph 的 osd 的增加和减少的维护的时候,会碰到迁移数据,但是我们平时会怎么去回答关于迁移数据量的问题,一般来说,都是说很多,或者说根据环境来...

    用户2772802
  • 利用NFV和SDN实现5G网络切片

    网络切片 网络切片将在5G的实施中发挥关键作用,该技术允许运营商在单一的物理基础设施之上运行多个虚拟网络。随着2020年的5G商业化,许多人正在想,网络功能虚拟...

    企鹅号小编
  • 利用NFV和SDN实现5G网络切片

    网络切片 网络切片将在5G的实施中发挥关键作用,该技术允许运营商在单一的物理基础设施之上运行多个虚拟网络。随着2020年的5G商业化,许多人正在想,网络功能虚拟...

    SDNLAB
  • Tmux:Linux 从业者必备利器

    tmux 为什么要用tmux tmux是什么?tmux是linux中一种管理窗口的程序。那么问题来了:Mac自带的Iterm2很好用啊。既支持多标签,也支持窗...

    小小科
  • 如何使用tmux终端多路复用器

    TMUX是终端多路复用器。类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在...

    吴凌云
  • MOOON-agent发布:MOOON-agent系统设计与使用说明

    6) 可选多种心跳方式,简单心跳不附带数据,富心跳可携带系统状态数据,如CPU使用率、内存使用情况等

    一见
  • 【Linux】Ubuntu的一些高效率工具

    不知道你有没有这些经历,反正我有!!直到之前一位朋友华哥和我推荐了几款工具之后,上面的情况就完美解决了。

    小白学视觉
  • 16.ajax_case06

    hankleo

扫码关注云+社区

领取腾讯云代金券