Python自动化部署搭建网站

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_21405949/article/details/99191786

前言

你是不是需要部署代码?搭建环境或者搭建网站?
一机器搭建30分钟搞定,10台机器呢?100台机器呢?
所以,我们就来学点骚技巧,一键搞定?

基础技能 fabric 是什么?

是一个Python的自动化部署库,化繁为简一键登录服务器不是问题,no problem。

# -*- coding:utf-8 -*-
from fabric.api import * 

@task  # 装饰器,表示是一个任务
@runs_once # 表示只执行一次
def myrun():
    run('uname -s')

在终端里执行
fab -H loaclhost myrun # 会看到相应输出

参数含义:
-H : 制定主机,这里制定的主机为127.0.0.1
myrun : 自己在文件中定义的方法

如果文件名不是fabfile.py 如文件名为test.py
那么执行命令变为
fab -H loaclhost -f test.py myrun

fabric进阶技能

  • 登录一台服务器
# -*- coding:utf-8 -*-
from fabric.api import *

env.user = 'aeasringnar'
env.hosts = ['127.0.0.1']
env.password = '123456'

@task  # 装饰器,表示是一个任务
@runs_once # 表示只执行一次
def myrun():
    run('uname -s')

参数含义:
user 用户名
hosts 服务器ip列表
password 服务器密码

这样的话可以直接运行
fab myrun # 即可

fabric基础 - 常用参数

-l:显示定义好的任务函数名,例如:本例运行fab -l 之后的输出为 myrun 
-f:指定fab入口文件,默认入口文件为fabfile.py 
-H:指定目标主机,多台主机用”,”隔开

fabric进阶 - 常用api

local:执行本地命令,如:local(‘uname -s’) 
lcd:切换本地目录,如:lcd(‘/home’) 
cd:切换远程目录,如:cd(‘/etc’) 
run:执行远程命令(最常用),如:run(‘uname -r’) 输出主机内核版本号 
sudo:sudo的当时执行远程命令,如:sudo(‘touch test.txt’) 
put:上传本地文件到远程主机,如:put(‘/home/test.txt’,’/home/text.txt’) 
get:从远程主机下载到本地,如:get(‘/home/test.txt’,’/home/text.txt’) 
reboot:重启远程计算机,如:reboot() 
@task:装饰器函数,标识的函数为fab可调用的,非标记的对fab不可见,纯业务逻辑。 
@runs_once:标识的函数只会执行一次,不受多台主机影响

fabric进阶 - 全局属性设定

env.hosts:定义目标主机,如:env.hosts = [‘127.0.0.10’,’192.168.17.7’] 
env.user:定义用户名,如:env.user = ‘root’ 
env.port:定义目标主机端口,默认为22,如:env.port = ‘22’ 
env.password:定义密码,如:env.password = ‘test’ 
env.passwords:不同的主机不同的密码,注意:这里必须是用户名@主机:端口 然后是密码,缺一不可,否则一直要输入密码,如:env.passwords = {‘root@127.0.0.1:22’:’test’,’test@192.168.17.7:22’:’python’}

没有更多推荐了,返回首页