Django + Ansible 主機管理
本文分享內容如下:
內容目錄
Django 基礎
-
MVC
-
ORM
-
COMMAND
-
Authentication
Ansible 基礎
-
配置
-
ad-hoc 命令集
-
python api
程式碼解讀
演示

建立虛擬化環境並進入
python3/python -m venv venv
(linux)source venv\bin\active
(win) venv\Scripts\active
安裝第三方庫
pip install -r requirements.txt
初始化
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
配置免密登陸&劇本檔案
ssh-keygen -t rsa -b 4096
ssh-copy-id -i ~/.ssh/id_rsa ofollow,noindex">[email protected] .xx
echo xxx.xxx.xxx.xxx >> etc/hosts
執行
python manage.py runserver 0.0.0.0:8888
python manager.py fact
瀏覽器開啟檔案
Django
一個可以使 Web 開發工作愉快並且高效的 Web 開發框架,能夠以最小的代價構建和維護高質量的 Web 應用
框架
軟體開發工程師從日常的重複勞動中總結出快速的、模組化的、安全的軟體開發模式
開發語言
設計思想
MVC
ORM
MVC
M 模型 model
V 檢視 view
C 控制器 controller

在 Django 中的 MTV
M 模型 Model
- 進行業務邏輯判斷和資料存取
T 模板 Template
- 將資料展示給使用者
V 檢視 View
-
將使用者請求資料傳遞給 Model
-
將 Model 返回的資料傳遞給 Template
URLS
-
用於配置 url 和 view 處理對應關係
-
注:url 都使用/結尾配置
ORM
Object Relation Mapping(關係物件對映)
在具體的操作實體物件的時候,就不需要再去和複雜的 SQL 語句打交道,只需簡單的操作實體物件的屬性和方法
Command
-
開發者可為應用註冊後臺命令到 manage.py, 通過 python manage.py command 在命令列中執行程式
-
存放目錄:
app/management/commands
- 命名格式:
繼承自 BaseCommand 的 Command 類,並實現 handle 方法

Authentication
-
Django 帶有使用者身份驗證系統,它處理使用者帳戶,組,許可權和基於 cookie 的使用者會話。
-
使用者認證
建立使用者: python manage.py createsuperuser
認證
from django.contrib.auth import authenticate, login, logout
user = authenticate(request, username=name, password=pwd)
login(request, user)
logout(request)
from django.contrib.auth.decorators import login_required
LOGIN_URL
Ansible
ansible 是一套自動化運維工具,基於 Python 開發,實現了批量系統配置、批量程式部署、批量執行命令等功能。
學習流程
-
安裝
-
管理協議
-
配置
-
ad-hoc
-
playbook
-
python api
安裝
控制機器
pip install ansible==2.5.5yum install sshpass
受控機器
yum install libselinux-pythonyum install python2-simplejson(version < python2.4)
測試
echo localhost ansible_connection=local > hostsansible all -m ping -i hosts
管理協議
ansible 通過 ssh 協議對受控機器管理, 可使用口令和金鑰對兩種方式進行許可權驗證, 預設使用金鑰對方式
在控制機器生成祕鑰對
ssh-keygen -t rsa -b 4096 -C "kk"
新增到公鑰到受控機器
遠端拷貝新增
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
本地新增
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
測試
ssh [email protected] xxx.xxx.xxx.xxx >> hostsansible all -m ping -i hosts
python api
-
劇本&變數
-
playbook
-
命令列選項
-
https://docs.ansible.com/ansible/latest/dev_guide/developing_api.html#python-api-example
整理資料
程式碼講解會在週四分享直播上詳解為大家解說(附加原始碼)
2018-11-29(週四)21:00-22:00
將由我們的 KK 老師為我們詳細解說《Django + Ansible 主機管理》
KK老師:
多語言混搭開發工程師,多年 PHP、Python 專案開發經驗,曾就職 360、綠盟科技,7年工作經驗。擅長於 Web 安全開發、效能優化、分散式應用開發&設計等多方面,51Reboot 金牌講師。
公告
51Reboot 第20期 Python 零基礎運維自動化【入門班】
51Reboot Docker & K8S 課程
正在火熱招生中
具體參與方式:

想要了解詳情請掃碼諮詢,備註“來源簡書”