LoginSignup
3
5

More than 5 years have passed since last update.

Rundeck3のインストール~セットアップ

Posted at

cronではできないようなジョブスケジューリングをしたい、でも商用ジョブスケジューラーみたいに高機能じゃなくてもいい。
そんな製品を探していたときにRundeckを知りました。

エージェント製品をインストールする必要なく、リモートノードにはAnsibleみたいにSSHで接続しにいきます。

Rundeck3のインストール~初期セットアップまでのメモです。

環境

  • CentOS 7.5
  • Rundeck 3.0.9

事前準備

サーバー

  • Azureで仮想マシンを準備してますが、環境はAWSでもオンプレでもどこでもよいです。
  • サーバーのIPを控えておきます。
  • あとでプロパティにIPアドレスを入力するので、IPは静的に設定しておいたほうがよいです。

ネットワークセキュリティグループ

  • AzureだとNSG、AWSだとセキュリティグループで「4440:tcp」を許可しておきます。

インストール

  • yumでインストールします。
$ sudo rpm -Uvh http://repo.rundeck.org/latest.rpm
$ sudo yum install rundeck java
  • framework.propertiesを開き、localhost部分をサーバーのIPアドレスに変更します
$ sudo vi /etc/rundeck/framework.properties
framework.server.name = localhost
framework.server.hostname = localhost
framework.server.url = http://localhost:4440
  • rundeck-config.propertiesを開き、localhost部分をサーバーのIPアドレスに変更します
$ sudo vi /etc/rundeck/rundeck-config.properties
grails.serverURL=http://localhost:4440
  • サービスを起動します。
$ sudo systemctl start rundeckd
  • 以下URLにアクセスし、ログイン画面が表示されたらOKです。
http://[IP Address]:4440/
  • ユーザ名admin、パスワードadminでログインします。

image.png

  • 無事ログインできればOKです。 image.png

動作確認

プロジェクト作成

  • [New Project]ボタンを押します。
    image.png

  • 色々項目ありますが、とりあえず[Project Name]を適当に入力して、[Create]ボタンを押します。
    image.png

  • 次にノードの追加設定を行う画面がでますが、[Save]ボタンを押します。
    image.png

ジョブ作成

  • [JOBS]を選択します。
    image.png

  • [Job Actions]から[New Job]を選択します。
    image.png

  • [Job Name]を適当に入力します。
    image.png

  • [Add a Step]の箇所で、[Command]を選択します。
    image.png

  • 実行するコマンドはなんでもよいですが、ここではdateコマンドを実行することにします。[Save]を選択します。
    image.png

  • 一番下にいって[Create]を選択します。
    image.png

ジョブ実行

  • [Run Job Now]を選択します。
    image.png

  • 正常終了して、dateコマンドの実行結果が表示されていればOKです。
    image.png

リモートノード追加

マネージャーサーバー側

  • project.propertiesを開き、末尾に追加します。
$ sudo vi /var/rundeck/projects/[Project Name]/etc/project.properties
末尾に以下追加
resources.source.1.type=file
resources.source.1.config.file=/var/rundeck/projects/${project.name}/etc/resources.xml
resources.source.1.config.format=resourcexml
resources.source.1.config.includeServerNode=true
resources.source.1.config.generateFileAutomatically=true
  • resources.xmlを新規作成します。
$ sudo vi /var/rundeck/projects/[Project Name]/etc/resources.xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
  <node name="rundeck-agent1" type="Node"
        description="rundeck-agent1."
        hostname="[Remote Node IP Address]"
        username="rundeck"
        osFamily="unix"
        osName="Linux"
        osVersion="7.5"
        ssh-authentication="privateKey"
  />
</project>
  • SSH公開鍵をcatで開き、表示された内容をメモっておきます。
$ sudo cat /var/lib/rundeck/.ssh/id_rsa.pub

リモートサーバー側

ここからはリモートサーバー側の作業です。
マネージャーサーバーとはSSH接続ができるネットワーク環境であることを前提とします。

  • ジョブ実行ユーザを作成します。
$ sudo useradd rundeck
  • authorized_keysファイルを作り、先程メモした公開鍵の内容を貼り付けます。
$ sudo su - rundeck
$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

ジョブ実行

  • Rundeckジョブ作成時に、Nodesを[Execute locally]から[Dispatch to Nodes]に変更して、リモートノードで実行します。 image.png

参考にさせて頂いたサイト

OSS ジョブスケジューラ(Rundeck)を自宅サーバに入れてみた Part2
【Rundeck】プロジェクトへのnode追加メモ

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5