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 &gt;&gt; ~/.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 零基础入门班 正在火热招生中

原文地址:http://blog.51cto.com/51reboot/2322488

时间: 2024-08-29 16:14:44

Django + Ansible 主机管理的相关文章

运维工具Ansible—主机分组管理(hosts)

ansible主机分组管理: ansible配置 说明:关于ansible hosts文件中可用参数: ansible_ssh_port=22                  #远程主机登陆端口 ansible_ssh_user=root                #远程主机登陆用户名 ansible_ssh_pass=chekir              #远程主机登陆用户名的密码 ansible_ssh_private_key_file=/etc/ansible/hosts   #指

day17 Django 主机管理

s19day17 内容回顾: 1. jQuery - 选择 - 操作 - 事件 2. Http协议 - 3. Django框架 版本:1.11 创建: django-admin startprojcet xxx cd xxx python manage.py startapp app01 python manage.py runserver 127.0.0.1:8000 今日内容: 1. 请求生命周期 2. 主机管理 - 路由系统 - 视图函数 - ORM(操作数据库) - 模板 内容详细: 1

【django小练习之主机管理界面】

需求: 利用django,js,bootstrap等实现登录,主机管理等操作. 实现截图 登录界面 主机界面,添加及编辑 部门管理界面 代码实现 目录层级 settings.py """ Django settings for day16 project. Generated by 'django-admin startproject' using Django 1.11.4. For more information on this file, see https://do

一个简单的主机管理模拟程序

最近写的一个小练习,主要是把前面学的东西整合一下.写了一个简单的主机管理界面,主要是练习以下知识点: Session和Cookie进行登录验证(装饰器) 数据库的基本操作 (单表,1对多,多对多) Form的简单使用实现验证 Bootstrap模板写个简单界面 自定义分页 信号,中间件,CSRF,模板语言,JavaScript,AJAX等等 界面比较low,毕竟不是专业的. 附件里面是Django的源代码,3个文件放在一起winrar解压就可以打开

saltstack主机管理项目【day39】:主机管理项目开发

项目目标 salt state.apply -h "ubuntu,centos" -g "ubuntu,centos" -f "ubuntu,centos" 文件目录规划 配置文件详解 步骤一:创建一个salt salt配置文件 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Alex Li import os,sys if __name__ == "__main__"

基于docker创建ansible以及管理容器节点

基于docker创建ansible以及管理容器节点 场景:在学习条件有限情况下,如果通过一台VM来完成docker和ansible的学习 解决:先创建自定义镜像-->构建多个ansible容器. 当然此法适用于其他类似场景. VM环境: OS:centos7 Docker version 1.12.3, build 6b644ec docker-compose version 1.8.1, build 878cff1 关键点: Dockerfile 编写优化 Docker-compose.yml

免密码交互方式+ansible批量管理服务介绍

介绍了ssh服务 1) 远程连接加密传输数据协议,实现远程连接登录,默认端口222)ssh远程连接原理依赖于锁头(公钥)和钥匙(私钥),实现远程加密连接3)ssh基于秘钥远程登录原理a 管理服务器创建秘钥対,将公钥传输发送给给管理端b 管理端请求与被管理端建立连接c 被管理向管理端发送公钥质询d 管理端处理质询信息,实现管理与被管理端免密码交互4)基于ssh协议相关命令ssh scp sftp netstat -lntup |egrep sshd 查看ssh端口 1.1 部署ssh+key (免

ansible自动化管理windows系统实战

一.简述 1.说明日常系统自动化运维过程中难免会有windows系列服务器,就开源软件来说目前大多的对windows批量管理兼容性不太好;不像Linux系统便捷,但现实中确实有些业务需要跑在windows上;搜索查找折腾一番后,发现python开发的ansible(已经被redhat收购)有比较好的解决方案,通过一番折腾,整理出来,以备忘交流; 2.实验环境服务器端:CentOS7.4_x64 自带python 2.7.5 ip:172.16.3.167源码安装ansible 被管理window

项目二:主机管理-00-借鉴

主机管理+堡垒机系统开发 本节内容 需求讨论 构架设计 表结构设计 程序开发 1.需求讨论 实现对用户的权限管理,能访问哪些机器,在被访问的机器上有哪些权限 实现可以通过web页面对指定主机列表 进行 批量发布命令.文件 实现对用户操作进行纪录 2.架构设计 3. 表结构设计 参考 http://www.cnblogs.com/alex3714/articles/5286889.html 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多