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

2021-08-03 18:25:00 +08:00
 asdasdqqq

之前的方法是 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 ?)?

1809 次点击
所在节点    Linux
10 条回复
IgniteWhite
2021-08-03 18:39:40 +08:00
在用一个简单却强大的工具 dotbot https://github.com/anishathalye/dotbot

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

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

如果你用 k8s 的话,可以用 k8s 的 secrets 方案 https://kubernetes.io/docs/concepts/configuration/secret/
asdasdqqq
2021-08-05 14:54:50 +08:00
@huangzxx
@huangmingyou
两位大佬可否发 yml 文件出来学习下
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
2022-11-03 09:46:12 +08:00
@IgniteWhite 在用,确实不错。不过时常新机子 github 访问不了导致无法部署到新机器。感觉实现有点复杂,不太优雅。ansible 应该是个有前途的方式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793441

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX