- 2009-09-16 (水) 22:38
- CORESERVER | python | urllib
このBlogをホスティングしているCORESERVERは手頃で良いんだけど、SSH接続する前にWeb上の管理画面で、SSH接続のためホスト情報をサーバーに登録する必要があり、この作業が結構面倒くさい。一回登録すれば30日は有効なのだけど、その間に別の場所からSSH接続したいときは登録しなおさなければならない。なにか良い方法はないかなと捜していたら自動登録スクリプトを作成している方々がいました。
- coreserverのSSH登録を自動化するスクリプト – Geek Not Found
- xrea(coreserver) SSHホスト登録スクリプト – Kerosoft : Modus Operandi
要はIPアドレス、ID、パスワードなどをPOSTしてあげれば良いみたい。上のエントリーでは、ShellscriptとPerlで書かれていたので、内容を参考にしつつPythonで書きました。
#!/usr/bin/env python
# coding: utf-8
import urllib
def get_ip():
f = urllib.urlopen('http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip')
ip = f.read()
return ip
def regist_host(ip, url):
userid = 'ACCOUNT'
passwd = 'PASSWORD'
keyword = u'SSH登録'
encoding = 'shift-jis'
p = [
('id', userid),
('pass', passwd),
('remote_host', ip),
('ssh2', keyword.encode(encoding)),
]
params = urllib.urlencode(p)
#print params
up = urllib.urlopen(url, params)
#print up.read()
if __name__ == '__main__':
url = 'https://ss1.coressl.jp/www.sXX.coreserver.jp/jp/admin.cgi'
ip = get_ip()
regist_host(ip, url)
一応問題なくホスト登録出来たので大丈夫だとは思いますが、使用する場合は自己責任でお願いします。Pythonのバージョンは2.6で確認取っています。useridとpasswdは各自設定したものを、urlのsXXには自分のサーバ番号を入れて下さい。
クエリ文字列を作成するところでハマった点
クエリ文字列を作成する箇所(urlencode)をPython ライブラリリファレンスを参考にして作っていたのですが、どうも辞書で作るとクエリ文字列の順序が意図したように作れないみたい。
#!/usr/bin/env python
# coding: utf-8
import urllib
#ディクショナリの場合
query = {
'id': "userid",
'pass': "passwd",
'remotehost': "ip",
}
#タプルの場合
query2 = [
('id', "userid"),
('pass', "passwd"),
('remotehost', "ip"),
]
print urllib.urlencode(query)
print urllib.urlencode(query2)
実行結果
% python ~/python/bin/encode.py remotehost=ip&id=userid&pass=passwd #ディクショナリ id=userid&pass=passwd&remotehost=ip #タプル
これで小一時間悩みました。
- Newer: [memo]Blog引っ越しました。
- Older: [Python]ハードディスクの温度を定期的にTwitterにポストする
Comments:2
- ****** 10-06-04 (金) 3:33
- このコメントは管理者の承認待ちです
- ****** 10-06-22 (火) 4:13
- このコメントは管理者の承認待ちです
Trackbacks:0
- Trackback URL for this entry
- http://aoshiman.net/weblog/2009/09/16/coreserver_ssh/trackback/
- Listed below are links to weblogs that reference
- [Python]CORESERVERのSSH登録を自動化する from “南船北馬”
