約束の地

キャロ組

Rundeck 3 でユーザを追加する方法

結論

  • GUI からは(現時点では)無理
    • User Summary というメニュー項目がありますが、これはユーザとグループを閲覧できるだけです
  • realm.properties というファイルを編集する必要がある
  • realm.properties の場所は、オンプレ*1とDockerで異なり、それぞれの場所は以下のとおり
    • オンプレ
      • /etc/rundeck/realm.properties
    • Docker
      • /home/rundeck/server/config/realm.properties
  • パスワードを暗号化(ハッシュ化)する場合は別途作業が必要
    • 暗号化(ハッシュ化)された値を取得することは GUI から可能(別記事参照)
  • ユーザの権限を設定することは GUI から可能(別記事参照)

具体例

たとえば、yamada さんのパスワードを fugafuga にして、所属グループを foobar にする場合は以下のように書き加えます。ただしこれはパスワードを平文で書く場合です。

yamada: fugafuga,foo,bar

Docker での realm.properties について(ユーザの追加や削除について)

Docker で Rundeck を起動した場合は(現時点では)ユーザの追加や削除をするためには /home/rundeck/server/config/realm.properties を直接編集するしかありません*2。しかしながらコンテナに入っても vimemacsnano もないためにすぐに編集することができません。

となると Volumes で共有するか、となるわけですが、パーミッションの関係上、「コンテナ作成のときに」共有をしようとしても当該ファイルが共有されません*3

なので、一度共有なしでコンテナを立ち上げて、共有するファイルを $ docker cp CONTAINER_ID:/CONTAINER/NO/FILE /HOST/NO/FILE のようにして手元にもってきて、そのファイルを次に新規にコンテナを立ち上げるときにホスト側から共有する、とすれば大丈夫です。

あるいはホスト側に realm.properties を用意しておいて、$ docker cp /HOST/NO/realm.properties CONTAINER_ID:/home/rundeck/server/config/realm.properties のようにしてコンテナ側にコピーしてもよいかと思います。もちろんその場合はコンテナ内のどの場所に realm.properties を置くかを予め把握しておく必要があります*4

これらはどう考えてもイケてないと思うんですが、Docker の構造上、こうするしかないと思ってます*5

また、realm.properties を編集したあとは再起動が必要になります。

ちなみに、Docker 運用において共有するディレクトリは、公式ドキュメントによると、-v /home/protip/.ssh:/home/rundeck/.ssh-v data:/home/rundeck/server/data rundeck/rundeck などがよくあるプラクティスのようです。

公式ドキュメント

realm.properties の書式については以下の公式ドキュメントの PropertyFileLoginModule の後を参考にしてください。

補足

Rundeck 3 については粒度を細かくして記事にしているので、他の記事 も参考にするとよいかもしれません。

あと、困ったら何はともあれ 公式ドキュメント です。

*1:という表現は微妙ですが

*2:GUI から追加や削除ができない

*3:これは Rundeck のコンテナだけの話でなく、Docker 全般によくある話です

*4:今回は /home/rundeck/server/config/realm.properties でよいです

*5:もっといいやり方があれば教えて下さい……

Powered by はてなブログ