1.setting.py檔案,修改資料存儲方式
說明:注釋sqlite3資料庫,改用mysql連接配接
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "cmdb",
"USER": "root",
"PASSWORD": "root",
"HOST": "127.0.0.1",
"PORT": "3306",
}
}
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCM581dvRWYoNHLwEzX5xCMx8FesU2cfdGLwATMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLyczNyEzM4kjM0AzNxITNx8CXyIzMwgTMwIzLcNXZnFWbp9CXvwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
2.安裝mysql,建立庫cmdb資料庫
指令:yum install -y mysql-server
3.删除原來sqlite檔案、安裝mysql子產品檔案
指令:rm -rf db.sqlite3
yum list|grep MySQL-python
yum install -y MySQL-python.x86_64
4.使用管理腳本,同步資料庫
python manage.py validate
python manage.py syncdb
5.修改hostinfo目錄下,修改views.py檔案,檢視啟動屬性
6.啟動伺服器,和收集腳本
python manage.py runserver 0.0.0.0:8000
python getHostInfo.py
7.修改收集資訊腳本,将資訊序列化記憶體中,執行腳本,序列化,檢視列印資訊
執行收集腳本,結果:
8.反序列化,修改views.py
執行收集腳本,運作結果:
9.修改資訊收集腳本,執行個體化
from django.shortcuts import render
from hostinfo.models import Host
from django.http import HttpResponse
import pickle
def collect(req):
#print req
if req.POST:
#if req.method == "POST":
#print req.body
#print pickle.loads(req.body)
#hostname = req.POST.get("hostname")
#ip = req.POST.get("ip")
#osver = req.POST.get("osver")
#vendor = req.POST.get("vendor")
#product = req.POST.get("product")
#cpu_model = req.POST.get("cpu_model")
#cpu_num = req.POST.get("cpu_num")
#memory = req.POST.get("memory")
#sn = req.POST.get("sn")
obj = pickle.loads(req.body)
hostname = obj["hostname"]
ip = obj["ip"]
osver = obj["osver"]
vendor = obj["vendor"]
product = obj["product"]
cpu_model = obj["cpu_model"]
cpu_num = obj["cpu_num"]
memory = obj["memory"]
sn = obj"sn"]
host = Host()
host.hostname = hostname
host.ip =ip
host.osver = osver
host.product = product
host.cpu_model = cpu_model
host.cpu_num = cpu_num
host.memory = memory
host.vendor = vendor
host.sn = sn
host.save()
return HttpResponse("OK")
else:
return HttpResponse("no data")