本記事では、obshell-sdk-pythonを使用して、クラスタ内の指定されたZoneおよびそのZone内のノードを削除する方法について説明します。
説明
まず、obshell-sdk-python クイックスタート を参照し、obshell-sdk-pythonの使用方法を確認することをお勧めします。
注意事項
クラスタのスケールインまたはスケールアウトを実行する前に、以下の要件に注意してください:
リクエスト元のクライアントに対応するノードが、スケールインまたはスケールアウト対象のクラスタ内に存在し、かつ削除対象のZoneには含まれていないこと。
obshellが正常に実行されていること。
削除対象のZone上にユニットが存在しないこと。
サンプルコード
タスクの同期的実行
タスクの非同期実行
from obshell import ClientSet
from obshell.auth import PasswordAuth
# クライアントインスタンスを作成します。ノードのアドレスは '10.10.10.1'、ポートは2886です。
# 所在クラスタのroot@sysパスワードは'****'です。
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
# zone3をクラスタから削除します。
client.v1.delete_zone_sync("zone3")
from obshell import ClientSet
from obshell.auth import PasswordAuth
# クライアントインスタンスを作成します。ノードのアドレスは '10.10.10.1'、ポートは2886です。
# 所在クラスタのroot@sysパスワードは'****'です。
client = ClientSet("10.10.10.1", 2886, PasswordAuth("****"))
# クラスタからzone3を削除します。
dag = client.v1.delete_zone("zone3")
# タスクの完了を待ちます。
if dag is not None:
client.v1.wait_dag_succeed(dag.generic_id)