Rundeckでとりあえずjobを起動するとこまでのまとめ
はじめに
Rundeckのエントリーはいくつかあると思いますがちょいちょいハマりつつ色んな記事の色んな箇所を参考にさせていただいたので個人的なメモ用に。
とりあえず環境作ってジョブを実行するところまで。
環境
Vagrant / centOS7
Vagrantfile
動作環境に使ったVagrantfileです
Vagrant.configure(2) do |config|
config.vm.box = "bento/centos-7.5"
config.vm.define "rundeck" do |c|
c.vm.hostname = "rundeck"
c.vm.network "private_network", ip: "192.168.33.10"
c.vm.network "forwarded_port", guest: 4440, host: 4440
c.vm.synced_folder "./job", "/home/rundeck/job", create:true
end
end
Vagrantfileが置いてあるディレクトリにjobディレクトリを作成し、起動したいjobを入れておく。
これらを叩くように後でrundeckで設定。
サンプル
https://github.com/ohanamisan/Rundeck_on_Vagrant/tree/master
下記の動作一連をvagrant up
時にまとめてやってくれるよう上記のVagrantfileを少し編集してます。
手順
Vagrantに入る
表現あってますかね?Vagrantに入ります。
$ vagrant up
$ vagrant ssh
Vagrantで困ったこと
起動時にマウントのエラーが出てました。
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
The error output from the command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
さっぱりわからなかったのですがこちらを参考にさせていただき以下のコマンドをvagrant内で叩きました。
$ sudo yum -y update kernel
$ sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++
ホスト側で vagrant reload
をするとちゃんとマウントされました。
今回はRundeckメインに取り上げるのでこれ以上はとりあえず深堀せず先に行きます。
Javaを入れておく
$ sudo yum install -y java-1.8.0-openjdk
yumでインストール
$ sudo yum install -y https://repo.rundeck.org/latest.rpm
$ sudo yum install -y rundeck
起動
$ sudo service rundeckd start
ステータス確認
$ sudo service rundeckd status
● rundeckd.service - SYSV: rundeckd, providing rundeckd
Loaded: loaded (/etc/rc.d/init.d/rundeckd; bad; vendor preset: disabled)
Active: active (running) since Thu 2018-12-27 09:28:57 JST; 2min 48s ago
Docs: man:systemd-sysv-generator(8)
Process: 734 ExecStart=/etc/rc.d/init.d/rundeckd start (code=exited, status=0/SUCCESS)
Main PID: 748 (runuser)
CGroup: /system.slice/rundeckd.service
‣ 748 runuser -s /bin/bash -l rundeck -c java -Drundeck.jaaslogin=true -Djava.security.auth.log...
こんなのが出てればおけーです。
接続
4440ポートで接続ができる
http://localhost:4440/
接続するとログインページにつながります。
初回はユーザ:admin, パスワード:adminで入れます。
プロジェクト設定
ログインすると以下のページが出てくるので[新しいプロジェクト]をクリックします。
今回はプロジェクトの細かい設定は行わず、ProjectsNameだけ入力して完了します。
Job設定
ジョブ欄から[新しいジョブを作成]をクリック。
ジョブ名を入力し下に進むとステップの追加があるのでジョブの実行内容を記述します。
ステップはいろいろできますが今回はシンプルにコマンドを叩きます。
手動ですぐに実行
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified # <- 怪しい
Result: 1
Failed: NonZeroResultCode: Result code was 1
実行ユーザーを確認
whoamiをjobに追加して再度実行してみた
rundeckというユーザになってました。
こちら参考にさせていただき以下を実行し、
rundeckユーザでsudoを使えるようにしてあげます。
$ sudo visudo
# Defaults !visiblepw
Defaults visiblepw
root ALL=(ALL:ALL) ALL
rundeck ALL=(ALL) NOPASSWD:ALL
ジョブオプション
重複実行
Multiple Executions
Yesにすると重複実行が可能になる。
デフォルトはNoになっており、重複実行しようとすると実行されない。
定期実行・スケジュール設定
Schedule to run repeatedly?
デフォルトはNoになっており、定期実行の設定がされていない。
Yesにチェックすると時間の設定をSimpleとCrontabの2種類から選べる。
Simple
セレクターで時間を選んで毎日か毎月かのチェックをつける
Crontab
ほぼcron書式で書くことができる。
秒と年が指定できるように拡張されている。
秒 分 時 日 月 曜 年
0 30 7 * * ? *
必ず1つは[?]指定が必要。
Timeout
実行時間の制限を登録できる。
実行時間が設定時間を超えると失敗とみなされる
Retry
ジョブが失敗した場合や、タイムアウトした場合に発生。
その後の再試行する回数を設定できる。
Retry delay
失敗したジョブと再試行の間の時間。
秒単位の時間、もしくは時間単位を指定する。
時間単位の指定
120m, 2h, 3d
おわりに
上記のオプションなどでスケジューリングやタイムアウトの設定を行っていけばとりあえずはcronと同じように定期実行できそうです。
Rundeckは他にもたくさん機能があるそうなので少しずつキャッチアップする。
参考にさせて頂いたページ
Author And Source
この問題について(Rundeckでとりあえずjobを起動するとこまでのまとめ), 我々は、より多くの情報をここで見つけました https://qiita.com/ohanamisan_Ba/items/eef5dbf1b3a8e88a38fb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .