python之Django自動化資產掃描的實現

1. Django項目搭建

– django項目創建cmdb

在這裡插入圖片描述

– 子應用的創建scanhost

>python manage.py startapp scanhost

– 設置本地化(語言,時區, 安裝的應用)

setting
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
# USE_TZ = True
USE_TZ = False

INSTALLED_APPS = [
 'scanhost',
]

– 應用數據庫並創建超級用戶

>python manage.py makemigrations # 生成數據庫遷移腳本(每次修改瞭數據庫必備操作)
>python manage.py migrate # 將遷移腳本寫入數據庫並創建數據庫表
>python manage.py createsuperuser

– 瀏覽器訪問測試

>python manage.py runserver 9999

在這裡插入圖片描述

在這裡插入圖片描述

– 項目代碼的管理(requirements.txt, .gitignore文件和README.md文件)

安裝插件 .ignore,並生成python上傳git項目需要忽略內容的文件 .gitignore
>pip freeze > requirements.txt 生成 requirements.txt
創建README.md ## 導入此項目需要的包(最後完成時導入)

在這裡插入圖片描述

– git的管理

>git init #初始化git倉庫管理
>git add * # 將本地增刪改查的文件全部添加到暫存區
>git commit -m "django project init" # # 添加到本地倉庫
>git remote add origin https://gitee.com/***/*** ##上傳到gitee倉庫 關聯倉庫
>git push --set-upstream origin master
>git push --set-upstream origin master -f #首次上傳

2. 配置開發及生產環境

2.1 base.py

在 cmdb 下創建包 settings(作為配置文件存放地),將原始基本配置文件settings.py 移動到此包下,並重命名為 base.py

在這裡插入圖片描述

2.2 創建開發環境配置

創建開發環境配置:cmdb/settings/dev.py

from .base import *
DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.sqlite3',
  'NAME': BASE_DIR / 'db.sqlite3',
 }
}

在這裡插入圖片描述

2.3 創建生產環境配置

創建生產環境配置:cmdb/settings/prod.py

from .base import *
DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.postgresql',
  'NAME': 'mydatabase',
  'USER': 'mydatabaseuser',
  'PASSWORD': 'mypassword',
  'HOST': '127.0.0.1',
  'PORT': '5432',
 }
}

DEBUG = False # 開發環境一定要關閉調試模式
ALLOWED_HOSTS = ['*'] # 允許所有主機訪問

2.4 修改/init.py

修改 cmdb/settings/init.py,配置為開發環境(如果項目將來需要上線, 修改啟動項目訪問的配置文件為生產環境的配置文件即可,)

import os

env = os.environ.get('PROJECT_ENV', 'dev') ##dev開發環境,prod生產環境
if env == 'dev':
 from .dev import *
elif env == 'prod':
 from .prod import *
else:
 from .dev import *

在這裡插入圖片描述

2.5 遷移數據庫

>python manage.py migrate
>python manage.py createsuperuser
>python manage.py runserver 9999
>git add *
>git commit -m "add dev and prod settings"
>git push

3. pycharm遠程部署

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

4. 遠程代碼調試

4.1 遠程服務器安裝虛擬環境

[[email protected] yum.repos.d]# ssh [email protected] ##虛擬機ip
[[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[[email protected] yum.repos.d]# vim CentOS-Base.repo
:%s/$releasever/7/g
[[email protected] yum.repos.d]# yum install -y python3

[[email protected] ~]# pip3 install virtualenv -i https://pypi.douban.com/simple ##安裝虛擬環境
[[email protected] cmdb]# which python3
/usr/bin/python3
[[email protected] ~]# virtualenv -p /usr/bin/python3 venv ## 激活虛擬環境
[[email protected] ~]# source venv/bin/activate
(venv) [[email protected] cmdb]# pip install -r requirements.txt -i https://pypi.douban.com/simple ##安裝所需的包

在這裡插入圖片描述

在這裡插入圖片描述

4.2 配置pycharm的解釋器為遠程服務器解釋器

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

5. 配置項目數據庫為mysql

 5.1 安裝mysql

(venv) [[email protected] cmdb]# yum install mariadb-server -y
(venv) [[email protected] cmdb]# systemctl start mariadb
(venv) [[email protected] cmdb]# systemctl enable mariadb
(venv) [[email protected] cmdb]# mysql
(venv) [[email protected] cmdb]# mysql_secure_installation ## 初始化
(venv) [[email protected] ~]# mysql -uroot -pwestos
MariaDB [(none)]> create database cmdb default charset='utf8'; ## 創建數據庫cmdb;(設置編碼格式為'utf8')
MariaDB [(none)]> create user [email protected]'%' identified by "cmdb"; ## .創建遠程訪問數據庫用戶並授權
MariaDB [(none)]> grant all on cmdb.* to [email protected]'%';
(venv) [[email protected] ~]# mysql -ucmdb -pcmdb -h192.168.139.130 ##測試遠程訪問數據庫

(venv) [[email protected] ~]# yum install -y mariadb-devel
(venv) [[email protected] ~]# yum install -y gcc
(venv) [[email protected] ~]# yum install -y python3-devel
(venv) [[email protected] ~]# pip3 install -y mysqlclient -i https://pypi.douban.com/simple

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

5.2 關閉遠程服務器防火墻和selinux

(venv) [[email protected] ~]# systemctl stop firewalld.service
(venv) [[email protected] ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
(venv) [[email protected] ~]# setenforce 0
(venv) [[email protected] ~]# pip3 install -y mysqlclient -i https://pypi.douban.com/simple

在這裡插入圖片描述

5.3 生產環境配置

修改生產環境配置文件:cmdb/settings/prod.py

from .base import *

DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.mysql',
  'NAME': 'cmdb',
  'USER': 'cmdb',
  'PASSWORD': 'cmdb',
  'HOST': '192.168.139.130',
  'PORT': '3306',
 }
}
DEBUG = True # debug調試在生產環境一定要關閉
# ALLOWED_HOSTS = ['192.168.0.0/16'] # 允許訪問服務器的客戶端網段信息
ALLOWED_HOSTS = ['*'] # 允許訪問服務器的客戶端網段信息

5.3 遷移數據庫

(venv) [[email protected] cmdb]# python manage.py makemigrations
No changes detected
(venv) [[email protected] cmdb]# python manage.py migrate
(venv) [[email protected] cmdb]# python manage.py createsuperuser

在這裡插入圖片描述

5.4 運行遠程服務器項目

在這裡插入圖片描述

在這裡插入圖片描述

到此這篇關於python之Django自動化資產掃描的實現的文章就介紹到這瞭,更多相關Django自動化資產掃描內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!