gpt4 book ai didi

python - 使用 Python 自动更新 SSH 配置文件的首选方法?

转载 作者:太空狗 更新时间:2023-10-29 23:55:41 24 4
gpt4 key购买 nike

我正在使用 Fabric 来自动化我的一些工作流程,其中大部分涉及操作 EC2 实例。

我正在寻找一种方法来使我的 .ssh/config 文件保持最新,因为我会定期启动和关闭 EC2 实例,如果可以的话,这对我很有帮助很容易通过 ssh 进入它们进行调试等。

我的 SSH 配置文件中的条目如下所示

Host ins_id
Hostname xxxxxxxx.com
User ubuntu
IdentityFile ~/.ssh/kp.pem

目前,我正在做类似下面的事情(利用 Fabricboto),坦率地说这是一种垃圾方法:

def my_cool_spin_up_function(self):
. . .
. . .
ssh_conf = os.path.join(homedir, '.ssh/config')
ssh_info = '\n'.join(['Host %s' % name,
'Hostname %s' % ins.dns_name,
'User %s' % env.user,
'IdentityFile %s' % kp_loc,
'\n'])
w_com = 'echo %s | cat - %s | tee %s > /dev/null' % (ssh_info, ssh_conf, ssh_conf)
local(w_com)

如您所见,每次调用它时,它都会继续添加到我的配置文件中,这很好,因为 SSH 为配置中的每个主机占用了第一部分,但这意味着文件不断构建。 . .

我想知道是否有任何 Python 库允许将 .ssh/config 视为更多的配置文件,其相关部分可以随时更新。例如,如果您可以简单地将 .ssh/config 视为字典并抽象出文件读/写,那就太棒了。 . .

感谢您的任何建议!

最佳答案

我们为这种配置做的是维护一个配置片段目录,可以根据需要添加/删除,然后按照以下行做一些事情:

cat .ssh/config.d/* > .ssh/config

这将按词汇顺序追加内容,这意味着顺序取决于您选择如何命名文件。这使得旧配置过期、删除特定项目以及以其他方式控制配置文件变得非常容易。

关于python - 使用 Python 自动更新 SSH 配置文件的首选方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8402780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com