美文网首页程序员自动化技术文
Django + Ansible 主机管理

Django + Ansible 主机管理

作者: 51reboot | 来源:发表于2018-11-27 10:58 被阅读8次

    本文分享内容如下:

    内容目录

    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 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 中的 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.5yum install sshpass
    

    受控机器

    yum install libselinux-pythonyum install python2-simplejson(version < python2.4)
    

    测试

    echo localhost ansible_connection=local > hostsansible 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.xxxecho xxx.xxx.xxx.xxx >> hostsansible all -m ping -i hosts
    

    python api

    整理资料

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

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

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

    KK老师:

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

    公告

    51Reboot 第20期 Python 零基础运维自动化【入门班】
    51Reboot Docker & K8S 课程
    正在火热招生中

    具体参与方式:

    想要了解详情请扫码咨询,备注“来源简书”

    相关文章

      网友评论

        本文标题:Django + Ansible 主机管理

        本文链接:https://www.haomeiwen.com/subject/vgowqqtx.html