Recommended Services
› Amazon Web Services
› LeanCloud
› New Relic
› ClearDB
zhouyg
V2EX  ›  云计算

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

  •  
  •   zhouyg · May 18, 2016 · 8359 views
    This topic created in 3822 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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