cmdb
1.0.0
CMDB 자산 관리 시스템
https://zhuanlan.zhihu.com/p/34191320
http://cmdb.xyz 사용자 이름 : 관리자 비밀번호 : CMDBCMDB (수정하지 마십시오)
https://github.com/open-cmdb/cmdb-web
인터넷에 액세스하여 다음 코드를 install_cmdb.py에 저장하여 Sudo Python install_cmdb.py를 실행하기 위해 인터넷에 액세스 할 수있는 CentOS 서버 (4G 이상의 메모리)를 준비하십시오.
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import os
import subprocess
import argparse
import time
def base ( cmd ):
if subprocess . call ( cmd , shell = True ):
raise Exception ( "{} 执行失败" . format ( cmd ))
def install_docker ():
base ( "sudo yum install -y yum-utils device-mapper-persistent-data lvm2" )
base ( "sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo" )
base ( "sudo yum makecache fast" )
base ( "sudo yum -y install docker-ce" )
if ( not os . path . exists ( "/etc/docker" )):
base ( "mkdir -p /etc/docker" )
with open ( "/etc/docker/daemon.json" , "w" ) as f :
f . write ( '{ n "registry-mirrors": ["https://9f4w4icn.mirror.aliyuncs.com"] n }' )
base ( "sudo systemctl daemon-reload" )
base ( "sudo systemctl start docker" )
def create_dir ():
if ( not os . path . exists ( "/var/cmdb/db" )):
base ( "sudo mkdir -p /var/cmdb/db" )
if ( not os . path . exists ( "/var/cmdb/es" )):
base ( "sudo mkdir -p /var/cmdb/es" )
def run_db_container ():
base ( "sudo docker run --name cmdb-db -d -e MYSQL_ROOT_PASSWORD=cmdbcmdb -v /var/cmdb/db:/var/lib/mysql mysql:5.7.21" )
def run_es_container ():
base ( "sudo docker run --name cmdb-es -d -v /var/cmdb/es:/usr/share/elasticsearch/data elasticsearch:5.6.8" )
def init_db ():
base ( "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" )
def run_cmdb_container ( site_url , email_host , email_port , email_username , email_password ):
base ( "sudo docker run -d --name cmdb --link cmdb-db --link cmdb-es -p 80:80 -e ENV=PRO -e SITE_URL={} -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={} -e EMAIL_PORT={} -e EMAIL_USERNAME={} -e EMAIL_PASSWORD={} mingmingtang/cmdb start" . format ( site_url , email_host , email_port , email_username , email_password ))
def input_para ( help ):
value = ""
while ( not value ):
value = raw_input ( help )
return value
if __name__ == '__main__' :
if ( os . geteuid () != 0 ):
raise ( "请以root权限运行" )
# parser = argparse.ArgumentParser()
# parser.add_argument("--siteurl", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1")
# parser.add_argument("--emailhost", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1")
# parser.add_argument("--emailport", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1")
# parser.add_argument("--emailusername", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1")
# parser.add_argument("--emailpassword", type=str, help="E.g: http://cmdb.xxx.com, http://172.17.100.1")
# args = parser.parse_args()
# SITE_URL = args.SITE_URL
site_url = input_para ( "请输入网站域名或IP(http://cmdb.xxx.com):" )
email_host = input_para ( "网站邮箱服务器(smtp.163.com):" )
email_port = input_para ( "邮箱服务器端口(25):" )
email_username = input_para ( "邮箱用户名([email protected]):" )
email_password = input_para ( "邮箱密码|独立授权码(P@ssw0rd):" )
print ( "开始安装docker" )
install_docker ()
print ( "开始创建目录" )
create_dir ()
print ( "开始运行mysql容器" )
run_db_container ()
print ( "开始运行elasticsearch容器" )
run_es_container ()
print ( "等待数据库启动完成(10s)" )
time . sleep ( 10 )
print ( "开始初始化数据库" )
init_db ()
print ( "开始运行cmdb" )
run_cmdb_container ( site_url , email_host , email_port , email_username , email_password )
print ( "完成!" )
먼저 Elasticsearch (5.6) 및 MySQL (5.7) 기타 버전을 테스트하지 않았습니다.
Mingmingtang/CMDB
docker run -it --name cmdb-init-db --rm -e DB_HOST=数据库地址 -e ENV=PRO -e DB_PORT=数据库端口 -e DB_USERNAME=数据库用户名 -e DB_PASSWORD=数据库密码 -e DB_NAME=cmdb mingmingtang/cmdb init-db
예:
docker run -it --name cmdb-init-db --rm -e DB_HOST=172.16.0.11 -e ENV=PRO -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD= ******** -e DB_NAME=cmdb mingmingtang/cmdb init-db
docker run -d --name cmdb -p 80:80 -e ENV=PRO -e SITE_URL=网站地址 -e DB_HOST=数据库地址 -e DB_PORT=数据库端口 -e DB_USERNAME=数据库用户名 -e DB_PASSWORD=数据库密码 -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=ES地址,多个用英文逗号隔开,格式http://xx.xx.xx.xx:9200 -e EMAIL_HOST=邮箱smtp地址 -e EMAIL_PORT=邮箱smtp端口 -e EMAIL_USERNAME=发件箱 -e EMAIL_PASSWORD=邮箱密码 mingmingtang/cmdb start
예:
docker run -d --name cmdb -p 80:80 -e ENV=PRO -e SITE_URL=http://120.79.60.130 -e DB_HOST=172.16.0.11 -e DB_PORT=3306 -e DB_USERNAME=root -e DB_PASSWORD= ******** -e DB_NAME=cmdb -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9200 -e EMAIL_HOST=smtp.163.com -e EMAIL_PORT=25 -e [email protected] -e EMAIL_PASSWORD= ******** mingmingtang/cmdb start