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 [email protected]
ssh [email protected]
echo xxx.xxx.xxx.xxx >> etc/hosts
執行
python manage.py runserver 0.0.0.0:8888
python manager.py fact
瀏覽器開啟檔案
http://xxx.xxx.xxx.xxx:8888
Django
一個可以使 Web 開發工作愉快並且高效的 Web 開發框架,能夠以最小的代價構建和維護高質量的 Web 應用
框架
軟體開發工程師從日常的重複勞動中總結出快速的、模組化的、安全的軟體開發模式
開發語言
Python
設計思想
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 的關係模型資料庫結構中去
在具體的操作實體物件的時候,就不需要再去和複雜的 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.5
yum install sshpass
受控機器
yum install libselinux-python
yum install python2-simplejson(version < python2.4)
測試
echo localhost ansible_connection=local > hosts
ansible all -m ping -i hosts
管理協議
ansible 通過 ssh 協議對受控機器管理, 可使用口令和金鑰對兩種方式進行許可權驗證, 預設使用金鑰對方式
在控制機器生成祕鑰對ssh-keygen -t rsa -b 4096 -C "kk"
新增到公鑰到受控機器
遠端拷貝新增ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
本地新增cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
測試
ssh [email protected]
echo xxx.xxx.xxx.xxx >> hosts
ansible all -m ping -i hosts
python api
劇本&變數
playbook
命令列選項
https://docs.ansible.com/ansible/latest/dev_guide/developing_api.html#python-api-example
整理資料
https://www.jianshu.com/p/1657f05e1f56
https://raw.githubusercontent.com/imsilence/ansible-doc/master/docs/ansible.png
程式碼講解會在週四分享直播上詳解為大家解說(附加原始碼連結:https://pan.baidu.com/s/1JAkJbCFDOfoNCEZ2voHPQA
提取碼:4soc )
2018-11-29(週四)21:00-22:00
將由我們的 KK 老師為我們詳細解說《 Django + Ansible 主機管理》
講師 KK:
多語言混搭開發工程師,多年 PHP、Python 專案開發經驗,曾就職 360、綠盟科技,7年工作經驗。擅長於 Web 安全開發、效能優化、分散式應用開發&設計等多方面,51Reboot 金牌講師。
具體參與方式:掃碼新增小助手wechat:17812796384 備註:公開課 拉入直播分享群
51Reboot 第 20 期 Python 零基礎入門班 正在火熱招生中