Мне было поручено создать инструмент командной строки, который мы будем предоставлять нашим корпоративным клиентам, чтобы они могли использовать API для загрузки данных на нашу платформу. API работает со стандартными запросами cURL, поэтому я могу выполнять большую часть основных функций с помощью простых сценариев bash, хотя я хотел бы предоставить что-то надежное и действительно упрощающее их использование, и я не знаю, что я использую незнаю. Прошло добрых 8 лет с тех пор, как я действительно проделал серьезную работу с системным администратором.
Большинство хороших инструментов, которые я использую в наши дни, написаны на Ruby или Python и имеют стандартный процесс распространения (например, Gems). Однако я знаю, что у rhel и других платформ есть свои собственные менеджеры пакетов.
Наконец, вопрос: в наши дни, какой язык / метод распространения мне следует рассмотреть, чтобы охватить самый широкий спектр платформ без необходимости создавать совершенно разные версии для каждой платформы?
Я также хотел бы получить ваши общие отзывы о создании подобных проектов или ссылки на проекты, которые, по вашему мнению, сейчас хорошо справляются с этой задачей и имеют открытый исходный код, который я мог бы прочитать.
Заранее спасибо!
Что ж, ваш вопрос довольно широкий, но я писал инструменты системного администратора на Python в течение последнего года. Итак, поскольку вы запрашиваете общие отзывы, вот некоторые вещи, с которыми я столкнулся.
Ты можешь использовать urllib2 написать свой curl
запрос в чистом коде Python. Если вам нужны только базовые запросы REST, вы можете посмотреть Запросы или любой другой клиент REST на Python.
Если вам нужно поддерживать rhel 5 (как и мне), вы не сможете использовать что-либо, что находится в python> 2.4.
Для распространения: вы можете использовать setuptools Все, что вам нужно сделать, это создать setup.py
сценарий, который сообщает setuptools, как выполнить установку. Затем вы можете загрузить архив в Pypi
После этого ваши клиенты могут установить ваши инструменты с помощью:
easy_install toolname
или
pip toolname
easy_install или pip загрузят архив из pypi и выполнят инструкции в setup.py
сценарий.
В качестве альтернативы, если вы хотите распространять на корпоративные серверы, теперь вы также можете очень легко создавать обороты в минуту:
python setup.py bdist_rpm
Это будет использовать yout setup.py и создать из него rpm, то же самое должно быть возможно для .deb (с некоторыми дополнительными плагинами bdist)
Я работаю в Гентском университете, и у нас есть открытый исходный код некоторых инструментов / библиотек Python, которые мы написали, например, вы, вероятно, начнете с анализа аргументов командной строки, мы написали generaloption.py который расширяет базовый анализатор параметров python 2.4 и дает ему несколько интересных новых опций. (например, позволяет по умолчанию перезаписать любой параметр командной строки переменной среды). Также расширенный регистратор называется fancylogger.py
Вы можете посмотреть в этом репозитории и кое-что еще, что может помочь в написании сценариев системного администратора под python 2.4.