安装CMDB服务器系统

开源推荐|灵活多变功能强大的CMDB
一个完善的基础资源数据库是我们构建运维自动化上层应用的基础,所以构建CMDB系统成了有想法在DevOps运维自动化领域有所发展的企业离不开的重要一环,但受制于每家企业不同的内外部环境、资源配置以及管理方式各不相同,开发一套相对通用的CMDB系统就变得非常困难,这也是为什么现在市面上开源的CMDB系统很多,但使用都不是很广泛的主要原因

近段时间偶然发现了一款开源的CMDB系统,构建足够灵活,功能相对完善,使用体验也不错,于是深入研究,了解了其设计思路,更是受益颇多。我们自己也有构建基础资源数据库,目前已成功管理了生产环境所有的资源,更是成为团队小伙伴每天必用的趁手工具,落地效果还不错,这篇文章我就结合自己构建CMDB的经验来介绍下这个开源的CMDB系统:维易CMDB,同时推荐给大家

系统介绍

模型

一个完善的CMDB需要管理企业内的所有资源,不仅是服务器,不仅是数据库,而是所有对我们重要的资源,不仅有硬件,还包括软件,这些资源每个企业可能都不一样,那么要构建相对通用的CMDB,支持自定义资源模型就成了必须的

维易CMDB支持自定义资源分组,例如服务器、数据库等等,支持自定义资源类型,例如物理机、MySQL等等,支持自定义资源属性,例如服务器名称、内网IP等等,支持自定义资源模型与模型之间的关联,例如网卡关联到服务器、服务器关联到应用、应用关联到产品等等,支持为模型添加自定义的触发器,例如模型数据变化自动通知、自动调用WebHook实现更灵活的控制等等,支持属性的自动发现采集更新,例如云上资源自动同步、自定义发现插件等等,支持关系的自动发现更新,例如网卡自动与主机关联关系、nginx直接与服务器关联关系等等。这一段我连续说了好几个支持、自定义,足以看出它的灵活以及强大

优势:

系统很强大,设计很巧妙,如果使用得当应该能满足很多企业的基本使用需求

系统有很多值得借鉴的地方,例如自定义模型、强大的查询语法和权限设计等等,值得认真推敲学习

社区比较活跃,尤其是微信群几乎是有问必答,虽然公众号文章阅读量跟我一样少的可怜,但文章内容质量不错

开源,这个无需多说,向开源致敬

提升:

配置较为复杂,想要做通用,适应更多的场景,复杂似乎是没有办法的事情,但这对新手和非技术人员很不友好,其实大部分企业对资源都是一样的,如果能内置更多的模型或者有模型市场之类的可以直接使用,那就会简单很多

体验可以更好,配置太复杂了,能否可以从使用体验上做减法,例如添加默认角色,降低授权难度,例如优化服务树,基于服务树进行授权管理等等

总结一下就是系统很棒,值得好好学习,如果你是专业的技术人员,那这个系统使用起来应该难度不大,同时也能真的解决问题,如果你非技术那使用起来就有一定难度了,不过好在社区活跃,支持到位,多问问问题不大

在线体验

最后附上项目Github地址:https://github.com/veops/cmdb

官方还提供有在线Demo可以体验,README有地址和账号密码
觉得不错的话请不要吝惜star,好项目值得被更多的人发现,真诚的希望维易CMDB发展的越来越好,造福更多的运维同行
参考

前置工作

首先安装Python3.8.8

安装步骤如下:

# 安装必要的开发工具和依赖项
sudo yum groupinstall -y "Development Tools"
sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

# 下载并解压 Python 3.8.8
wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz
tar -xzf Python-3.8.8.tgz
cd Python-3.8.8

# 配置编译环境
./configure --enable-optimizations

# 编译 Python
make

# 使用 altinstall 安装 Python(避免替换系统默认版本)
sudo make altinstall

# 验证 Python 安装
python3.8 --version



# 如果出现以下提示
Looking in links: /tmp/tmps4xogbd7
Processing /tmp/tmps4xogbd7/setuptools-49.2.1-py3-none-any.whl
Processing /tmp/tmps4xogbd7/pip-20.2.3-py2.py3-none-any.whl
Installing collected packages: setuptools, pip
  WARNING: The script easy_install-3.8 is installed in '/usr/local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script pip3.8 is installed in '/usr/local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-20.2.3 setuptools-49.2.

这段信息表明 setuptools 和 pip 已经成功安装到您的系统中。然而,还存在两个警告:

easy_install-3.8 脚本安装在 '/usr/local/bin' 目录下,但是该目录不在 PATH 环境变量中。
pip3.8 脚本安装在 '/usr/local/bin' 目录下,但是该目录不在 PATH 环境变量中。
这些警告表示这些脚本的路径未被添加到系统的 PATH 环境变量中,因此您可能无法直接通过命令行调用它们。

# 将脚本路径添加到 PATH 环境变量中:您可以编辑您的 shell 配置文件
vi /etc/bashrc
#在文件末尾添加以下行
export PATH="/usr/local/bin:$PATH"
# 这行代码将 /usr/local/bin 目录添加到 PATH 环境变量的最前面。如果该目录已经在 PATH 中,则不会重复添加。保存并关闭文件。

# 为了使修改生效,您需要重新加载 shell 配置文件。您可以在终端中执行以下命令
source ~/.bashrc

# 确认修改已生效。您可以执行以下命令来检查 /usr/local/bin 是否已经成功添加到 PATH 中
echo $PATH


# 手动安装pip,从官方网站手动下载 pip 安装脚本:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py --insecure
# 运行安装脚本:
python3.8 get-pip.py

# 如需用pipenv,需要提前安装pipenv
pip install pipenv

# 如需使用yarn,需要提前安装
sudo yum install yarn

#如果安装失败可使用以下方法,先加载yarn源
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo
# 然后再次执行
sudo yum install yarn
# 验证是否安装成功
yarn --version

#执行时出现以下错误,可能需要降低nodejs版本
node: relocation error: /lib64/libnode.so.93: symbol FIPS_selftest, version OPENSSL_1_1_0g not defined in file libcrypto.so.1.1 with link time reference

#降级操作,先查询本地版本,防止其它系统有依赖后出错
[root@admo cmdb-ui]# rpm -qa |grep nodejs
nodejs-libs-16.20.2-1.el7.x86_64
nodejs-16.20.2-1.el7.x86_64
[root@admo cmdb-ui]# rpm -qa |grep glibc
compat-glibc-headers-2.12-4.el7.centos.x86_64
glibc-common-2.17-326.el7_9.3.x86_64
glibc-devel-2.17-326.el7_9.3.x86_64
compat-glibc-2.12-4.el7.centos.x86_64
glibc-2.17-326.el7_9.3.x86_64
glibc-headers-2.17-326.el7_9.3.x86_64

# 使用以下命令来卸载 Node.js
sudo yum remove nodejs

# 安装 nvm(Node.js 版本管理器):
# nvm 是一个 Node.js 版本管理器,可以方便地管理不同版本的 Node.js。您可以使用以下命令来安装 nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

#  重新启动终端:安装完成后,您需要关闭当前的终端窗口,并重新打开一个新的终端窗口,以便使 nvm 命令生效。使用 nvm 命令安装您想要的特定版本的 Node.js。例如,要安装 Node.js 12 版本,您可以运行以下命令:
nvm install 12

# 如果您想要将新安装的 Node.js 版本设置为默认版本,可以使用以下命令
nvm alias default 12

# 安装完成后,您可以使用以下命令来验证 Node.js 版本:
node --version

安装MySQL

教程连接:MySQL5.7安装教程

安装CMDB

请参考:https://github.com/veops/cmdb/blob/master/docs/local.md

#  数据库导入命令
mysql -u root -p cmdb < /usr/local/cmdb/docs/cmdb.sql

#  如果出现Error: No such command 'db-setup'.错误请执行以下命令安装Flask-Script 和 Flask-Migrate
pip install Flask-Script Flask-Migrate


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值