Посты с тэгом системное администрирование


Удалённое исполнение системных команд по запросу через сокеты на Python 3. Часть 2. Протокол передачи данных


В предыдущей статье я рассказал как создать сервер и клиент на Python 3, используя встроенные сокеты. Но у этого приложения было много недостатков, которые я попытаюсь исправить в этой и последующих статьях.

Так какими же недостатками обладает наше приложение?
  • Отсылается один единственный пакет, длина которого не может превышать заранее заданной границы в 1 Кбайт.
  • Приложение без проверки передаёт аргумент, принятый из сети, в оболочку (URL).
  • Недостаток функциональности. Мы не можем, например, скачать все изображения с Хабра, или скачать отдельный хаб.

Сегодня я расскажу как решить первую проблему, а заодно и немного о TCP.

Описание протокола

Мы использовали «голый» протокол TCP для передачи данных между сервером и клиентом. TCP — это потоковый протокол, он передаёт данные последовательным набором байт. Передавая команду с аргументами по сети в первой верс


Salt и Ansible — системы управления конфигурацией на языке Python — видео с DevConf 2014



Александр Чистяков работает главным инженером в компании Git in Sky, любит зеленый чай, белыми ночами превращается в котика, а черными — в обезьяну. Несколько лет назад выступил публично на DevConf и с тех пор не может остановиться.
Наиболее известные средства управления конфигурацией по ряду причин написаны на языке Ruby, а что же делать тем, кто не хочет или не может использовать Ruby в своей инфраструктуре? Python-разработчики не остались в долгу и создали SaltStack и Ansible — простые и эффективные средства, о которых вы можете увидеть в видео с DevConf.
Читать дальше →


[Из песочницы] Samba4 — использование Python Scripting Interface


Samba4 имеет встроенный интерфейс на Python. Многие утилиты (samba-tool, например) полностью реализованы на Python с применением этого интерфейса.

Все, что делалось из LDAP-интерфейса, можно сделать на Samba 4 Python Scripting. Преимущества — файловый доступ, значит высокая скорость, некоторые фичи, которых нет в LDAP. Например, можно взять хэш паролей пользователей из одной базы и перекинуть в другую. Да и самих пользователей с их SID-ами, паролями и всем прочим перекинуть в другой домен (без заморочек с SID-history).
Читать дальше →


[Из песочницы] Добавляем IP телефоны в отдельный Pool IP адресов по Mac адресу


Всем привет!
Этот топик о том, как я использовал Python для написания скрипта, который производит следующие действия:

  1. Выгружает список активных мак адресов с Микротика
  2. Выбирает мак адреса IP телефонов
  3. Помещает их в отдельный pool IP адресов

Кому интересно прошу пожаловать под кат.
Читать дальше →


SaltStack: использование шаблонов jinja и хранилища pillar для гибкой настройки конфигураций


Что здесь интересного?


Статья предназначена для тех кто использует или думает использовать SaltStack в качестве инструмента для управления конфигурациями. Постараюсь очень кратенько поделится опытом использования этой системы для гибкого управления конфигурациями сервисов на примере Tinyproxy.
Это вторая статься в серии о SaltStack, первую читайте здесь.
Читать дальше →


Запуск локальных ssh/telnet/vnc клиентов по ссылке из карты Zabbix


Множество стоек, каждая плотно упакована серверами, маршрутизаторами, коммутаторами и прочими kvm'ами.
Нужен какой-нибудь удобный способ рулить всем этим хозайством, быстро подключаться к нужному оборудованию и
производить его настройку. Прямо чтобы пара кликов мышью и оп — перед тобой консоль нужного коммутатора.

Для мониторинга наших подопечных мы используем Zabbix.
Так почему бы не приспособить сей дивный инструмент и для этой задачи.
Ведь было бы очень удобно ткнуть в карте Zabbix на нужную стойку, перейти на её подкарту и, выбрав железку,
запустить локальный ssh/telnet/vnc клиент на своем компьютере.

Озадачившись идеей, я начал мучать поисковые машины в надежде отыскать варианты реализации.
Был найден данный тред на форуме Zabbix, но мне хотелось запускать именно локальные программы на моей машине кликом по ссылке в карте.
Еще некоторое время поплутав по закоул


Deploy с помощью Salt



До сих пор во многих компаниях deploy создает большие проблемы и может занимать дни, недели и в особо запущенных случаях месяцы. Но ситуация не безнадежна. Существует много инструментов и практик, способных помочь в этом нелегком деле. Вот только эти инструменты чаще всего за один-два дня не освоишь, а сроки горят.

Чего обычно хочется:
  • Возможность поднять проект локально на машине разработчика. Весь или хотя бы частями. Причем очень хочется, чтобы Dev конфигурация отличалась от Prod в минимуме паратемров. Это позволит избежать “work on my machine” багов. Да и вообще, когда один разработчик работает на OS X, другой на Windows, а продакшен на Debian, то жди беды, это не считая того, что каждый делает работу по настройке окружения.
  • Dev конфигурацию хочется разворачивать на любой машине и ОС в пару команд в консоли. Это опять же позволит уменьшить ф


Salt — продолжение


Некоторое время назад я писал о замечательном продукте: Salt.

Время не стоит на месте, и Salt тоже развивается.

Из последних изменений могу отметить:
— Попытка монетизации проекта (Проект переехал на .com и обзавелся платной поддержкой)
— Over States
— Node Groups
— Очень много нового в документации
— Субъективно более качественная поддержка windows

Читать дальше →


[Из песочницы] Мульти-хостинг django приложений с помощью nginx + uwsgi + virtualenv

Задача: развернуть несколько django-проектов, использующих разные версии django и разные версии питона на одном сервере.

Инструкция приводится для ОС Ubuntu 12.04.
Читать дальше →



[Из песочницы] Мониторинг сервисов Windows средствами PowerShell и Python


Предыстория:
Сам я работаю в техотделе одной брокерской компании в Торонто, Канаде. Так же у нас есть еще один офис в Калгари. Как-то после планового установления Windows обновлений на единственном доменном контроллере в удаленном офисе не запустился W32Time сервис, который отвечает за синхронизацию времени с внешним источником. Таким образом в течение около недели время на сервере сбилось приблизительно на 20 секунд. Наши рабочие станции на тот момент времени по умолчанию получали время с контроллера. Сами понимаете, что случилось. В торгах время очень важно, разница в секунды может решить многое. Первыми расхождение во времени, к сожалению, заметили наши брокеры. Наш отдел техподдержки, состоящий по сути из 3 человек за это распекли. Надо было срочно что-то делать. Решением было применение групповой политики, которая отсылала все машины к внутреннему NTP серверу, работающему на CentOS. Еще были проблемы с DC Barracuda Agent,