Python自动化部署搭建网站

前言

你是不是需要部署代码?搭建环境或者搭建网站?
一机器搭建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’}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知火猪

如果觉得有帮助,打赏鼓励,3Q

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值