Django + Ansible 主机管理(附源码)
admin
2023-07-15 23:02:35
0

本文分享内容如下:

内容目录

Django 基础

  • MVC
  • ORM
  • COMMAND
  • Authentication
    Ansible 基础
  • 配置
  • ad-hoc 命令集
  • python api
    代码解读

演示

Django + Ansible 主机管理(附源码)

创建虚拟化环境并进入
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 root@xxx.xxx.xxx.xx
ssh root@xxx.xxx.xxx.xxx
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 + Ansible 主机管理(附源码)

在 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 方法
Django + Ansible 主机管理(附源码)

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 user@host

本地添加
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

测试

ssh root@xxx.xxx.xxx.xxx
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 零基础入门班 正在火热招生中

相关内容

热门资讯

特朗普:正致力于与伊朗达成协议... 特朗普在《纽约邮报》一档播客访谈节目中称,他正与伊朗磋商一项协议,伊朗已同意不再谋求拥有核武器。他表...
不接壤的日菲为何偷划海界? 日菲近日发表联合声明,宣称就“划定两国专属经济区和大陆架的海洋边界”启动正式谈判。两个隔海相望的国家...
凤凰晚报丨从钳工到老戏骨,魏宗... 今日人物【从钳工到老戏骨,魏宗万用一生诠释“戏比天大”】6月1日,表演艺术家魏宗万在上海逝世,享年8...
科威特称伊朗袭击致63人受伤 科威特卫生部门3日称,伊朗当天对科威特的袭击已造成63人受伤,相关部门已启动紧急应对预案,并在全国范...
日本标榜“和平国家”却行扩军备... 今年是东京审判开庭80周年,世界正回望历史、反思战争罪责、捍卫二战后来之不易的国际秩序之际,日本却迈...
浙江杨梅即将大规模上市,如何破... “我们现在的压力很大。”5月底,浙江余姚杨梅产区丈亭镇副镇长林宇站在一片杨梅林前对第一财经表示,当地...
致5死2伤!韩国就韩华航空航天... 【环球网报道 记者 姜蔼玲】据韩联社6月1日报道,针对位于韩国大田的韩华航空航天公司发生爆炸致7人伤...
黄河科技学院2026年招生简章 长按图片识别二维码或点击 “阅读原文” 查看电子招生简章。
医路起航,从“心” 开始!黄河... 6月1日上午,黄河科技学院附属医院2022级临床医学本科实习生入院岗前培训在大医讲堂顺利举办。院领导...
问题居然在实体卡槽上!美版iP... 6月2日消息,日前,又有博主提前把还没发布的iPhone 18 Pro电池参数给曝光了出来,根据爆料...