Edw*_*rdr 6 python ssh configuration amazon-ec2 fabric
我正在使用Fabric
自动化我的一些工作流程,其中大部分涉及操纵EC2实例.
我正在寻找一种方法来保持我的.ssh/config
文件是最新的,因为我经常启动并关闭EC2实例,如果我可以轻松地调试它们以进行调试等,这对我很有帮助.
我的SSH配置文件中的条目如下所示
Host ins_id
Hostname xxxxxxxx.com
User ubuntu
IdentityFile ~/.ssh/kp.pem
Run Code Online (Sandbox Code Playgroud)
目前,我正在做类似以下的事情(利用Fabric
和boto
),坦率地说这是一种垃圾方法:
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)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,这只会在每次调用时都保留在我的配置文件之前,这很好,因为SSH在配置中为每个主机获取第一部分,但这意味着文件会逐渐增加...
我想知道是否有任何Python库允许将其.ssh/config
视为更多的配置文件,其相关部分可以随时更新.例如,如果您可以简单地将其.ssh/config
视为字典并抽象出文件读/写,那将是非常棒的...
谢谢你的任何建议!
我们为这种配置做的是维护配置片段的目录,可以根据需要添加/删除,然后执行以下操作:
cat .ssh/config.d/* > .ssh/config
Run Code Online (Sandbox Code Playgroud)
这将按词汇顺序附加内容,这意味着排序取决于您选择如何命名文件.这使得很容易使旧配置到期,删除特定项目,以及以其他方式控制配置文件.
归档时间: |
|
查看次数: |
2835 次 |
最近记录: |