Cloudera Manager API で Cloudera Manager Admin Console の TLS 化する備忘録

Configuring TLS Encryption for Cloudera Manager Admin Consoleの"Step 2: Enable TLS encryption and specify Server keystore properties."を、Cloudera Manager API で変更するメモ。
デフォルトポートの7180がアクセス制限されてるので、初期インストール後、許可されてるポートにとりあえず変えたいみたいなそんな時用。

メモ

キーストア作ったり、再起動部分は省略

設定見て
curl -X GET -u "admin:xxxxx" -i http://localhost:7180/api/v1/cm/config
curl -X GET -u "admin:xxxxx" -i http://localhost:7180/api/v1/cm/config?view=full

設定入れ
curl -X PUT -H "Content-Type:application/json" -u admin:xxxxx -d '{ "items": [
{ "name" : "HTTPS_PORT", "value" : "8443" },
{ "name" : "HTTP_PORT", "value" : "8080" },
{ "name" : "WEB_TLS", "value" : "true" },
{ "name" : "KEYSTORE_PATH", "value" : "/etc/cloudera-scm-server/sslkeystore" },
{ "name" : "KEYSTORE_PASSWORD", "value" : "xxxxxxxxxx" }
] }' 'http://localhost:7180/api/v1/cm/config'

注意点とか

  • ポートは1024以上にしておかないとjettyがポート取れずに起動しなくなる
2015-04-04 11:56:04,828  INFO [WebServerImpl:mortbay.log@67] jetty-6.1.26.cloudera.4
2015-04-04 11:56:04,835  WARN [WebServerImpl:mortbay.log@76] failed SslSocketConnector@0.0.0.0:443: java.net.BindException: Permission denied
2015-04-04 11:56:04,835  WARN [WebServerImpl:mortbay.log@76] failed SelectChannelConnector@0.0.0.0:80: java.net.SocketException: Permission denied
2015-04-04 11:56:04,836  WARN [WebServerImpl:mortbay.log@76] failed Server@5e04d6b0: org.mortbay.util.MultiException[java.net.BindException: Permission denied, java.net.SocketException: Permission denied]
  • API v1 ~ v9くらいまであるっぽいけど、v9だと情報取れなかった。CDHバージョンとAPIバージョンのサポートマトリクスってどっかに無いんだろうか。

Cloudera Manager API v1
Cloudera Manager API v9

  • cm_apipython も入れたけど、CLIでさらっと再起動かけれるのでこれもこれで結構嬉しい

cloudera/cm_api · GitHub