coreserver ssh登録 Python Script で困っている人がいるはず……

coreserverのssh登録、サーバーをリニューアルされた頃から、Pythonスクリプトで正常に登録できなくなっていた模様。Launch Agentの構文に不具合がある? cronだと動くのか? と悩みつつ、しばらくは「面倒やなぁ」と思いつつ、30日ごとにコンパネにログインしてボタンをクリックしていたんですが……

coreserverのssh登録、サーバーをリニューアルされた頃から、Pythonスクリプトで正常に登録できなくなっていた模様。

ええ加減いやになってきて調べて見たら、ホスト名とか表示されるようになってる。
なんか関係あるんかと思ってソースを追うが、ん? 関係あらへんような………

答えはもっとシンプルでした。

最終 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 に登録するなりで自動化しましょう。