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

对于经常装 Linux 系统,有什么工具或方法能快速初始化环境么

  •  
  •   smdbh · 2019-01-17 09:41:49 +08:00 · 7932 次点击
    这是一个创建于 2140 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 个人使用,没有批量需求
    2. 初始化 ,比如 ip 配置,apt 源,常用软件安装。smb 配置 zsh 等, 基本概括为修改配置文件和安装软件。
    3. 一键完成。

    当前手写 bash 脚本完成这个,但感觉不系统化。不知道有没有工具类完成这个工作。

    第 1 条附言  ·  2019-01-17 22:27:28 +08:00
    学习了大家的建议
    1. 单机部分,最方便的还是虚拟机大法,快照功能无敌。
    2. 对于云环境,或是其他物理机器,bash dotfiles 更适合我。(虚拟机文件或是 docker 都还是臃肿,不好操作,但是稳定性性好,不会因为网络原因造成意外冲突)
    54 条回复    2019-01-21 17:17:35 +08:00
    richzhu
        1
    richzhu  
       2019-01-17 09:44:09 +08:00 via iPhone
    Ansible Task
    ly4572615
        2
    ly4572615  
       2019-01-17 09:44:23 +08:00
    ansible 或者 salt 也是要写 yaml 的,亲
    iRiven
        3
    iRiven  
       2019-01-17 09:46:03 +08:00 via Android
    dd
    CallMeReznov
        4
    CallMeReznov  
       2019-01-17 09:47:06 +08:00
    KS 无论批量和个人 都原生支持 KS
    greenskinmonster
        5
    greenskinmonster  
       2019-01-17 09:47:10 +08:00
    把默认系统和预装软件装好,tar 打包个模板出来,然后写个 bash,初始化设置下 ip,hostname,bootloader 啥的就好了。
    fox0001
        6
    fox0001  
       2019-01-17 09:47:43 +08:00 via Android
    把相关配置文件备份,装完系统还原过去。
    rocksolid
        7
    rocksolid  
       2019-01-17 09:55:48 +08:00
    虚拟机,建好放一个原始版本,用只用复制的
    lihongjie0209
        8
    lihongjie0209  
       2019-01-17 09:58:13 +08:00
    ansible
    openbsd
        9
    openbsd  
       2019-01-17 10:08:49 +08:00
    同机器还是不同的机器 ?同机器的话,快照 ?
    reus
        10
    reus  
       2019-01-17 10:17:51 +08:00
    bash 怎么就不够系统化了?
    Tonni
        11
    Tonni  
       2019-01-17 10:18:36 +08:00
    Ansible...
    zjsxwc
        12
    zjsxwc  
       2019-01-17 10:20:47 +08:00   ❤️ 1
    换硬盘
    0w0b
        13
    0w0b  
       2019-01-17 10:53:05 +08:00
    nixos
    zoum
        14
    zoum  
       2019-01-17 10:58:35 +08:00 via iPhone   ❤️ 1
    GitHub 上有许多 dotfiles 可以参考下
    DovaKeen
        15
    DovaKeen  
       2019-01-17 11:10:08 +08:00
    不装系统了,都弄到 docker 里
    quinoa42
        16
    quinoa42  
       2019-01-17 11:17:16 +08:00
    bash 怎么不系统化了,代码是自己写的,而且一般来讲无论什么发行版都会自带 bash
    我之前用的 dotbot,但考虑到不是所有发行版都自带 python,最后还是手写了自己的 bash script
    hoyixi
        17
    hoyixi  
       2019-01-17 11:30:54 +08:00
    不想写代码的话:

    虚拟机做好环境,然后作为一个备份镜像, 以后用的时候,用它 clone 一个;

    vagrant,本质一样,自己做个做好环境的 box,用的时候,装一份。


    个人感觉虚拟机简单粗暴。配上上面说的别人写好的脚本或者工具,可以方便定制。

    比如刚装好系统,做个最基础的备份镜像,

    然后克隆一份,比如 Nodejs,用专门配置脚本弄好环境,此时再保存镜像,就是一个初始的 Nodejs 环境。

    同理看工作需求,Python,数据库之类都可以搞个,甚至按照数据库版本都可以多弄几个(比如做为测试环境)。

    这样,麻烦的工作做一次,以后就可以少做点。
    TotoroSora
        18
    TotoroSora  
       2019-01-17 11:32:24 +08:00
    这个问题思考了好久没想到什么好方法。。想到过的有直接自制 LiveCD,另一个方法是直接 tar 系统盘
    wenzhoou
        19
    wenzhoou  
       2019-01-17 11:32:42 +08:00 via Android
    bash +1
    写完记得放 GitHub 上共享一下啊。😁😁
    catalina
        20
    catalina  
       2019-01-17 12:15:34 +08:00 via Android
    。。。lvm 不是自带快照功能吗?
    dajj
        21
    dajj  
       2019-01-17 12:22:37 +08:00
    Clonezilla 再生龍 镜像备份
    itabas016
        22
    itabas016  
       2019-01-17 12:24:41 +08:00 via Android
    我现在是 clonezilla 镜像盘 然后是一键 shell 改 IP Host 及个性化设置
    visitantzj
        23
    visitantzj  
       2019-01-17 12:34:42 +08:00
    关注一下,像 rsync 这样直接把绝大部分文件备份可行么,到时候就干净系统再覆盖一下
    itskingname
        24
    itskingname  
       2019-01-17 12:40:13 +08:00 via iPhone
    为什么不用 Docker 呢
    F1024
        25
    F1024  
       2019-01-17 12:41:51 +08:00
    写个自动安装脚本
    iorilu
        26
    iorilu  
       2019-01-17 12:42:30 +08:00 via iPhone
    用 docker 不就行,把初始环境装好做成 image,以后直接用啊,顺便还可以做版本控制随时切换任意版本
    xpresslink
        27
    xpresslink  
       2019-01-17 12:45:57 +08:00
    经常装 Linux 系统,这话说得很笼统。
    云环境,物理机,虚拟机里面,装 1 个,装 10 个还是 50 个,这个差别很大。
    使用的策略和方法也非常不同。
    STRRL
        28
    STRRL  
       2019-01-17 12:53:53 +08:00 via Android
    刚好看到这么一个工具 叫 azk 貌似刚刚起步
    kernel
        29
    kernel  
       2019-01-17 13:20:11 +08:00 via Android
    我就是一个几百行的脚本,因为经常要装 vps,一键全搞定
    yylucifer
        30
    yylucifer  
       2019-01-17 13:51:03 +08:00
    似乎楼主只想要一个 repo 或者一套脚本
    而不是实施方案。。。例如 ansible 啥的我觉得楼主是知道的。。
    guoqiao
        31
    guoqiao  
       2019-01-17 13:53:11 +08:00
    我很早就有跟楼主一样的需求,bash 脚本,python 脚本,dotfiles 什么的都试过。最后发现这个事情没法一劳永逸的,而且会不断演化,比如集成新的工具,支持新的环境。所以最后一定会代码化。我最后的选择是 Ansible。
    aaa5838769
        32
    aaa5838769  
       2019-01-17 13:58:53 +08:00
    docker ansible
    playnoa
        33
    playnoa  
       2019-01-17 14:04:01 +08:00 via Android
    hyper-v,快照树,恢复任何版本只需 3-5 秒
    weck
        34
    weck  
       2019-01-17 14:33:40 +08:00
    如果 lab 有 snapshot 功能可以试试创建 snapshot,然后初始化只需要 revert to snapshot,当然也可以使用 docker
    sundev
        35
    sundev  
       2019-01-17 14:50:32 +08:00 via iPhone
    我感觉像树莓派镜像那样挺好的,直接恢复,然后第一次启动时候对系统进行初始化
    lfzyx
        36
    lfzyx  
       2019-01-17 14:56:40 +08:00
    PXE
    lozzow
        37
    lozzow  
       2019-01-17 15:23:23 +08:00 via iPhone
    再生龙
    luozic
        38
    luozic  
       2019-01-17 15:30:45 +08:00
    docker 搞定
    NB40B938mff85mtq
        39
    NB40B938mff85mtq  
       2019-01-17 15:42:52 +08:00
    直接做镜像不就好了。。。。
    neverwin
        40
    neverwin  
       2019-01-17 17:01:48 +08:00
    最喜欢手动装系统了)逃
    toyland
        41
    toyland  
       2019-01-17 17:04:27 +08:00
    很多 Linux 发行版都支持无人值守安装,比如 Debian/Ubuntu 在安装时可以读取事先准备好的配置 preseed.cfg 、CentOS 也有类似的 ks.cfg ,其中可以更改系统默认配置或者添加额外要安装的软件包。
    HFcbyqP0iVO5KM05
        42
    HFcbyqP0iVO5KM05  
       2019-01-17 17:11:56 +08:00 via Android
    每次安装 /编译重要软件的时候都会写成 bash 脚本,把必要的配置文件也备份,然后推到 github
    honglongmen
        43
    honglongmen  
       2019-01-17 17:31:54 +08:00
    这种一般都是先装好个基本完整的主机, 然后快照恢复或者复制镜像.不过 31 楼说的对,迟早要更新各种环境,细微变化.

    觉得还是 docker 好点和方便点, 配上 shell 脚本应该可以了吧.
    hei1000
        44
    hei1000  
       2019-01-17 17:42:08 +08:00
    我个人电脑一般都是 dotfiles 以及各种放到 github 备份,其他本地文件什么的放到硬盘,如果是公司那种一个做好的系统要安装到多个服务器上面,貌似直接做镜像的
    zhouyut001
        45
    zhouyut001  
       2019-01-17 17:45:49 +08:00
    目前想到的也只有系统相同的情况下,备份主要的配置文件,到时候只需要 yum/ apt 装一次,把所有文件覆盖进去,重启完事儿。
    zhouyut001
        46
    zhouyut001  
       2019-01-17 17:47:03 +08:00
    借贴求 Linux 整盘(一个硬盘都是系统目录)备份成镜像的方法,像 ghost 一样直接恢复。。。。
    hxroyal
        47
    hxroyal  
       2019-01-17 19:10:57 +08:00
    docker 最方便
    lekai63
        48
    lekai63  
       2019-01-17 19:12:39 +08:00 via iPhone
    bash 脚本完成简单任务:新建用户,改端口,放公钥,装 docker。
    剩下的就是 docker 的事了。
    stebest
        49
    stebest  
       2019-01-17 21:01:58 +08:00
    直接把环境封装成系统镜像啊
    hanxiV2EX
        50
    hanxiV2EX  
       2019-01-18 06:49:06 +08:00 via Android
    dotfiles 写个一键安装脚本,可以参考我的。
    https://github.com/hanxi/dotfiles
    wanwaneryide
        51
    wanwaneryide  
       2019-01-18 09:05:58 +08:00
    配置好环境,然后自己做成一个系统的镜像就行了
    Rheinmetal
        52
    Rheinmetal  
       2019-01-18 10:46:23 +08:00
    @zhouyut001 可以试试 wimlib-imagex 虽然是给 windows 镜像写的 不过可以跨平台
    fangzheng
        53
    fangzheng  
       2019-01-18 14:09:13 +08:00
    用 virtualbox,先装个 mini 版的 CentOS1.vdi ,然后使用 virtualbox 的复制功能即可。
    loser
        54
    loser  
       2019-01-21 17:17:35 +08:00
    我以前喜欢用 shell 脚本,crt 连上后下载写好脚本全部自动配置
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5903 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:07 · PVG 10:07 · LAX 18:07 · JFK 21:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.