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

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

  •  
  •   imzxk · 2021-04-10 11:23:10 +08:00 · 3868 次点击
    这是一个创建于 1357 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现状

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

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

    痛点

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

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

    17 条回复    2021-04-10 18:29:24 +08:00
    GeruzoniAnsasu
        1
    GeruzoniAnsasu  
       2021-04-10 11:33:50 +08:00
    堡垒机 /跳板机平台

    脚本都放平台上
    raaaaaar
        2
    raaaaaar  
       2021-04-10 12:31:14 +08:00 via Android
    没有数据库管理中心么
    pancl
        3
    pancl  
       2021-04-10 13:20:22 +08:00 via Android
    虽然没接触过,🌝那就开发一个系统,调度配置啥的
    echowuhao
        4
    echowuhao  
       2021-04-10 13:24:01 +08:00 via Android   ❤️ 1
    vault
    LeeReamond
        5
    LeeReamond  
       2021-04-10 13:27:31 +08:00
    我倒是十分想知道你们靠人工管理怎么扩展到几百台虚拟机的业务的。。
    imzxk
        6
    imzxk  
    OP
       2021-04-10 13:51:38 +08:00
    @raaaaaar 有的,但是没法用脚本获取密码
    imzxk
        7
    imzxk  
    OP
       2021-04-10 13:52:47 +08:00
    @LeeReamond 业务一上线,就用了这么多,包括测试环境、生产环境
    imzxk
        8
    imzxk  
    OP
       2021-04-10 13:56:54 +08:00
    @echowuhao 多谢啊,我去了解下
    wzxlovesy
        9
    wzxlovesy  
       2021-04-10 14:28:41 +08:00 via Android
    Ansible?
    annielong
        10
    annielong  
       2021-04-10 15:35:16 +08:00
    已经上规模了,就写个软件进行调度管理
    aladdindingding
        11
    aladdindingding  
       2021-04-10 15:50:09 +08:00
    同 有没有什么开源项目可以管理
    Salo
        12
    Salo  
       2021-04-10 15:53:41 +08:00 via iPhone
    mmh
    littlewing
        13
    littlewing  
       2021-04-10 15:53:54 +08:00
    配置管理中心
    xuanbg
        14
    xuanbg  
       2021-04-10 16:10:28 +08:00
    用支持按配置项进行配置的配置中心,譬如携程的 Apollo 。自己撸一个简单的轮子也行
    onion83
        15
    onion83  
       2021-04-10 16:32:58 +08:00
    环境变量
    UnknownR
        16
    UnknownR  
       2021-04-10 16:55:23 +08:00   ❤️ 1
    到了这个规模之后你们的运维是时候考虑搭一个平台了,密码等密钥统一存储,然后添加受认证的 API,脚本带着 token 或者 cert 去调 API 来获取密码,不同的环境隔离什么的都可以考虑进去,这样密码的变更只需要改一个地方就可以了,脚本本身不存密码,只有任务逻辑。环境里的设备也是有独立的设备发现或者注册的平台来管理,新增或删除的设备都只在一个平台里维护,脚本需要的是调 api 来获取要对着哪些机器跑,对应的密码再去密码管理平台调。
    boris93
        17
    boris93  
       2021-04-10 18:29:24 +08:00 via iPhone   ❤️ 1
    同意 #4 vault 是个好东西
    脚本里的账号密码改成占位符
    用 cicd 工具跑脚本的时候替换内容
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:48 · PVG 17:48 · LAX 01:48 · JFK 04:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.