bare(-metal servers)#

config.ymlにplatform: bare を設定します

このプラットフォームは、ベアメタルサーバーやクラウドプラットフォームAWSを含む既にプロビジョニングされたサーバーを含む、SSHを介してアクセス可能なサーバーをサポートすることを目的としています。

各ターゲットサーバーのIPアドレスとユーザー名を定義する必要があります。

instances:
  - node: 1
    Name: igor
    platform: bare
    public_ip: 192.0.2.1
    private_ip: 192.0.2.222
    vars:
      ansible_user: xyzzy

次のことを確認する必要があります

  1. TPAはansible_user としてインスタンスにsshできます

  2. ansible_user には、インスタンスでsudoアクセスがあります

SSHアクセス#

上記の例では、TPAはxyzzy@192.0.2.1 にssh接続してインスタンスにアクセスします。

デフォルトでは、TPAはssh-keygen を実行して、クラスターディレクトリに新しいSSHキーペアを生成します。プライベートキーの名前はid_cluster_name であり、公開キーはid_cluster_name.pub に保存されます。

インスタンスが受け入れる別のキーを使用するようにssh_key_file: /path/to/id_keyname を設定するか、生成されたキーからのアクセスを許可するようにインスタンスを構成する必要がありますたとえば、 id_cluster_name.pub のコンテンツを~xyzzy/.ssh/authorized_keys に追加するssh-copy-id を使用します。

また、sshがインスタンスのホストキーを検証できることを確認する必要があります。クラスターディレクトリのknown_hosts ファイルにエントリを追加するか、TPA生成ホストキーをクラスターディレクトリのhostkeys/ssh_host_ *_key* からインスタンスの/etc/ssh にインストールできます。生成されたtpa_known_hosts ファイルには、これらのキーのエントリが含まれています。

たとえば、生成されたユーザーキーを使用してssh接続しますが、既存のホストキーを保持するには、次のことができます。

cd ~/clusters/speedy
ssh-copy-id -i id_speedy xyzzy@192.0.2.1
ssh-keyscan -H 192.0.2.1 >> tpa_known_hosts

tpaexec ping ~/clusters/speedy を実行して、動作しているかどうかを確認します。まだない場合は、コマンドに-vvv を追加して、完全なsshコマンドラインを確認します。 (注 Ansibleはsshを呼び出して、インスタンスでbash -c 'python3 && sleep 0' のようなコマンドを実行します。デバッグ中にsshコマンドを手動で実行する場合、これを'id' などの出力を生成して終了するコマンドに置き換えます。)

詳細については

ディストリビューションのサポート#

TPAは、ターゲットインスタンスで実行されているディストリビューションを検出しようとしますが、サポートされていない場合は失敗します。 TPAは現在Debian 10/11/12;またはbuster/bulseye/bookworm、Ubuntu 16.04/18.04/20.04/22.04;またはxenial/bionic/focal/jammy)、およびRHEL/CentOS/Rocky/AlmaLinux 7. x/8.x)bare インスタンスで。

IPアドレス#

任意のインスタンスにpublic_ip 、private_ip 、またはその両方を指定できます。

TPAは、これらのIPアドレスを2つの方法で使用します。1つ目は、インスタンスにsshして、展開中にコマンドを実行します。次に、クラスター内の通信を設定するためなど、/etc/hosts またはPostgresのprimary_conninfo を設定します。

public_ip を指定すると、デプロイ中にインスタンスにssh接続するために使用されます。 private_ip を指定すると、クラスター内の通信を設定するために使用されます。両方を指定した場合、 public_ip は展開中に使用され、 private_ip はクラスター通信に使用されます。

いずれかのみを指定した場合、アドレスは両方の目的に使用されます。たとえば、別のネットワーク上のサーバーにpublic_ip のみを設定したり、閉じたネットワーク内でTPAを実行している場合はprivate_ip のみを設定したりできます。 (パブリック/プライベートを使用する代わりに、1つのIPアドレスのみを指定する必要がある場合は、ip_address を設定できます。)

新しく始める#

bare プラットフォームのクラスターで新しくスタートするには、適切な外部ツールを使用してサーバーを再インストール、再イメージ、または再プロビジョニングし、このドキュメントで説明しているプロセスを繰り返します。新しいサーバーのIPアドレスが異なる場合、または複雑なsshセットアップがある場合は、 tpaexec deprovision を実行してローカルに作成されたすべてのファイルを削除してから tpaexec provision

それらを再作成し、上記と同様にこのドキュメントのプロセスを繰り返します。