想了解下大家是怎么管理大量脚本的,尤其是其中的数据库密码等信息

2021-04-10 11:23:10 +08:00
 imzxk

现状

公司目前有几百台虚拟机、几十个自动化作业任务和一堆脚本,其中很多都需要操作数据库。当前有这么几个场景:

  1. 直接运行在主机上的 python 和 shell 脚本:清理日志、重启服务、读写数据库之类的都有;
  2. 自动化作业平台:通过编排各节点串成自动化任务,节点也基本是执行一些脚本(传入参数、获取参数、传入后面的节点)

痛点

  1. 如果数据库有变动,比如更换实例、密码修改,涉及到一堆脚本都得跟着改。时间一长,脚本有没有使用、在哪个位置都不记得了;
  2. 自动化作业平台中的任务,数据库密码不能明文写在代码中,所以大家一般是通过参数传入。

脚本和自动化任务的数量还在一直增加,管理起来很混乱,想了解下大家一般是怎么做的,尤其是其中的系统、数据库信息。

3825 次点击
所在节点    Linux
17 条回复
GeruzoniAnsasu
2021-04-10 11:33:50 +08:00
堡垒机 /跳板机平台

脚本都放平台上
raaaaaar
2021-04-10 12:31:14 +08:00
没有数据库管理中心么
pancl
2021-04-10 13:20:22 +08:00
虽然没接触过,🌝那就开发一个系统,调度配置啥的
echowuhao
2021-04-10 13:24:01 +08:00
vault
LeeReamond
2021-04-10 13:27:31 +08:00
我倒是十分想知道你们靠人工管理怎么扩展到几百台虚拟机的业务的。。
imzxk
2021-04-10 13:51:38 +08:00
@raaaaaar 有的,但是没法用脚本获取密码
imzxk
2021-04-10 13:52:47 +08:00
@LeeReamond 业务一上线,就用了这么多,包括测试环境、生产环境
imzxk
2021-04-10 13:56:54 +08:00
@echowuhao 多谢啊,我去了解下
wzxlovesy
2021-04-10 14:28:41 +08:00
Ansible?
annielong
2021-04-10 15:35:16 +08:00
已经上规模了,就写个软件进行调度管理
aladdindingding
2021-04-10 15:50:09 +08:00
同 有没有什么开源项目可以管理
Salo
2021-04-10 15:53:41 +08:00
mmh
littlewing
2021-04-10 15:53:54 +08:00
配置管理中心
xuanbg
2021-04-10 16:10:28 +08:00
用支持按配置项进行配置的配置中心,譬如携程的 Apollo 。自己撸一个简单的轮子也行
onion83
2021-04-10 16:32:58 +08:00
环境变量
UnknownR
2021-04-10 16:55:23 +08:00
到了这个规模之后你们的运维是时候考虑搭一个平台了,密码等密钥统一存储,然后添加受认证的 API,脚本带着 token 或者 cert 去调 API 来获取密码,不同的环境隔离什么的都可以考虑进去,这样密码的变更只需要改一个地方就可以了,脚本本身不存密码,只有任务逻辑。环境里的设备也是有独立的设备发现或者注册的平台来管理,新增或删除的设备都只在一个平台里维护,脚本需要的是调 api 来获取要对着哪些机器跑,对应的密码再去密码管理平台调。
boris93
2021-04-10 18:29:24 +08:00
同意 #4 vault 是个好东西
脚本里的账号密码改成占位符
用 cicd 工具跑脚本的时候替换内容

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

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

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

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

© 2021 V2EX