V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
zhouyg
V2EX  ›  云计算

如何快速部署代码到多个机器?

  •  
  •   zhouyg · 2016 年 5 月 18 日 · 7526 次点击
    这是一个创建于 3530 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设有 10 台机器,我要先安装 nodejs 和一些 npm 依赖包,以及我的工程代码

    怎么每次更新代码和更新 npm 依赖包都可以同步进行。

    总不能一个一个机器装过去吧。

    41 条回复    2016-05-25 11:08:55 +08:00
    cmaster
        1
    cmaster  
       2016 年 5 月 18 日
    听说过 docker 吗
    qooweds
        2
    qooweds  
       2016 年 5 月 18 日
    文件可以 rsync 过去,命令可以 ssh 过去
    写个循环就行了
    zaishanfeng
        3
    zaishanfeng  
       2016 年 5 月 18 日 via Android
    部署脚本啊
    ShiHou
        4
    ShiHou  
       2016 年 5 月 18 日
    docker
    SpicyCat
        5
    SpicyCat  
       2016 年 5 月 18 日
    docker
    ansible
    自己写脚本,用 CI 部署。

    其实上述三者可以配合使用
    sivacohan
        6
    sivacohan  
    PRO
       2016 年 5 月 18 日
    fabric 把你的步骤写里面就完了。

    或者使用 saltstack , puppet , chef 等工具。
    tagtag
        7
    tagtag  
       2016 年 5 月 18 日
    docker 可以解决,就是生产环境谁来承担技术风险
    jamiesun
        8
    jamiesun  
       2016 年 5 月 18 日
    fabric 比较简单直接
    donghouhe
        9
    donghouhe  
       2016 年 5 月 18 日
    跟帖的毫无疑问都是运维狗,哈哈哈
    donghouhe
        10
    donghouhe  
       2016 年 5 月 18 日
    我也是
    zhouyg
        11
    zhouyg  
    OP
       2016 年 5 月 18 日
    @tagtag docker 居然有风险?
    marrysail
        12
    marrysail  
       2016 年 5 月 18 日
    问个问题, docker 部署后,出现 N 多 none 的 image ,怎么破? 只能删除 container 重新 run ?
    sakeven
        13
    sakeven  
       2016 年 5 月 18 日
    @marrysail none 的 image 删掉就行,不需要删 container 啊。
    yuxing1171
        14
    yuxing1171  
       2016 年 5 月 18 日
    我一直用 git + rsync , 感觉好落后。
    Kilerd
        15
    Kilerd  
       2016 年 5 月 18 日 via Android
    docker 或者 fabric
    yseternal
        16
    yseternal  
       2016 年 5 月 18 日
    我们是在 teamcity 上自动构建,也就是在一台服务器上 git clone ,然后 npm install ,接着构建,生成的东西全部打个包,接着用 fabric 脚本发送到 n 个服务器解压
    atnoot
        17
    atnoot  
       2016 年 5 月 18 日
    git 就可以了 npm 安装可以在初始化做 npm 文件都放到 git 里 ssh + git clone 一下就可以
    ichou
        18
    ichou  
       2016 年 5 月 18 日
    cap
    YUX
        19
    YUX  
    PRO
       2016 年 5 月 18 日
    我用 Docker
    m31271n
        20
    m31271n  
       2016 年 5 月 18 日
    * Ansible (Python)
    * Fabric (Python)
    * Flightplan (Node.js)
    * Puppet , Chef ( Ruby)

    他们说的 Docker 也可以,看你有 10 台机器,肯定是公司的业务。这些东西你不能放到 Docker Hub 公有仓库上:
    * 要么花钱买仓库
    * 要么自己费事搭私有的 Registry
    m31271n
        21
    m31271n  
       2016 年 5 月 18 日
    但总体来说, Docker 是最靠谱的。
    fatpa
        22
    fatpa  
       2016 年 5 月 18 日
    先生您听说过 fabric 和 docker 么
    mytsing520
        23
    mytsing520  
    PRO
       2016 年 5 月 18 日
    docker
    Damnever
        24
    Damnever  
       2016 年 5 月 18 日   ❤️ 1
    @marrysail 这条命令应该行,玩过几次 docker

    docker rmi $(docker images | awk '{if (NR > 1 && $2 == "<none>") print $3}')
    sky170
        25
    sky170  
       2016 年 5 月 18 日
    docker
    huigeer
        26
    huigeer  
       2016 年 5 月 18 日 via iPhone
    表示用阿里云的镜像部署系统环境,用代码发布机 rsync 循环发送到目标服务器
    lonelygo
        27
    lonelygo  
       2016 年 5 月 18 日
    @cmaster 看了题目就想到 Docker ,结果 1 楼果然是。
    R4rvZ6agNVWr56V0
        28
    R4rvZ6agNVWr56V0  
       2016 年 5 月 18 日
    rsync 增量传吧,有能力的话用 docker 也挺好
    bear330
        29
    bear330  
       2016 年 5 月 19 日
    docker 一點也不靠譜, bug 奇多, 一天到晚在掉坑
    不過好處確實很明顯, 很難說準花在坑裡的時間和用了它省下來的時間算起來划不划算
    fabric 以樓主的場景來說簡單多了, 不必折騰
    DravenJohnson
        30
    DravenJohnson  
       2016 年 5 月 19 日
    Ansible
    xiamx
        31
    xiamx  
       2016 年 5 月 19 日
    ansible? puppet? chef?
    mesos/marathon?
    janxin
        32
    janxin  
       2016 年 5 月 19 日 via iPhone
    部署工具,要不然管理上百台机器的运维不得累死了
    mumonitor
        33
    mumonitor  
       2016 年 5 月 19 日
    最低级别: pssh
    中等级别: puppet 、 ansible 、 salt 等配置工具

    docker 其实有点偏题了,改动大了去了。服务注册、服务发现、网络、系统都需要跟上才行;
    xencdn
        34
    xencdn  
       2016 年 5 月 19 日
    rsync 是个神奇的软件
    Dannytmp
        35
    Dannytmp  
       2016 年 5 月 19 日
    运维狗的职业生涯不知能持续多久啊
    ajasonwang
        36
    ajasonwang  
       2016 年 5 月 19 日   ❤️ 1
    我司购买的是 IBM UrbanCode Deploy 做部署,比 jenkins 的直观优势就是并行发布多台机器
    devqin
        37
    devqin  
       2016 年 5 月 19 日
    战略性 mark
    hanxiV2EX
        38
    hanxiV2EX  
       2016 年 5 月 20 日 via iPhone
    建议写好解压安装启动的 bash 脚本,然后再写个循环 ssh 的脚本远程控制。
    zhouyg
        39
    zhouyg  
    OP
       2016 年 5 月 20 日
    @hanxiV2EX 这个用 pssh 的思路吧,用脚本批量拷过去
    hanxiV2EX
        40
    hanxiV2EX  
       2016 年 5 月 20 日 via iPhone
    @zhouyg 没用过 pssh, 我直接用的 ssh
    dudesun
        41
    dudesun  
       2016 年 5 月 25 日
    git+jenkins+saltstack
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:46 · PVG 09:46 · LAX 17:46 · JFK 20:46
    ♥ Do have faith in what you're doing.