Django + Ansible 主机管理

Posted 51reboot运维开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django + Ansible 主机管理相关的知识,希望对你有一定的参考价值。

Django + Ansible 主机管理


本文分享内容如下:


内容目录


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


代码讲解会在周四分享直播上详解为大家解说(附加源码)


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

将由我们的 KK 老师为我们详细解说《Django + Ansible 主机管理》


KK老师:

多语言混搭开发工程师,多年 php、Python 项目开发经验,曾就职 360、绿盟科技,7年工作经验。擅长于 Web 安全开发、性能优化、分布式应用开发&设计等多方面,51Reboot 金牌讲师。


具体参与方式:扫码添加小助手 备注:公开课 拉入直播分享群

51Reboot 第20期 Python零基础入门班 正在火热招生中


Django + Ansible 主机管理

www.51reboot.com

任何问题扫码咨询

长按扫码可咨询



以上是关于Django + Ansible 主机管理的主要内容,如果未能解决你的问题,请参考以下文章

运维自动化之 - ansible 批量主机管理

通过 Ansible API 获取主机信息

Ansible剧本管理(实例解释!!!)

自动化运维工具Ansible实战主机清单的管理

Ansible学习 安装

ansible 通过加密码来批量管理主机