python urllib2 cpanel api. Использование Cpanel API в скриптах python

Стал вопрос как автоматизировать задачи по созданию\управлению хостинг-аккаунтами в панели управления WHM/Cpanel с помощью python. Немного поисков и экспериментов — все оказалось не так сложно с библиотекой python urllib2…

Все что нам нужно — это установленный python ( у меня версия 2.6), модуль urllib3, а также, хост с установленной панелью Cpanel для экспериментов.
Установка модуля python urllib3:

pip install urllib3
или
easy_install urllib3

просмотреть все доступные функции Cpanel API можно в документации Cpanel SoftwareDevelopmentKit/XmlApi. Пример будем делать на основе функции List Accounts — listaccts.

Авторизация с помощью логина и пароля WHM:
# hostname Вашего сервера с панелью Cpanel нужно будет прописать вместо unixblog.org.ua

import urllib2, base64
username = 'root'
passw = 'somepass'
req = urllib2.Request('https://unixblog.org.ua:2087/xml-api/listaccts', {}, {'Authorization':'Basic ' + base64.b64encode( username + ':' + passw ) } )
res = urllib2.urlopen(req)
print res.read()

Авторизация с помощью хэша(ключа) WHM, который можно создать в панели WHM в разделе «Setup Remote Access Key»:
#копируем созданный хэш из WHM на сервер с скриптом, неапример, в файл /my_hash

import urllib2
def RHash():
remote_key = "/my_hash"
f = open(remote_key, "r")
remote_key = f.read().replace("\n", "").rstrip()
auth = "WHM root:" + remote_key
return auth
remote_key = RHash()
url = "https://unixblog.org.ua:2087/xml-api/listaccts"
req = urllib2.Request(url, headers = {"Authorization": remote_key})
handle = urllib2.urlopen(req)
xml_data = handle.read()

print xml_data

Теперь можем использовать Cpanel API с помощью python, просто скопипастить код, изменить хост в url, путь к файлу хэша или пароль (в зависимости от выбранного метода) и должно выдать список аккаунтов, проверено. Дальше уже подставление и использование переменных, обработка результата xml — зависит от фантазии программиста 😉

6 comments on “python urllib2 cpanel api. Использование Cpanel API в скриптах python

  1. дмитри 16.09.2011 01:07

    Подскажите где найти на php api под cpanel ?

  2. admin 16.09.2011 01:18

    как где, в документации Cpanel 🙂 docs.cpanel.net/twiki/bin/view/SoftwareDevelopmentKit/ApiAuthentication

  3. Graham G. 12.01.2012 20:27

    Thanks for the code! I’m using this in an automated python script and didn’t want to restore to using PHP!

  4. admin 19.01.2012 23:28

    welcome 😉

  5. thecore 14.02.2013 11:00

    Что-то вы увлеклись. используете urllib2, ставите какой то urllib3 🙂

  6. admin 06.03.2013 16:28

    уже не помню если честно, давно было )
    Но, кажется, библиотека urllib3 включает в себя urllib2.
    это не от фанаря, все что писал проверил и тестировал на тот момент 😉

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>