PageSourceSearch

https://houbb.github.io/blog-devops/assets/2025-07-13-cmdb-04-opensource-open-cmdb-cmdb.html-Sas4BglM.js

js houbb.github.io collected 2026-10-03 09:19:46 UTC 45,659 bytes, 80 lines download raw bytes

1import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,d as n,o as h}from"./app-C5saRPSp.js";const l={};function t(k,s){return h(),a("div",null,s[0]||(s[0]=[n(`<h1 id="cmdb" tabindex="-1"><a class="header-anchor" href="#cmdb"><span>cmdb</span></a></h1><blockquote><p>CMDB 资产管理系统</p></blockquote><h2 id="在线演示" tabindex="-1"><a class="header-anchor" href="#在线演示"><span>在线演示</span></a></h2><p><a href="http://cmdb.xyz" target="_blank" rel="noopener noreferrer">http://cmdb.xyz</a><br> 用户名:admin 密码:cmdbcmdb (请不要修改)</p><h2 id="特性" tabindex="-1"><a class="header-anchor" href="#特性"><span>特性</span></a></h2><ul><li>热添加删除表 自定义字段类型</li><li>REST前后端分离架构 开放所有API接口</li><li>强大的搜索查找能力(后端使用elasticsearch存储数据 ) 可以配合kibana使用</li><li>支持查看数据修改记录</li><li>表级权限管理</li><li>容器快速部署</li></ul><h3 id="前端" tabindex="-1"><a class="header-anchor" href="#前端"><span>前端</span></a></h3><ul><li>Vue</li><li>Element-ui</li><li>Vue-Router</li><li>Vuex</li><li>Axios</li></ul><h3 id="后端" tabindex="-1"><a class="header-anchor" href="#后端"><span>后端</span></a></h3><ul><li>Python3</li><li>Django 1.11</li><li>Django REST framework</li><li>Elasticsearch</li><li>Mysql</li><li>LDAP</li><li>uwsgi</li><li>Nginx</li><li>Docker</li></ul><h2 id="前端-1" tabindex="-1"><a class="header-anchor" href="#前端-1"><span>前端</span></a></h2><p><a href="https://github.com/open-cmdb/cmdb-web" target="_blank" rel="noopener noreferrer">https://github.com/open-cmdb/cmdb-web</a></p><h2 id="快速开始" tabindex="-1"><a class="header-anchor" href="#快速开始"><span>快速开始</span></a></h2><p>准备一台可以访问互联网的centos服务器(内存大于等于4G) 将下面代码保存到install_cmdb.py 执行sudo python install_cmdb.py</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">#!/usr/bin/env python2</span></span>
2<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;"># -*- coding: utf-8 -*-</span></span>
3<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">import</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> os</span></span>
4<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">import</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> subprocess</span></span>
5<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">import</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> argparse</span></span>
6<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">import</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> time</span></span>
7<span class="line"></span>
8<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic;">cmd</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">):</span></span>
9<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> subprocess.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">call</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(cmd, </span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#E06C75;--shiki-dark-font-style:italic;">shell</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">True</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">):</span></span>
10<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">        raise</span><span style="--shiki-light:#0184BC;--shiki-dark:#ABB2BF;"> Exception</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">{}</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> 执行失败&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">format</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(cmd))</span></span>
11<span class="line"></span>
12<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">
12 install_docker</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">():</span></span>
13<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo yum install -y yum-utils device-mapper-persistent-data lvm2&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
14<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
15<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo yum makecache fast&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
16<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo yum -y install docker-ce&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
17<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">not</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> os.path.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">exists</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;/etc/docker&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)):</span></span>
18<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">        base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;mkdir -p /etc/docker&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
19<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    with</span><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;"> open</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;/etc/docker/daemon.json&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">, </span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;w&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">) </span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">as</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> f:</span></span>
20<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">        f.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">write</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&#39;{</span><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">\\n</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">    &quot;registry-mirrors&quot;: [&quot;https://9f4w4icn.mirror.aliyuncs.com&quot;] </span><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">\\n</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">}&#39;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
21<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo systemctl daemon-reload&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
22<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo systemctl start docker&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
23<span class="line"></span>
24<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> create_dir</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">():</span></span>
25<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> (</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">not</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> os.path.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">exists</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;/var/cmdb/db&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)):</span></span>
26<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">        base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo mkdir -p /var/cmdb/db&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
27<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> (</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">not</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> os.path.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">exists</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;/var/cmdb/es&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)):</span></span>
28<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">        base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo mkdir -p /var/cmdb/es&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
29<span class="line"></span>
30<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> run_db_container</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">():</span></span>
31<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo docker run --name cmdb-db -d -e MYSQL_ROOT_PASSWORD=cmdbcmdb -v /var/cmdb/db:/var/lib/mysql mysql:5.7.21&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
32<span class="line"></span>
33<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> run_es_container</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">():</span></span>
34<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo docker run --name cmdb-es -d -v /var/cmdb/es:/usr/share/elasticsearch/data elasticsearch:5.6.8&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
35<span class="line"></span>
36<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> init_db</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">():</span></span>
37<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo docker run -it --rm --link cmdb-db -e DB_HOST=cmdb-db -e ENV=PRO -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=cmdbcmdb -e DB_NAME=cmdb mingmingtang/cmdb init-db&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
38<span class="line"></span>
39<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> run_cmdb_container</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic;">site_url</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic;"> email_host</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic;">
39 email_port</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic;"> email_username</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">,</span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic;"> email_password</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">):</span></span>
40<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    base</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;sudo docker run -d --name cmdb --link cmdb-db --link cmdb-es -p 80:80 -e ENV=PRO -e SITE_URL=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">{}</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> -e DB_HOST=cmdb-db -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD=cmdbcmdb -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=cmdb-es -e EMAIL_HOST=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">{}</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> -e EMAIL_PORT=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">{}</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> -e EMAIL_USERNAME=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">{}</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> -e EMAIL_PASSWORD=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">{}</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> mingmingtang/cmdb start&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">format</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(site_url, email_host, email_port, email_username, email_password))</span></span>
41<span class="line"></span>
42<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">def</span><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;"> input_para</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-light-font-style:inherit;--shiki-dark:#D19A66;--shiki-dark-font-style:italic;">help</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">):</span></span>
43<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">    value </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> &quot;&quot;</span></span>
44<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    while</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">not</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> value):</span></span>
45<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">        value </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> raw_input</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">help</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
46<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    return</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;"> value</span></span>
47<span class="line"></span>
48<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">if</span><span style="--shiki-light:#E45649;--shiki-dark:#E06C75;"> __name__</span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;"> ==</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> &#39;__main__&#39;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">:</span></span>
49<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">    if</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(os.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">geteuid</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">() </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">!=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> 0</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">):</span></span>
50<span class="line"><span style="--shiki-light:#A626A4;--shiki-dark:#C678DD;">        raise</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;请以root权限运行&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
51<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # parser = argparse.ArgumentParser()</span></span>
52<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # parser.add_argument(&quot;--siteurl&quot;, type=str, help=&quot;E.g: http://cmdb.xxx.com, http://172.17.100.1&quot;)</span></span>
53<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # parser.add_argument(&quot;--emailhost&quot;, type=str, help=&quot;E.g: http://cmdb.xxx.com, http://172.17.100.1&quot;)</span></span>
54<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # parser.add_argument(&quot;--emailport&quot;, type=str, help=&quot;E.g: http://cmdb.xxx.com, http://172.17.100.1&quot;)</span></span>
55<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # parser.add_argument(&quot;--emailusername&quot;, type=str, help=&quot;E.g: http://cmdb.xxx.com, http://172.17.100.1&quot;)</span></span>
56<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # parser.add_argument(&quot;--emailpassword&quot;, type=str, help=&quot;E.g: http://cmdb.xxx.com, http://172.17.100.1&quot;)</span></span>
57<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # args = parser.parse_args()</span></span>
58<span class="line"><span style="--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic;">    # SITE_URL = args.SITE_URL</span></span>
59<span class="line"></span>
60<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">    site_url </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;"> input_para</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;请输入网站域名或IP(http://cmdb.xxx.com):&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
61<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">    email_host </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;"> input_para</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;网站邮箱服务器(smtp.163.com):&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
62<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">
62    email_port </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;"> input_para</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;邮箱服务器端口(25):&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
63<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">    email_username </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;"> input_para</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;邮箱用户名([email protected]):&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
64<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">    email_password </span><span style="--shiki-light:#383A42;--shiki-dark:#56B6C2;">=</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;"> input_para</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;邮箱密码|独立授权码(P@ssw0rd):&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
65<span class="line"></span>
66<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;开始安装docker&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
67<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    install_docker</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">()</span></span>
68<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;开始创建目录&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
69<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    create_dir</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">()</span></span>
70<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;开始运行mysql容器&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
71<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    run_db_container</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">()</span></span>
72<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;开始运行elasticsearch容器&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
73<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    run_es_container</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">()</span></span>
74<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;等待数据库启动完成(10s)&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
75<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">    time.</span><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">sleep</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">10</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
76<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;开始初始化数据库&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
77<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    init_db</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">()</span></span>
78<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;开始运行cmdb&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span>
79<span class="line"><span style="--shiki-light:#383A42;--shiki-dark:#61AFEF;">    run_cmdb_container</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(site_url, email_host, email_port, email_username, email_password)</span></span>
80<span class="line"><span style="--shiki-light:#0184BC;--shiki-dark:#56B6C2;">    print</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">(</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;">&quot;完成!&quot;</span><span style="--shiki-light:#383A42;--shiki-dark:#ABB2BF;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="手工部署" tabindex="-1"><a class="header-anchor" href="#手工部署"><span>手工部署</span></a></h2><p>先安装好Elasticsearch(5.6) 和 Mysql(5.7) 其它版本未测试</p><h3 id="容器名称" tabindex="-1"><a class="header-anchor" href="#容器名称"><span>容器名称</span></a></h3><p>mingmingtang/cmdb</p><h3 id="初始化数据库" tabindex="-1"><a class="header-anchor" href="#初始化数据库"><span>初始化数据库</span></a></h3><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">
80docker</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> run</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -it</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> --name</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> cmdb-init-db</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> --rm</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_HOST=数据库地址</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> ENV=PRO</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PORT=数据库端口</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_USERNAME=数据库用户名</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PASSWORD=数据库密码</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_NAME=cmdb</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> mingmingtang/cmdb</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> init-db</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>示例:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">docker</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> run</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -it</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> --name</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> cmdb-init-db</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> --rm</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_HOST=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">172.16.0.11</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> ENV=PRO</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PORT=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">3306</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_USERNAME=root</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PASSWORD=</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;">********</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_NAME=cmdb</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> mingmingtang/cmdb</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> init-db</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="运行cmdb" tabindex="-1"><a class="header-anchor" href="#运行cmdb"><span>运行CMDB</span></a></h3><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">
80docker</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> run</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -d</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> --name</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> cmdb</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -p</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> 80:80</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> ENV=PRO</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> SITE_URL=网站地址</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_HOST=数据库地址</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PORT=数据库端口</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_USERNAME=数据库用户名</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PASSWORD=数据库密码</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_NAME=cmdb</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> ELASTICSEARCH_HOSTS=ES地址,多个用英文逗号隔开,格式http://xx.xx.xx.xx:9200</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> EMAIL_HOST=邮箱smtp地址</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> EMAIL_PORT=邮箱smtp端口</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> EMAIL_USERNAME=发件箱</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> EMAIL_PASSWORD=邮箱密码</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> mingmingtang/cmdb</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> start</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>示例:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span style="--shiki-light:#4078F2;--shiki-dark:#61AFEF;">docker</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> run</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -d</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> --name</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> cmdb</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -p</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> 80:80</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> ENV=PRO</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> SITE_URL=http://120.79.60.130</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_HOST=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">172.16.0.11</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PORT=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">3306</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_USERNAME=root</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_PASSWORD=</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;">********</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> DB_NAME=cmdb</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> ELASTICSEARCH_HOSTS=http://127.0.0.1:9200</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> EMAIL_HOST=smtp.163.com</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> EMAIL_PORT=</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;">25</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> [email protected]</span><span style="--shiki-light:#986801;--shiki-dark:#D19A66;"> -e</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> EMAIL_PASSWORD=</span><span style="--shiki-light:#E45649;--shiki-dark:#E5C07B;">********</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> mingmingtang/cmdb</span><span style="--shiki-light:#50A14F;--shiki-dark:#98C379;"> start</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div>
80<h1 id="参考资料" tabindex="-1"><a class="header-anchor" href="#参考资料"><span>参考资料</span></a></h1><p><a href="https://github.com/open-cmdb/cmdb" target="_blank" rel="noopener noreferrer">https://github.com/open-cmdb/cmdb</a></p><h2 id="知乎链接" tabindex="-1"><a class="header-anchor" href="#知乎链接"><span>知乎链接</span></a></h2><p><a href="https://zhuanlan.zhihu.com/p/34191320" target="_blank" rel="noopener noreferrer">https://zhuanlan.zhihu.com/p/34191320</a></p>`,31)]))}const d=i(l,[["render",t]]),r=JSON.parse('{"path":"/posts/CMDB/2025-07-13-cmdb-04-opensource-open-cmdb-cmdb.html","title":"cmdb-04-开源项目 open-cmdb/cmdb","lang":"zh-CN","frontmatter":{"title":"cmdb-04-开源项目 open-cmdb/cmdb","date":"2025-07-13T00:00:00.000Z","categories":["CMDB"],"tags":["cmdb","sh"],"published":true,"description":"cmdb CMDB 资产管理系统 在线演示 http://cmdb.xyz 用户名:admin 密码:cmdbcmdb (请不要修改) 特性 热添加删除表 自定义字段类型 REST前后端分离架构 开放所有API接口 强大的搜索查找能力(后端使用elasticsearch存储数据 ) 可以配合kibana使用 支持查看数据修改记录 表级权限管理 容器快速...","head":[["meta",{"property":"og:url","content":"https://houbb.github.io/blog-devops/posts/CMDB/2025-07-13-cmdb-04-opensource-open-cmdb-cmdb.html"}],["meta",{"property":"og:site_name","content":"老马啸西风"}],["meta",{"property":"og:title","content":"cmdb-04-开源项目 open-cmdb/cmdb"}],["meta",{"property":"og:description","content":"cmdb CMDB 资产管理系统 在线演示 http://cmdb.xyz 用户名:admin 密码:cmdbcmdb (请不要修改) 特性 热添加删除表 自定义字段类型 REST前后端分离架构 开放所有API接口 强大的搜索查找能力(后端使用elasticsearch存储数据 ) 可以配合kibana使用 支持查看数据修改记录 表级权限管理 容器快速..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-08-22T03:56:27.000Z"}],["meta",{"property":"article:tag","content":"cmdb"}],["meta",{"property":"article:tag","content":"sh"}],["meta",{"property":"article:published_time","content":"2025-07-13T00:00:00.000Z"}],["meta",{"property":"article:modified_time","content":"2025-08-22T03:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"cmdb-04-开源项目 open-cmdb/cmdb\\",\\"image\\":[\\"\\"],\\"datePublished\\":\\"2025-07-13T00:00:00.000Z\\",\\"dateModified\\":\\"2025-08-22T03:56:27.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"老马啸西风\\",\\"url\\":\\"https://houbb.github.io\\"}]}"]]},"git":{"createdTime":1755834987000,"updatedTime":1755834987000,"contributors":[{"name":"binbin.hou","username":"","email":"[email protected]","commits":1}]},"readingTime":{"minutes":3.09,"words":928},"filePathRelative":"posts/CMDB/2025-07-13-cmdb-04-opensource-open-cmdb-cmdb.md","localizedDate":"2025å¹´7月13日","excerpt":"\\n<blockquote>\\n<p>CMDB 资产管理系统</p>\\n</blockquote>\\n<h2>在线演示</h2>\\n<p><a href=\\"http://cmdb.xyz\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">http://cmdb.xyz</a><br>\\n用户名:admin  密码:cmdbcmdb (请不要修改)</p>\\n<h2>特性</h2>\\n<ul>\\n<li>热添加删除表 自定义字段类型</li>\\n<li>REST前后端分离架构 开放所有API接口</li>\\n<li>强大的搜索查找能力(后端使用elasticsearch存储数据 ) 可以配合kibana使用</li>\\n<li>支持查看数据修改记录</li>\\n<li>表级权限管理</li>\\n<li>容器快速部署</li>\\n</ul>","autoDesc":true}');export{d as comp,r as data};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.