Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Fabric для управления серверами

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 15 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Fabric для управления серверами (20)

Anzeige

Weitere von Python Meetup (20)

Aktuellste (20)

Anzeige

Fabric для управления серверами

  1. 1. Fabric для управления серверами Alex Zaitsev, Chief Cloud Architectat
  2. 2. Какая возникла проблема * человек, работающий с большим количеством серверов, не станет играть в эту игру 1
  3. 3. Что нужно? • Первоначальная настройка сервера • Деплой софта • Управление парком серверов 2
  4. 4. Тут нам помогут: Puppet Chef Fabric * лого нет, но есть картинка по запросу в гугле 3
  5. 5. Почему Fabric? • Легкий и простой • Гибкий • Не требует клиентской части 4
  6. 6. Fabric - для айтишников, которые любят порядок * В ICQ вряд ли используют fabric 5
  7. 7. Fab, fab, fab... пишем первый fabfile - упорядоченный набор методов from fabric.api import env, run env.hosts = [‘localhost’] def my_task(): run('rm -rf /*') 6
  8. 8. А если много серверов? * датацентр SUN мог бы не стать заброшенным, если бы они использовали автоматизацию на Python 7
  9. 9. А если много серверов? from fabric.api import env, run env.roledefs = { 'web': [‘server1’, ‘server2’, ‘server3’], ‘dev’: [‘server3’, ‘server4’], } @roles(‘web’) def my_task(): run('rm -rf /*') 8
  10. 10. Михалыч, запускай! from fabric.api import execute from fabfile import my_task execute(my_task) Из кода: # fab my_task Из консоли: 9
  11. 11. Не меняйте привычки # fab my_task -i /path/to/key.pem # fab my_task -H server3 -u dev -p passwd # fab my_task --hosts=server1,server5 10
  12. 12. Конфигурирование * Кадр из какого-то фильма ужасов 11
  13. 13. Конфигурирование env.user = 'dev' env.parallel = True env.linewise = True env.skip_bad_hosts = True env.connection_attempts = 3 env.key_filename = ssh_key_path env.warn_only = True 12
  14. 14. Не только запуск команд def copy_to_remote_server(): put(‘/local/path’, ‘/remote/path’) def copy_from_remote_server(): get('/remote/path', '/local/path) 13
  15. 15. Буду рад пообщаться Саша Зайцев me@azaitsev.com twitter.com/adeby 14

×