環境構築
チュートリアルを行うために必要な環境設定について説明します。
チュートリアル環境の構成#
このチュートリアルでは、PagerDutyとPagerDuty Runbook Automation(RBA)を組み合わせてJobを実行する方法を学びます。 PagerDutyとRBA以外に、RunnerならびにNodesを動作させるサーバー(VM/Container可)が1つ必要になります。
チュートリアルで利用するRunner/Nodeの環境について
このチュートリアルでは、Linux(Ubuntu)で動作するRunnerならびにNodeを想定してコマンドを例示しています。Windowsなど異なる環境で行う場合は、環境に併せて適宜読み替えてください。
PagerDutyトライアルアカウント申し込み#
こちらのサインアップページを開き、Emailアドレスを入力後、GET STARTEDをクリックしてください。
- 名前、パスワードの入力後、Subdomain名を入力ください。Subdomain名を
your-sandbox
とした場合、PagerDutyの管理コンソールのURLが https://your-sandbox
.pagerduty.com になります。 - Service Regionについては、日本から利用する場合は
US
を選択してください。
参考: トライアルアカウントの作成
Runbook Automationトライアルアカウントの申し込み#
- 作成したPagerDutyトライアルアカウントにログインし、上部メニューからAutomation > Automation Actions をクリックします。
- Run Actionsボタンを選択し、Activate trial をクリックします。
- アカウントが作成されるとメールが届きます。メールの案内に沿って、パスワードを設定し、ログインしてください。
- 管理者の既定のユーザー名は
appadmin
です。
- 管理者の既定のユーザー名は
参考: トライアルを開始する
Activate trialが表示されない場合
PagerDutyの契約プランによっては、ご自身でトライアルを有効化できない場合があります。
"Activate trial" が表示されない場合は、担当営業までご連絡ください。ご連絡の際、ご利用のPagerDuty Subdomain名をお知らせいただけますと幸いです。
Projectの作成#
RBAでは、Project配下でJobを管理します。 Access Control List (ACL)を利用すると、Project毎にユーザーの権限を制御することができます。
- 新しくProjectを作成します。
- 青い “New Project+” ボタンをクリックします。
- または上部のProjectsプルダウンメニューを開き、”+Create Project”をクリックします
- Project Name (英数字のみ), Project Display Name(Projectの表示名), Description (Project説明)を記入し、Createをクリックします。
Runnerの設定#
RBAでRunnerの登録を行うと、jarファイルがダウンロードきるようになります。このjarファイルをサーバー上で動かすことでサーバーがRunnerとして動作するようになります。
-
RunnerにはJava11またはJava17が動作する環境が必要です。以下を参考にサーバー(VM/Container可)を用意ください。
- RunnerのOSはLinuxを推奨します。WindowsのNodeに対しても、LinuxのRunnerから操作可能です。
- 参考: Creating Runners
-
RBAでRunnerの登録を行います。 画面右上のギアアイコンをクリックし、Runner Managementをクリックしてください。
- 参考: Create a runners
- 参考: Create a runners
-
+Create Runner ボタンをクリック
-
Create Runner画面が開いたら、以下のように入力し、Nextボタンをクリックします
- Name:
Workshop Runner
- Description: (Runnerを説明する任意の文字列)
- Define Tags:
WORKSHOP
- Name:
-
Project Association画面で、先ほど作成したProjectでRunnerが利用できるよう紐づけを行います。
- Runnerを紐づけるProjectの、Assigned欄をクリックします。Runnerが紐づけられたProjectは、Assigned欄が緑色になります。
- Runnerを紐づけるProjectの、Assigned欄をクリックします。Runnerが紐づけられたProjectは、Assigned欄が緑色になります。
-
Downloadボタンをクリックし、Runnerのjarファイルを保存します。
-
Close and Complete ボタンをクリックします。
-
ダウンロードしたjarファイルを、VM等のRunnerを実行する環境にコピーします。
-
Jarファイルを実行します。
- Linux環境における実行例:
java -jar runner_filename.jar
- 参考: Creating Runners
- Linux環境における実行例:
-
Runnerの起動後、RBAと通信が可能になると、Runner Management画面で、RunnerのStatus欄に緑色のアイコンが表示されます。
-
RunnerはHTTPSでRBAと通信を行います。
- RBAとRunnerが接続できない場合は、RBAのIP Addressに対して、RunnerがTCPポート443で通信できるか確認してください。
- Proxy経由で接続する場合は、jarファイルの実行時にProxyの指定が必要です。
Nodeの設定#
最後はNode(操作対象のサーバーやネットワーク機器等)の設定です。
このチュートリアルでは、Runnerの動作するサーバー自身(127.0.0.1)にSSHで接続し、Nodeとしても利用できるようにします。
-
SSHで接続できるようにするため、ここではOpenSSHサーバーをインストール・設定します。
sudo apt update sudo apt install openssh-server
-
SSHキーペアを作成します。
ssh-keygen -t ed25519
-
生成された公開鍵をNodeを操作するユーザーの
authorized_keys
に追加します。cat ./.ssh/id_ed25519.pub >> ./.ssh/authorized_keys
-
生成された秘密鍵でSSH接続ができるか確認してください。
(ユーザー名や秘密鍵のファイル名は環境に併せて変更ください)ssh -i ~/.ssh/id_ed25519 rundeck@127.0.0.1
-
秘密鍵については、RBAのKey Storageに情報をコピーします。RBA管理コンソールの画面右上のギアボックスアイコンをクリックし、Key Storageをクリックしてください。
-
Key Storage画面が開いたら、+ Add or Upload a Key をクリックします
-
秘密鍵の情報をTEXTとしてコピー、または秘密鍵のファイルをアップロードします。
以降の演習ではkey/workshop-nodes
に保存したSSH Keyを、RunnerからNodeへの接続に利用します。 -
RBA画面左上のProjectプルダウンメニューから、先ほど作成したProjectを選択
-
左メニューのProject Settingをクリックし、EDIT NODESを選択
-
Edit Nodes画面のNodesタブ内で、Add a new Node Source+ ボタンをクリックし、Node Wizardを選択
-
Node WizardのSaveをクリックし、その後再度Saveをクリック
-
Edit Nodes画面のEditタブを開き、Node Wizardのところにある Modify ボタンをクリック
-
Edit Nodes File画面でEditorタブをクリックし、Nodesの設定を記入し、Saveをクリック
-
Nodes設定のサンプルです。
username
の値は、Nodeにログインするユーザーに合わせて変更してください:mars.example.com: nodename: mars.example.com hostname: 127.0.0.1 osFamily: unix ssh-key-storage-path: keys/workshop-nodes description: DC1 Node-A node-executor: sshj-ssh file-copier: sshj-scp username: rundeck tags: Tokyo, dc1, mars venus.example.com: nodename: venus.example.com hostname: 127.0.0.1 osFamily: unix ssh-key-storage-path: keys/workshop-nodes description: DC2 Node-B node-executor: sshj-ssh file-copier: sshj-scp username: rundeck tags: Osaka, dc2, venus
-
以下はWindowsのNode設定のサンプルです。 WinRMPythonを利用するため、RunnerにPythonのインストールが必要です。
win.example.com: osFamily: windows osName: Windows Server 2022 node-executor: WinRMPython file-copier: WinRMPython tags: Okinawa, dc3, win, windows nodename: win.example.com hostname: 127.0.0.1 winrm-auth-type: basic winrm-protocol: https winrm-password-storage-path: keys/workshop-nodes-windows winrm-port: '5986' username: rundeck
以上でチュートリアルの事前準備は完了です。お疲れ様でした!