coreserverのssh登録、サーバーをリニューアルされた頃から、Pythonスクリプトで正常に登録できなくなっていた模様。Launch Agentの構文に不具合がある? cronだと動くのか? と悩みつつ、しばらくは「面倒やなぁ」と思いつつ、30日ごとにコンパネにログインしてボタンをクリックしていたんですが……
ええ加減いやになってきて調べて見たら、ホスト名とか表示されるようになってる。
なんか関係あるんかと思ってソースを追うが、ん? 関係あらへんような………
答えはもっとシンプルでした。
最終 if ブロックの url が変更されてます。
いま検索して出てくるソースはこの2サイト。
[Python]CORESERVERのSSH登録を自動化する
coreserver の ssh 登録を pythonによって手動でやる
どちらも同じ内容(同じ人?)。
https://ss1.coressl.jp/www.XXX.coreserver.jp/jp/admin.cgi
となっていますが、
https://XXX.coreserver.jp/jp/admin.cgi
これでOK牧場。以下更新ソースです。
#!/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://XXX.coreserver.jp/jp/admin.cgi' ip = get_ip() regist_host(ip, url)
あとは cron を回すなり、Launch Agent に登録するなりで自動化しましょう。