V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
asdasdqqq
V2EX  ›  Linux

求助方案:项目的运行软件的配置文件如何科学管理?

  •  
  •   asdasdqqq · 2021-08-03 18:25:00 +08:00 · 1810 次点击
    这是一个创建于 1200 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前的方法是 mv nginx.conf nginx.conf.bak20210803 但是这样的话不易于追溯、回滚,也容易丢失。 现在的想法是,每个 ip 创建一个文件夹,文件夹下的路径跟服务器的路径一致,然后统一收集放到 git 下。 如 gitfolder/10.10.10.100/etc/nginx/nginx.conf gitfolder/10.10.10.100/etc/xxx.conf gitfolder/10.10.10.101/etc/nginx/nginx.conf gitfolder/10.10.10.101/etc/xxx.conf ... 更新再通过脚本更新。

    你们的服务器是怎么管理的,有没有更好的方案?比如利用某软件现有功能管理( ansible ?)?

    10 条回复    2022-11-03 09:46:12 +08:00
    IgniteWhite
        1
    IgniteWhite  
       2021-08-03 18:39:40 +08:00
    在用一个简单却强大的工具 dotbot https://github.com/anishathalye/dotbot

    能使用各种按条件的 hook,实现不同机子的 dotfile 管理。dotbot 作为 submodule,整个 dotfiles 用 git 维护。点进我 github 的 dotfiles 是个例子,虽然是个人配置文件但是也针对不同机子和服务器的。
    huangzxx
        2
    huangzxx  
       2021-08-03 23:50:14 +08:00
    我们用 ansible-playbook
    asdasdqqq
        3
    asdasdqqq  
    OP
       2021-08-04 02:54:15 +08:00 via iPhone
    @IgniteWhite get 新名词 dotfiles👍
    asdasdqqq
        4
    asdasdqqq  
    OP
       2021-08-04 02:54:37 +08:00 via iPhone
    @huangzxx 恩 参考经验 谢谢
    sadfQED2
        5
    sadfQED2  
       2021-08-04 09:22:17 +08:00 via Android
    我们是把配置文件以及 dockerfile 都直接放到项目路径下面
    huangmingyou
        6
    huangmingyou  
       2021-08-04 11:12:28 +08:00
    ansible playbook , 并且通过 git 进行版本管理。
    libook
        7
    libook  
       2021-08-04 11:30:33 +08:00
    可以考虑用“配置中心”,有一些专门的软件和方案可以做这个。

    如果跑在 VPS 里,并经常弹性增加和释放服务器的话,很多云厂商都有 VPC 的镜像功能,改配置可以打新镜像,然后用新镜像增加新的服务器,并释放旧的服务器,就完成了配置的更新,当然这个要求配置的修改可以无缝迁移。

    如果你用 k8s 的话,可以用 k8s 的 secrets 方案 https://kubernetes.io/docs/concepts/configuration/secret/
    asdasdqqq
        8
    asdasdqqq  
    OP
       2021-08-05 14:54:50 +08:00
    @huangzxx
    @huangmingyou
    两位大佬可否发 yml 文件出来学习下
    huangmingyou
        9
    huangmingyou  
       2021-08-05 16:24:16 +08:00
    ---
    - name: backup config
    shell: tar czpf /etc/nginx$(date +%Y%m%d%H%M).tgz /etc/nginx
    - name: sync nginx config
    synchronize:
    src: "./roles/nginx-orig-gallery/files/{{ ansible_ssh_host }}/"
    dest: /etc/nginx/
    archive: yes
    delete: false
    recursive: yes
    owner: no
    group: no

    就是简单的做一个目录 rsync 拷贝。目录按 ip 地址或者域名作为目录名,放到 files 目录下。
    qinsi
        10
    qinsi  
       2022-11-03 09:46:12 +08:00
    @IgniteWhite 在用,确实不错。不过时常新机子 github 访问不了导致无法部署到新机器。感觉实现有点复杂,不太优雅。ansible 应该是个有前途的方式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2738 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:59 · PVG 20:59 · LAX 04:59 · JFK 07:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.