V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
790002517zzy
V2EX  ›  程序员

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

  •  
  •   790002517zzy ·
    zzy-life · 270 天前 via Android · 2216 次点击
    这是一个创建于 270 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    然后你就是一名 DevOps 了。
    zedpass
        19
    zedpass  
       269 天前
    使用 docker compose 可以满足你的需求
    brader
        20
    brader  
       269 天前
    你连网都不想连,怎么搞,你以为仅仅是安装你需要的那几个包,但其实会依赖到很多其他环境,其他包,你一个一个装,不要命啦
    squarefong17
        21
    squarefong17  
       269 天前
    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
       269 天前 via Android
    @brader 不是我不想连 你做过政府保密项目就知道了
    790002517zzy
        23
    790002517zzy  
    OP
       269 天前 via Android
    @squarefong17 嗯 目前只有 docker 方便一点
    julyclyde
        24
    julyclyde  
       269 天前
    1 如果你需要经常搭环境,那可能是你的需求有问题
    790002517zzy
        25
    790002517zzy  
    OP
       269 天前 via Android
    @julyclyde 新机器不用搭环境吗
    julyclyde
        26
    julyclyde  
       269 天前
    @790002517zzy 经常有需要搭环境的新机器就是个问题
    mdn
        27
    mdn  
       269 天前
    买个 ITX 小机器,装 ubuntu 、docker 镜像源 ,带到内网
    harrozze
        28
    harrozze  
       269 天前
    把 deb 包下载回来(有选项可以把依赖包也都下回来),然后写个 ansible 脚本,可以远程安装和配置。ansible 需要在目标机器上安装 python3 ,执行一些相对复杂的命令,记得一并下回来。装到 U 盘里,用一台能连内网的 linux 机器跑 ansible 。
    hlbcpt
        29
    hlbcpt  
       269 天前 via iPhone
    lnmp 离线安装,适合你
    brader
        30
    brader  
       269 天前
    @790002517zzy 如果你每台服务器需要的基础环境都是一样的,那你可以考虑直接导出成基础系统镜像呗
    ZedRover
        31
    ZedRover  
       269 天前
    nixos
    xuelu520
        32
    xuelu520  
       269 天前
    自己写好 shell 就行了
    flexbug
        33
    flexbug  
       269 天前
    我的 nginx 包是自己编译的,我写成脚本,然后放到 ansible 下面运行,然后接入了 jenkins ,在 jenkins 建了一些 job ,选预填充那种,每行一个 ip ,执行就可以了,很多我都这样搞,比如安装各种 exporter
    zeusho871
        34
    zeusho871  
       269 天前 via Android
    那就打包源码,自己编译,具体问 gpt
    GTim
        35
    GTim  
       269 天前
    lnmp
    asdjgfr
        36
    asdjgfr  
       269 天前
    1. shell - 无依赖
    2. Ansible - 专业
    3. 任意一门脚本语言 Python/Node.js 编译成可执行文件 - 随心所欲
    twofox
        37
    twofox  
       269 天前
    自己问 GPT 写一个快速安装 docker+portainer 的 shell 脚本,然后安装好之后就用 portainer 安装各种软件,还可以控制版本、启动、数量、端口
    lwep
        38
    lwep  
       269 天前
    要是个人电脑能接到内网,那就个人电脑再连个热点,开 http 代理给其它内网机器用吧
    jinqzzz
        39
    jinqzzz  
       269 天前 via iPhone
    几行 shell 的事,不知道有什么好纠结的
    shirenran1
        40
    shirenran1  
       268 天前
    1panel docker 版的宝塔
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   891 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:01 · PVG 05:01 · LAX 14:01 · JFK 17:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.