项目deploy相关

总体思想:把gitlab上托管的项目代码部署到远程服务器(可能不止一台),并且对应于不同的环境(比如生产,测试,alpha环境等)要拉取不同branch的代码。

Jenkins

利用jenkins参数构建插件
采用参数构建调用shell脚本的方法

Fabric(基于fabric==1.13.2这个版本)

  1. fab —— 命令行工具,安装fabric时会自动安装
  2. fabfile.py的构建
    注意fabfile 1.x跟2.x的区别
    用到的接口一般都会来自fabric.api,所以实际调用可直接from fabric.api import *
    命令接口:env, local, sudo, run, execute, put, cd
    装饰器:task(加入任务队列), parallel(任务并行执行), roles(其实是对应env.roledefs)

boto EC2(因为服务器托管在AWS)

  1. 首先连接EC2
from boto import ec2

conn = ec2.connnect_to_region(aws_region, aws_access_key, aws_access_secret)
  1. 获取reservations
reservations = conn.get_all_instances()  # 当然可以加一些filter条件
  1. 获取instances,然后遍历instances进而得到每个实例的private_ip_address
  2. 把3的结果update到env.roledefs

你可能感兴趣的:(项目deploy相关)