用語解説
コントロールマシン
OBDがインストールされているマシンで、OceanBaseクラスタの管理、OceanBaseクラスタのインストールパッケージおよびクラスタ設定情報の保存に使用されます。
ターゲットマシン
OceanBaseデータベースがインストールされているマシン。
手順
コントロールマシンで以下の手順に従ってパスワードレスSSHログインを設定します。設定後、コントロールマシンからターゲットマシンへパスワードレスSSHログインが可能になります。
説明
使用するすべてのユーザーに対してパスワードレスログインを設定する必要があります。OceanBaseデータベースのデプロイにadminユーザーを使用する場合は、ターゲットマシンのadminユーザーに対してパスワードレスログインを設定する必要があります。OceanBaseデータベースのデプロイには、adminユーザーの使用を推奨します。
コントロールマシンで以下のコマンドを実行し、キーが存在するか確認します:
[admin@test001 ~]$ ls ~/.ssh/id_rsa.pub結果にキーが既に存在することが表示された場合は、新しいキーを生成する必要はありません。
(オプション)コントロールマシンで以下のコマンドを実行し、SSH公開鍵と秘密鍵を生成します:
[admin@test001 ~]$ ssh-keygen -t rsaコントロールマシンの公開鍵をターゲットマシンの
authorized_keysファイルにコピーします:[admin@test001 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<server_ip>
(付録)スクリプトの参照
複数のターゲットマシンが同じログインパスワードを使用する場合、コントロールマシンで以下のスクリプトを使用して、複数のターゲットマシンにSSHパスワードレスログインを設定することを推奨します。
注意
以下のスクリプトを実行するにはsudo権限が必要です。
スクリプトの最初の2行のSERVERSリストとPASSWORDを、ご自身の実際のマシンリストとパスワードに置き換える必要があります。
#!/usr/bin/bash
SERVERS=("<user>@<server_ip1>" "<user>@<server_ip2>" "<user>@<server_ip3>")
PASSWORD="******"
keygen() {
sudo yum -y install expect
expect -c "
spawn ssh-keygen -t rsa
expect {
*(~/.ssh/id_rsa):* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
eof {exit 0}
}
expect eof
"
}
copy(){
expect -c "
set timeout -1
spawn ssh-copy-id $1
expect {
*(yes/no)* { send -- yes\r; exp_continue }
*password:* { send -- $PASSWORD\r; exp_continue}
eof {exit 0}
}
expect eof
"
}
ssh_copy_id_to_all(){
keygen ;
for host in ${SERVERS[@]}
do
copy $host
done
}
ssh_copy_id_to_all