前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维天地-服务器10-X86-PCServer属性webapi接口获取并入库

运维天地-服务器10-X86-PCServer属性webapi接口获取并入库

作者头像
大话IT架构
发布2020-04-15 15:54:05
3870
发布2020-04-15 15:54:05
举报
文章被收录于专栏:大话IT架构大话IT架构

01

PART

知识回顾

本篇文章,我们重点介绍通过webapi获取服务器熟悉并存入mysql数据库。

前期知识储备和回顾,请参考以下文章

01)运维天地-服务器01-X86-PCServer属性介绍

02)运维天地-服务器02-X86-PCServer资产信息获取

03)运维天地-服务器03-X86-PCServer CPU信息获取

04)运维天地-服务器04-X86-PCServer内存信息获取

05)运维天地-服务器05-X86-PCServer磁盘信息获取

06)运维天地-服务器06-X86-PCServer网口信息获取

07)运维天地-服务器07-X86-PCServer系统信息获取

08)运维天地-服务器08-X86-PCServer IP信息获取

09)运维天地-服务器09-X86-PCServer属性webapi接口实现

特别说明:本文的服务器特指X86-PCServer硬件服务器

02

PART

X86-PCServer属性webapi获取并入库

A

调用webapi和入库脚本

代码语言:javascript
复制
#!/usr/bin/python
#-*- coding: utf-8 -*-
#作者:王志国  电话:1891037  个人微信: it_beijing   个人微信公众号: 大话IT架构
#desc:欢迎关注:个人微信公众号---大话IT架构
#date: 2020.04.06

import requests
import ast
import pymysql

url = "http://192.144.231.34:10000"
result = requests.get(url)
hardware_info = ast.literal_eval(result.content.decode())
print(hardware_info)

if hardware_info['mechine_type'] == "vm":
    mechine_type = hardware_info['mechine_type']
    net_10g_num = hardware_info['net_10g_num']
    net_1g_num = hardware_info['net_1g_num']
    os_type = hardware_info['os_type']
    os_detail = hardware_info['os_detail']
    product_ip = hardware_info['product_ip']
    values = (mechine_type, net_10g_num, net_1g_num, 
              os_type, os_detail, product_ip)
    sql = """INSERT INTO vm (mechine_type, net_10g_num, net_1g_num, os_type, os_detail, product_ip) 
          VALUES (%s, %s, %s, %s, %s, %s)"""
else:
    mechine_type = hardware_info['mechine_type']
    manufacturer = hardware_info['manufacturer']
    product_name = hardware_info['product_name']
    serial_number = hardware_info['serial_number']
    cpu_tpye = hardware_info['cpu_type']
    cpu_num = hardware_info['cpu_num']
    mem_ddr = hardware_info['mem_ddr']
    mem_speed = hardware_info['mem_speed']
    mem_size = hardware_info['mem_size']
    mem_num = hardware_info['mem_sum']
    mem_slot_num = hardware_info['mem_slot_sum']
    raid_adapter = hardware_info['raid_adapter']
    disk_type1 = hardware_info['disk_type1']
    disk_type1_num = hardware_info['disk_type1_num']
    disk_type2 = hardware_info['disk_type2']
    disk_type2_num = hardware_info['disk_type2_num']
    disk_type3 = hardware_info['disk_type3']
    disk_type3_num = hardware_info['disk_type3_num']
    net_10g_num = hardware_info['net_10g_num']
    net_1g_num = hardware_info['net_1g_num']
    os_type = hardware_info['os_type']
    os_detail = hardware_info['os_detail']
    product_ip = hardware_info['product_ip']
    ipmi_ip = hardware_info['ipmi_ip']
    values = (mechine_type, manufacturer, product_name, serial_number, 
              cpu_type, cpu_num, mem_ddr, mem_speed, mem_size, mem_num, 
              mem_slot_num, raid_adapter, disk_type1, disk_type1_num, 
              disk_type2, disk_type2_num, disk_type3, disk_type3_num, 
              net_10g_num, net_1g_num, os_type, os_detail, product_ip, ipmi_ip)
    sql = """INSERT INTO server (mechine_type, manufacturer, product_name, serial_number, 
             cpu_type, cpu_num, mem_ddr, mem_speed, mem_size, mem_num, 
             mem_slot_num, raid_adapter, disk_type1, disk_type1_num, 
             disk_type2, disk_type2_num, disk_type3, disk_type3_num, 
             net_10g_num, net_1g_num, os_type, os_detail, product_ip, ipmi_ip) 
             VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"""

dbhost = '127.0.0.1'
dbuser = 'root'
dbpassword = '123456'
dbname = 'idc'
db = pymysql.connect(dbhost, dbuser, dbpassword, dbname, charset='utf8')
cursor = db.cursor()
try:
    cursor.execute(sql, values)
    db.commit()
except:
    db.rollback()

B

数据库操作

数据库及建表sql语句

CREATE DATABASE IF NOT EXISTS idc DEFAULT CHARACTER SET utf8;

CREATE TABLE vm ( mechine_type VARCHAR(50), net_10g_num INT, net_1g_num INT, os_type VARCHAR(50), os_detail VARCHAR(100), product_ip VARCHAR(50) )

CREATE TABLE server ( mechine_type VARCHAR(50), high INT, manufacturer VARCHAR(50), product_name VARCHAR(50), serial_number VARCHAR(50) NOT NULL, cpu_type VARCHAR(100), cpu_num INT, mem_ddr VARCHAR(50), mem_speed VARCHAR(50), mem_size VARCHAR(50), mem_num INT, mem_slot_num INT, raid_adapter VARCHAR(50), disk_type1 VARCHAR(50), disk_type1_num INT, disk_type2 VARCHAR(50), disk_type2_num INT, disk_type3 VARCHAR(50), disk_type3_num INT, net_10g_num INT, net_1g_num INT, os_type VARCHAR(50), os_detail VARCHAR(100), product_ip VARCHAR(50), ipmi_ip VARCHAR(50),

asset_id INT, pur_contract_id INT, maint_contract_id INT, maint_start_time VARCHAR(50), maint_end_time VARCHAR(50), maint_company VARCHAR(50), maint_tel VARCHAR(50), pur_price FLOAT, pur_department VARCHAR(50), pur_name VARCHAR(50),

idc_supplier VARCHAR(50), idc_name VARCHAR(50), idc_row VARCHAR(50), rack VARCHAR(50), startU VARCHAR(50), status VARCHAR(50),

update_time DATE, comments VARCHAR(200) )DEFAULT CHARSET=utf8;

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话IT架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档