请问有没有 Linux 软件环境下载部署脚本啊 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
790002517zzy
V2EX    程序员

请问有没有 Linux 软件环境下载部署脚本啊

  •  
      790002517zzy
    zzy-life 2023-08-02 00:46:51 +08:00 via Android 3093 次点击
    这是一个创建于 830 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如 nginx ,mysql 这些软件 可以远程下载部署或者内网选择包部署,还能自动设置开机自启 每次搭环境下软件烦死啦

    40 条回复    2023-08-03 11:46:55 +08:00
    8E9aYW8oj31rnbOK
        1
    8E9aYW8oj31rnbOK  
       2023-08-02 00:55:29 +08:00
    Docker / BT panel 7.7
    iridescent0rsy
        2
    iridescent0rsy  
       2023-08-02 01:20:40 +08:00 via Android
    ansible
    wangkun025
        3
    wangkun025  
       2023-08-02 01:34:04 +08:00 via Android
    熟悉 Python 就 ansible ,熟悉 Ruby 就 chef
    790002517zzy
        4
    790002517zzy  
    OP
       2023-08-02 01:50:58 +08:00 via Android
    @Leonkennedy2 宝塔不能内网使用吧
    790002517zzy
        5
    790002517zzy  
    OP
       2023-08-02 01:52:38 +08:00 via Android
    最好是脚本 因为有时候要内网使用的 可以把软件包下载进去然后脚本安装配置等等
    youyoumarco
        6
    youyoumarco  
       2023-08-02 08:04:15 +08:00
    docker k8s 那套搞起
    loading
        7
    loading  
       2023-08-02 08:38:42 +08:00   1
    sudo apt download xxx
    sudo dpkg -i *.deb

    因为你内网没有源,这是没办法的。
    把整个源拉到内网吧,也不算大,一百多个 T 。
    8E9aYW8oj31rnbOK
        8
    8E9aYW8oj31rnbOK  
       2023-08-02 08:49:27 +08:00
    @790002517zzy docker 打个镜像吧,然后导出,在 docker 的 doker 导入。
    790002517zzy
        9
    790002517zzy  
    OP
       2023-08-02 09:06:56 +08:00 via Android
    @Leonkennedy2 宝塔用 docker 的话 宝塔下载那些软件不需要联网吗
    cheng6563
        10
    cheng6563  
       2023-08-02 09:37:23 +08:00
    建议直接用容器。比如 nerdctl
    790002517zzy
        11
    790002517zzy  
    OP
       2023-08-02 09:49:10 +08:00 via Android
    @loading 内网我的意思是手动下载包丢进去,然后脚本去安装配置
    790002517zzy
        12
    790002517zzy  
    OP
       2023-08-02 09:50:43 +08:00 via Android
    下载安装都是些小事,主要在于配置(我是后端并非运维),比如 mysql 每次手动安装都要搞半天 开机自启也要设置半天
    wxyrrcj
        13
    wxyrrcj  
       2023-08-02 10:17:23 +08:00
    oneinstack
    vincent7245
        14
    vincent7245  
       2023-08-0210:21:34 +08:00
    作为后端,运维还是要懂一些的,趁着个机会学习一下简单的运维操作也好
    skiy
        15
    skiy  
       2023-08-02 10:30:20 +08:00
    oneinstack
    790002517zzy
        16
    790002517zzy  
    OP
       2023-08-02 10:35:18 +08:00 via Android
    @vincent7245 我会装 但脚本可以提升效率
    loading
        17
    loading  
       2023-08-02 10:42:41 +08:00
    @790002517zzy #11 linux 的配置文件基本都是文本操作啊,学一下写 sh 脚本就行。
    基本套路就是 脚本装软件,然后 cp 或者 wget .conf 文件,最后再运行一下系统的服务命令就完事了。
    你可能需要用到 grep sed awk 等大杀器小命令
    loading
        18
    loading  
       2023-08-02 10:45:14 +08:00
    既然你是后端,你应该会一门后端语言,你用这个语言写成工具就好了。

    然后你就是一名 DevOps 了。
    zedpass
        19
    zedpass  
       2023-08-02 11:02:36 +08:00
    使用 docker compose 可以满足你的需求
    brader
        20
    brader  
       2023-08-02 11:07:52 +08:00
    你连网都不想连,怎么搞,你以为仅仅是安装你需要的那几个包,但其实会依赖到很多其他环境,其他包,你一个一个装,不要命啦
    squarefong17
        21
    squarefong17  
       2023-08-02 11:17:15 +08:00
    1. 安装 docker 。debian 系就 apt 装,加-y 参数后就不需要手动确认了,红帽系就 yum 装。ubuntu 应该会帮你启动的,pacman 需要手动 systemctl enable 一下。别的我不熟,你自己查一下,加自动启动很方便的。
    2. 从硬盘导入你需要的 docker 镜像。docker 对于 image 可以导出到本地文件,也可以从本地文件导入镜像。你在有网的地方自己导出好,到内网再导入。
    3. docker run 的时候加 --network=host 可以让容器里面的端口全部透出来, 加 --restart=always 即可实现 docker 启动就自动启动该容器。第一步开启了 docker 开机自启,这里 restart=always ,相当于就可以让你的 mysql 也开机自启了。如果你要统一配置文件,无非就是把某个文件启动的时候 mount 进去。

    把上面几步命令写到脚本里面,这不就是一键部署脚本吗。
    790002517zzy
        22
    790002517zzy  
    OP
       2023-08-02 13:03:55 +08:00 via Android
    @brader 不是我不想连 你做过政府保密项目就知道了
    790002517zzy
        23
    790002517zzy  
    OP
       2023-08-02 13:05:43 +08:00 via Android
    @squarefong17 嗯 目前只有 docker 方便一点
    julyclyde
        24
    julyclyde  
       2023-08-02 13:07:50 +08:00
    1 如果你需要经常搭环境,那可能是你的需求有问题
    790002517zzy
        25
    790002517zzy  
    OP
       2023-08-02 13:30:19 +08:00 via Android
    @julyclyde 新机器不用搭环境吗
    julyclyde
        26
    julyclyde  
       2023-08-02 13:33:28 +08:00
    @790002517zzy 经常有需要搭环境的新机器就是个问题
    mdn
        27
    mdn  
       2023-08-02 13:37:58 +08:00
    买个 ITX 小机器,装 ubuntu 、docker 镜像源 ,带到内网
    harrozze
        28
    harrozze  
       2023-08-02 13:39:21 +08:00
    把 deb 包下载回来(有选项可以把依赖包也都下回来),然后写个 ansible 脚本,可以远程安装和配置。ansible 需要在目标机器上安装 python3 ,执行一些相对复杂的命令,记得一并下回来。装到 U 盘里,用一台能连内网的 linux 机器跑 ansible 。
    hlbcpt
        29
    hlbcpt  
       2023-08-02 13:43:24 +08:00 via iPhone
    lnmp 离线安装,适合你
    brader
        30
    brader  
       2023-08-02 14:07:57 +08:00
    @790002517zzy 如果你每台服务器需要的基础环境都是一样的,那你可以考虑直接导出成基础系统镜像呗
    ZedRover
        31
    ZedRover  
       2023-08-02 15:59:18 +08:00
    nixos
    xuelu520
        32
    xuelu520  
       2023-08-02 16:00:07 +08:00
    自己写好 shell 就行了
    flexbug
        33
    flexbug  
       2023-08-02 16:03:07 +08:00
    我的 nginx 包是自己编译的,我写成脚本,然后放到 ansible 下面运行,然后接入了 jenkins ,在 jenkins 建了一些 job ,选预填充那种,每行一个 ip ,执行就可以了,很多我都这样搞,比如安装各种 exporter
    zeusho871
        34
    zeusho871  
       2023-08-02 16:06:32 +08:00 via Android
    那就打包源码,自己编译,具体问 gpt
    yemoluo
        35
    yemoluo  
       2023-08-02 16:08:13 +08:00
    lnmp
    asdjgfr
        36
    asdjgfr  
       2023-08-02 16:51:05 +08:00
    1. shell - 无依赖
    2. Ansible - 专业
    3. 任意一门脚本语言 Python/Node.js 编译成可执行文件 - 随心所欲
    twofox
        37
    twofox  
       2023-08-02 17:09:52 +08:00
    自己问 GPT 写一个快速安装 docker+portainer 的 shell 脚本,然后安装好之后就用 portainer 安装各种软件,还可以控制版本、启动、数量、端口
    lwep
        38
    lwep  
       2023-08-02 17:33:40 +08:00
    要是个人电脑能接到内网,那就个人电脑再连个热点,开 http 代理给其它内网机器用吧
    filtrate
        39
    filtrate  
       2023-08-03 00:10:29 +08:00 via iPhone
    几行 shell 的事,不知道有什么好纠结的
    shirenran1
        40
    shirenran1  
       2023-08-03 11:46:55 +08:00
    1panel docker 版的宝塔
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     880 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:48 PVG 06:48 LAX 14:48 JFK 17:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86