Я использую Fabric
для автоматизации некоторых из моих рабочий процесс, большая часть которого связана с манипулированием экземплярами EC2.
Я ищу способ поддерживать мой файл .ssh / config
в актуальном состоянии, так как я регулярно включаю и выключаю экземпляры EC2, и мне очень полезно, если я могу использовать ssh в них легко для отладки и так далее.
Записи в моем файле конфигурации SSH выглядят следующим образом
Host ins_id
Hostname xxxxxxxx.com
User ubuntu
IdentityFile ~/.ssh/kp.pem
На данный момент я делаю что-то вроде следующего (используя 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
как словарь и абстрагироваться от чтения / записи файла. . .
Спасибо за любые предложения!