Rundeckでリモートサーバに対してsudoを用いた処理をさせたいことがある。 ジョブ実行ユーザ(今回の例だとrundeckユーザ)には鍵認証しか許可させない(+authorized_keysで接続元のIPをRundeckサーバに制限)するなどで接続時のセキュリティは担保できるので、sudo実行時にパスワードはいらない前提とすると、以下のように「/etc/sudoers」に追記してやればよい。 さすがになんでもsudo実行できるとちょっと問題なので、sudoで実行できるプログラムは制限してやればよい。

/etc/sudoers
rundeck ALL=(ALL) NOPAS...

RundeckをActiveDirectoryと連携させるには、管理画面からではだめで設定ファイルを直接いじってやる必要がある。 また、基本的にはログイン権限のロールとしてADグループを指定するので、事前にAD側でグループを作成・ユーザを参加させておく必要がある(今回の例では、とりあえずドメインはadtest.localと仮定し、ログイン可能なグループを「rundeck_group」としてAD側で作成済とする)。

注意したい点としては、ActiveDirectory連携をただ設定すると既存のローカルユーザが使用できなくなる点だ。 これについては、MultiAuthの設定をしてやることで解決...


先日、RundeckでVulsをインストールしているリモートサーバからvulsを実行するジョブを作成したところ、scan開始時点で処理が止まってしまいそのまま10分以上たっても何も進まないことがあった。
Rundeckではリモートサーバに対して、sshコマンドから以下のように処理をしているようだ。

ssh user@server 'コマンド'

で、コンソールから同じようにコマンドを実行したのだが、やはり以下のような出力で処理が止まってしまった。


SlackでHubotを経由してRundeckのジョブを実行させる

RundeckのジョブをSlackから実行できないかと思ったところ、Hubot用のプラグインがあったのでこれでやってみることにする。
なお、事前にこちらからSlackへの追加・設定を終わらせておくこと。

1.Hubotの動作サーバを構築する

1-1.パッケージのインストール

まずは、Hubotを動かすためのサーバを構築する。今回の例ではOSはCentOS 7を用いる。
Node.jsやnpmが必要になるので、それらを含めもろもろ以下のコマンドでインストールする。

yum install -y epel-release
yum install -y nodejs re...

RundeckでWindowsに対しジョブを実行する

Rundeckでは対象のノードに処理を実施する場合、ssh接続してコマンドを実行するのだが、Windowsに対しジョブを実行する場合はWinRMを使うのがよさそうだ。
Windows 10とかならsshサーバも使えるようになったし、それ使えばいいんだろうけど、いかんせんWindows Server 2008/2012 R2などにはsshサーバの機能はない(OpenSSHとか入れればできる)。

できればWindowsとして提供されている機能でアクセスしたいなぁ…ということで、WinRMを用いての接続をする。
プラグインはこちら。なお、触ってみた限りRundeck側でスクリプトを書いて...


RundeckからRedmineにチケットを起票させる

RundeckからRedmineにチケット起票をさせるには、こちらのプラグイン(というか、パラメータファイル)を入れればいい。
以下のコマンドで、設定ファイルの配置およびサービスの再起動を行う。

git clone https://github.com/skylost/redmine-notification
cp redmine-notification/src/RedmineNotification.groovy /var/lib/rundeck/libext/

次に、Rundeckの設定ファイルにRedmineへの接続情報を記述しサービス再起動をする。
(下の例だとPro...


GraylogとRundeckを連携させて特定のログ発生時にジョブをキックさせる

GraylogでStreamで定義したログを検知した際、Rundeckの特定のジョブをキックさせるようにさせたい。
そんな時は、Graylog側にこちらのプラグインを導入し諸々の設定をしてやればよい。

今回は、Graylogからログ内の特定の値をRundeckに連携して、任意のジョブを実行させるよう設定してみる。

1.Graylogへプラグインのインストール

まずは、以下のコマンドを実行してGraylogにプラグインのインストールを行う。
ダウンロードするjarファイルのURLについては、こちらで最新のものを確認しておく。

cd /usr/share/graylog...

Rundeckでジョブの実行結果をSlackに通知する

Rundeckでジョブの実行結果をSlackに通知する場合は、プラグインを導入してやる必要がある。
2016年時点では、Slack連携用のプラグインは以下の2個あるようだが、前者は3年ほど更新されていないため、今回は後者のプラグインを利用する。

まず、以下のコマンドでプラグインをダウンロード、所定のディレクトリに配置しサービスを再起動する。
(ダウンロードするjarファイルは、こちらから最新のURLを確認してやるとよ...


CentOS 7にいろいろなシステムと連携できるジョブスケジューラー『Rundeck』をインストールする

ジョブスケジューラーについていろいろと物色しているのだが、最近であればやはりRundeckは触っといたほうがいいだろうと思ったのでCentOS 7に入れていじってみることにする。
「Rundeck」は、Webベースのインターフェイスを持つ軽量なエージェントレス(ssh接続)のジョブスケジューラーだ。また、プラグインなどを用いて他のシステムと連携して、特定のログなどをトリガーにジョブをキックさせることもできる(この辺はStackStormのほうが対応数が多いっぽい。その他Apache NifiとかHugginとかのIFTTTに影響を受けたプロジェクトのほうが強いかも?)。
ジョブ...