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できます

  1. 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 ファイルにエントリを追加するか、クラスターディレクトリのhostkeys/ssh_host_ *_key* からTPAで生成されたホストキーをインスタンスの/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(8/9/10;またはjessie/stretch/buster)、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つの方法で使用します。最初に、デプロイ中にインスタンスにsshしてコマンドを実行します。第二に、クラスター内の通信をセットアップするため、たとえば、 /etc/hosts またはPostgresのprimary_conninfo を設定します。

public_ip を指定すると、デプロイ中にインスタンスにsshするために使用されます。 private_ip を指定すると、クラスター内の通信のセットアップに使用されます。両方を指定すると、展開中にpublic_ip が使用され、クラスター通信にprivate_ip が使用されます。

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