程序员自动化技术文

Django + Ansible 主机管理

2018-11-27  本文已影响8人  51reboot

本文分享内容如下:

内容目录

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 中的 MTV

M 模型 Model

T 模板 Template

V 视图 View

URLS

ORM

Object Relation Mapping(关系对象映射)

在具体的操作实体对象的时候,就不需要再去和复杂的 SQL 语句打交道,只需简单的操作实体对象的属性和方法

Command

app/management/commands

继承自 BaseCommand 的 Command 类,并实现 handle 方法

Authentication

创建用户: 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 开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。

学习流程

安装

控制机器

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 课程
正在火热招生中

具体参与方式:

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

猜你喜欢

热点阅读