Я использую Fabric
для автоматизации некоторых моих рабочих процессов, большая часть которых связана с манипулированием экземплярами EC2.
Я ищу способ поддерживать мой файл .ssh/config
в актуальном состоянии., так как я регулярно запускаю и выключаю экземпляры EC2, и для меня очень полезно, если я могу легко использовать ssh для их отладки и т. д.
Записи в моем конфигурационном файле SSH выглядят так*
В данный момент я делаю что-то вроде следующего (использую 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)
Как видите,это будет продолжать добавляться к моему файлу конфигурации каждый раз, когда он вызывается, и это нормально, потому что SSH берет первый раздел для каждого хоста в конфигурации, но это означает, что файл накапливается и увеличивается.,.
Мне интересно, есть ли какие-нибудь библиотеки Python, позволяющие обрабатывать .ssh/config
как файл конфигурации, соответствующие части которого можно обновлять как и когда.Например, было бы замечательно, если бы вы могли просто трактовать .ssh/config
как словарь и абстрагироваться от чтения / записи файла.,.
Спасибо за любые предложения!