2015年8月29日土曜日

[CentOS7][Rundeck] ノードを追加する


[CentOS7][Rundeck] プロジェクトを作成する」の続きです。

前回、プロジェクトを作成したので、localhost 上ではコマンドやジョブを実行できるようになっています。

Rundeckは、別のサーバでコマンドやジョブを実行することもできますが、それには、Rundeckにサーバを登録する必要があります。

また、Rundeckをインストールしたサーバから、別のサーバでコマンドやジョブを実行する場合は、ssh とscp が使われ、パスフレーズなしの秘密鍵を使用してリモートサーバに接続するので、接続相手のサーバにも ssh の設定を行う必要があります。

今回は、Rundeckに下記のサーバを登録して、秘密鍵(パスフレーズなし)でssh接続できるように設定します。
接続先のsshユーザは、何でも設定できますが、今回は、root でログインすることにします。 
  • pm01(10.1.0.71)
  • pm02(10.1.0.72)

Rundeck にサーバを登録する


GUIからは登録できないので、設定ファイルにサーバを追加します。

設定ファイルは、プロジェクトごとに違いますが、
下図のプロジェクトの [ congigure ] で確認できます。(赤枠)


今回は、sandbox2 という名称のプロジェクトを使用しているので、下記設定ファイルにサーバを追加します。
  • /var/rundeck/projects/sandbox02/etc/resources.xml

追加した内容は、以下のとおり。
pm01, pm02が今回追加した設定です。
<?xml version="1.0" encoding="UTF-8"?>

<project>
  <node name="localhost" description="Rundeck server node" tags="" hostname="localhost" osArch="amd64" osFamily="unix" osName="Linux" osVersion="3.10.0-229.1.2.el7.x86_64" username="rundeck"/>
  <node name="pm01" description="pacemaker01" tags="" hostname="10.1.0.71" osArch="amd64" osFamily="unix" osName="CentOS" osVersion="6.6" username="root" tag="pm">
    <attribute name="system" value="DEMO"/>
    <attribute name="env" value="develop"/>
  </node>
  <node name="pm02" description="pacemaker02" tags="" hostname="10.1.0.72" osArch="amd64" osFamily="unix" osName="CentOS" osVersion="6.6" username="root" tag="pm"/>
</project>
サーバ1台につき、<node>設定を1つ追加します。 hostname に IPアドレスを設定し、usernameに SSH接続するときに使用するユーザを設定しています。
<attribute> で、任意の属性を追加できるので、試しに、system(システム名) と env(環境) を設定しています。
詳細は、ドキュメントを参照してください。

プロジェクトに登録したサーバ(pm01/pm02)は、GUIで下図のように確認できます。
右端に表示されているユーザ とIPアドレスで ( 例: root @ 10.1.0.71 ) で ssh 接続します。




登録したサーバにSSHの公開鍵を登録する


上記で pm01 と pm02 には、root ユーザで接続するように設定したので、pm01 と pm02 の root ユーザに ssh の公開鍵を設定します。

Rundeck がssh接続で使用する秘密鍵(パスフレーズなし)は、下図の画面で確認できます。
今回はデフォルトの秘密鍵を使用しますが、自分で作った秘密鍵も使用できます。



秘密鍵(id_rsa)と同じ場所に、公開鍵(id_rsa.pub)があります。
[root@centos7 ~]# ls -al /var/lib/rundeck/.ssh
合計 16
drwx------  2 rundeck rundeck 4096  8月 23 13:25 .
drwxr-xr-x 13 rundeck rundeck 4096  8月 23 22:12 ..
-rw-------  1 rundeck rundeck 1679  8月 23 13:25 id_rsa
-rw-r--r--  1 rundeck rundeck  382  8月 23 13:25 id_rsa.pub

pm01 に root ユーザでログインして、公開鍵を設置します。
下記のように root ユーザのホームディレクトリに ".ssh" ディレクトリを作成して、パーミションを変更します。
[root@pm01 ~]# mkdir .ssh/
[root@pm01 ~]# chmod 600 .ssh
Rundeckの公開鍵を authorized_keys ファイルに記載して、パーミションを変更します。
vi で authorized_keys を開いて、公開鍵(id_rsa.pub) の内容をコピペすればOKです。
[root@pm01 ~]# cd .ssh
[root@pm01 .ssh]# vi authorized_keys
[root@pm01 .ssh]# cat ./authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDChCt2WADQAj7VwxYx4Q9BT5X17hZWSp+LXSSK9P5K5SoUHR/i6i5dnfsNF97LOShDhmG912qcUfVbsZRDat5ZWoE2S3YmLtpNl2lkMj/vgbpRptPCgF2h8FE2iyns/oYKihWJaGoBj55HoK4QRq6aWesulcckEHhno1VXIjLOUi19fxeClc3taH4uK7imh2IEH9UNXhj16Ggu00+UhmhZuMfmlsGluyrviw6YUePLCq9JujT9K+pcYkzCfmVzftOtgA1ukzcRY09+OEKdpPWF14M4k2DWvFzUSXIi2szbwO2kUZ6ynaps7NqexjpOkRaEQassVVKDednbHp48QFqlF
[root@pm01 .ssh]# chmod 600 ./authorized_keys

pm02 も同様に設定し、Rundeckをインストールしたサーバからパスワードなしで ssh 接続できればOKです。
[rundeck@centos7 ~]$ ssh -i /var/lib/rundeck/.ssh/id_rsa root@10.1.0.71 'hostname'
The authenticity of host '10.1.0.71 (10.1.0.71)' can't be established.
RSA key fingerprint is 81:06:ad:b9:47:1a:a7:4b:06:e6:e0:94:4e:a5:49:98.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.1.0.71' (RSA) to the list of known hosts.
pm01