1. 程式人生 > >Django + Ansible 主機管理(有原始碼)

Django + Ansible 主機管理(有原始碼)

本文給大家介紹如何利用 Django + Ansible 進行 Web 專案管理。

 

Django介紹

一個可以使 Web 開發工作愉快並且高效的 Web 開發框架,能夠以最小的代價構建和維護高質量的 Web 應用。

所謂框架就是軟體開發工程師從日常的重複勞動中總結出快速的、模組化的、安全的軟體開發模式。

 

開發語言

Python

 

設計思想

MVC 與 ORM 計思想

 

MVC

M 模型 model

V 檢視 view

C 控制器 controller

從下圖中我們可以清晰形象的看出何為MVC設計模式:

 

 在 Django 中的 MTV

 

M 模型 Model 

  • 進行業務邏輯判斷和資料存取

 

T 模板 Template

  • 將資料展示給使用者

 

V 檢視 View

  • 將使用者請求資料傳遞給 Model
  • 將 Model 返回的資料傳遞給 Template

 

URLS

  • 用於配置 url 和 view 處理對應關係
  • 注:url 都使用/結尾配置

 

ORM

全稱:Object Relation Mapping(關係物件對映)

  • 用來把物件模型表示的物件對映到基於 SQL 的關係模型資料庫結構中去

在具體的操作實體物件的時候,就不需要再去和複雜的 SQL 語句打交道,只需簡單的操作實體物件的屬性和方法

 

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

 

關於 Django + Ansible 主機管理本來準備了很多東西要和大家,後來覺得還不如開個直博現場和大家分享,我知道很多人學習一樣新東西的時候都死在了配環境上面了,沒有人手把手指導怎麼使用真的很絕望,因此在2018-11-29(週四)21:00-22:00,kk老師會直播給大家詳細講解 Django + Ansible,所謂技多不壓身,想從事 web 開發的同學一定要去看一下呀!!!

 

2018-11-29(週四)21:00-22:00

將由我們的 KK 老師為我們詳細解說《Django + Ansible 主機管理》

 

KK老師:

多語言混搭開發工程師,多年 PHP、Python 專案開發經驗,曾就職 360、綠盟科技,7年工作經驗。擅長於 Web 安全開發、效能優化、分散式應用開發&設計等多方面,51Reboot 金牌講師。

 

具體參與方式:掃碼新增小助手 備註:公開課 拉入直播分享群