#!/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("邮箱用户名(cmdb@163.com):")

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("完成!")

python cmdb_GitHub - open-cmdb/cmdb: CMDB 配置管理系统 资产管理系统相关推荐

  1. Python之CMDB资产管理系统

    最近正好在给公司做CMDB资产管理系统,现在做的也差不多了,现在回头吧思路整理下. CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, C ...

  2. python cmdb 资产管理 antoclient_资产管理系统 CMDB 详解

    两年前笔者在一个中小型互联网公司做运维,当时我们经理在机房,花了半天找一台服务器,但是服务器搞错了,悲剧了^.^! 当时我们的做法是用了一个 Excel,很多时候更新不及时,重启一台机器.拔一根网线都 ...

  3. linux搭建资产管理系统,GitHub - SuperLandy/cmdb: IT资产管理系统

    IT资产管理系统 说明 $ 开头的行表示需要执行的命令 环境 系统: CentOS 7 目录: /opt 数据库: mariadb5.5 web: nginx 开始安装 $ firewall-cmd ...

  4. 资产管理系统 CMDB 详解

    两年前笔者在一个中小型互联网公司做运维,当时我们经理在机房,花了半天找一台服务器,但是服务器搞错了,悲剧了^.^! 当时我们的做法是用了一个 Excel,很多时候更新不及时,重启一台机器.拔一根网线都 ...

  5. 开源资产管理系统_开源cmdb来啦 通用CMDB 开源资产管理系统

    一直享受广大互联网朋友的帮助 也一直在想自己能做点什么呢 看了一下互联网上没什么开源的cmdb系统 今天就给大家分享一个吧 希望能帮助到您 特点: 动态增删表 自定义字段类型 REST前后端分离架构 ...

  6. 你所不知道的CMDB:CMDB起源与发展

    ​​​一.CMDB起源 在今天,配置管理数据库(CMDB,后面均用这个简称,并且暂时不去区分CMDB和CMS)这个名词对于IT从业人员来说一点都不陌生,甚至有点烂熟了.无论是ITIL在企业落地.自动化 ...

  7. python基于Python的资产管理系统毕业设计-附源码201117

    摘 要 现代企业管理越来越强调利用有形资产来提供优质服务的能力,即通过资产管理来确保有形资产物尽其用.安全运行,在希望的时间和地点提供需要的设备,同时尽可能地降低运行和维护成本.资产管理系统为企业提供 ...

  8. Python网络爬虫简介与环境配置

    第一章 Python网络爬虫简介与环境配置 1.1 网络爬虫简介 随着互联网的快速发展越来越多的信息被发布到互联网上,这些信息被嵌入到各种各样的网页结构及样式中.虽然搜索引擎可以辅助用户搜索这些网页信 ...

  9. 安装python应该先安装pycharm还是python_Pycharm及python安装详细步骤及PyCharm配置整理(推荐)...

    首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址: https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载. ...

最新文章

  1. 怎样对流媒体进行压力测试_暖气片怎样安装效果好?暖气片正确的安装,采暖效果更好!...
  2. ITK读取CT DICOM,如何设置窗位和窗宽?
  3. “骗子”成民企院士第一人:把认真当信仰,人生就会开挂
  4. Gartner预测2019年全球IT支出将达到3.8万亿美元
  5. 7 种分布式全局 ID 生成策略,你更爱哪种?
  6. 【Todo】RTP/RTCP/RTSP/SIP/SDP 等多媒体传输和会话协议
  7. HTML5 —— 本地存储
  8. 第一周冲刺第二天博客
  9. 10 Golden rules for publishing your blog
  10. ASP.NET 经典60道面试题
  11. windows查看GPU信息(nvidia-smi)
  12. TZOJ 1545 Hurdles of 110m(01背包dp)
  13. Python 源码混淆与加密
  14. android技巧:dumpsys简化信息查看Activity结构
  15. 求链表中的中点、上中点、下中点
  16. git重新设置用户名密码
  17. 外卖返利系统,外卖返利系统小程序,外卖系统,返利系统
  18. 学一点Wi-Fi: CCMP
  19. Python数据可视化——图型参数介绍
  20. 【Sprite Atlas】Unity新图集系统SpriteAtlas超详细使用教程

热门文章

  1. linux shutdown命令以及参数详解
  2. kodi没有中文设置_kodi18.1设置中文的方法
  3. 基于IDEA的作业管理系统
  4. 模型的save和restore
  5. 关于Ragdoll的坑,莫名抖动和蒙皮拉伸
  6. 绝对挑战:宽容行天下
  7. 不作恶!IBM宣布放弃人脸识别业务,关停技术研发
  8. Vue 3.0 中配置原生高德地图
  9. 成语接龙(字符串,思路,按长度排序)
  10. C语言字节对齐64位和32位