GeekFactory

int128.hatenablog.com

Keycloakでユーザを一括追加するツールを作った

Keycloakにユーザを一括追加するツール Keycloak Bulk を作りました。

Keycloakで多数のユーザを追加したい場合、一人ずつ手作業で登録する必要があります。JSONでユーザリストを書けばインポートできるようですが、やや複雑な作業が必要になります。使いやすいインポートツールが見当たらなかったので作りました。

How to use

スプレッドシートで下記のようなユーザリストを作ります。

Username FirstName LastName Email InitialPassword
alice Alice Foo alice@example.com jrkz454f5b

セルをコピーしてKeycloak Bulkに貼り付けます。CSV or TSV形式であれば大丈夫です。

f:id:int128:20180214140141p:plain:w720

インポートボタンをクリックすると、一人ずつKeycloakに追加されます。すでに同じユーザ名が存在する場合は無視されます。

How to run

Keycloak BulkはDockerで簡単に実行できます。詳しい実行方法は下記を参照してください。

github.com

vscodeでWSLのnode.jsをデバッグ実行する

Visual Studio Code(vscode)はnode.jsのデバッグに対応していますが、Windows Subsystem for Linux(WSL)のnode.jsも利用できるようです。

debugging Node.js in the Linux subsystem on Windows:

If you want to run Node.js in the Linux subsystem on Windows (WSL), you can use the approach from above as well. However to make this even simpler, we've introduced a useWSL flag to automatically configure everything so that Node.js runs in the Linux subsystem and source is mapped to files in your workspace.

https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_remote-debugging

以下の環境で試してみました。

vscode.vscode/launch.json を作成します。

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "node (WSL)",
      "useWSL": true,
      "program": "${workspaceFolder}/index.js"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "node (macOS)",
      "program": "${workspaceFolder}/index.js"
    }
  ]
}

なお、macOSなどで useWSL: true にするとエラーになってしまうため、WSL専用の構成を追加する必要があります。

WSLでnodeが実行できることを確認します。コマンドラインで以下を実行してバージョンが表示されればOKです。

wsl.exe node -v

nvmを使っている場合は .bashrcnvm.sh を読み込んでおく必要があります。私は普段zshを使っているため、bashでnvmを有効にするのを忘れていてハマりました。

vscodeデバッグnode (WSL) を選び、無事にnode.jsが起動したらOKです。

kopsでルートボリュームタイプにstandardを指定できるようになった

kopsではEC2のルートボリュームに割り当てるボリュームタイプに gp2io1 しか指定できない問題がありました。検証用途では standard で十分なので、standard も指定できるように入力値チェックを修正するPRを送りました。

github.com

以下のようにインスタンスグループの rootVolumeTypestandard を指定できるようになりました。

spec:
  rootVolumeType: standard

https://user-images.githubusercontent.com/321266/35202351-821693c6-ff65-11e7-8fef-64d179e4a383.png

お仕事だと微々たる金額の差ですが、個人の検証用途では役に立つと思います。

次のリリースに含まれると思います。1.9.0になるのかな。