2 Private Automation Hubのインストール

この章では、ホストの設定方法とPrivate Automation Hubソフトウェアのインストール方法、およびリモート・データベースとローカル・データベースを使用するオプションについて説明します。

リモート・データベースの設定

Oracle Linux Automation Managerの単一ホスト構成で、Oracle Linux 8上にリモートPostgresqlデータベース・インスタンスを設定するには、次の手順を実行します:

  1. ホストにOracle Linux 8または9をインストールします。
  2. ファイアウォールでデータベース・ポートを開きます:
    sudo firewall-cmd --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload
  3. postgresql 16モジュール・ストリームを有効にします。
    sudo dnf module reset postgresql
    sudo dnf module enable postgresql:16

    ノート:

    Postgresql 16のライフ・サイクルの詳細は、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』のストリーム・モジュールのアプリケーションのライフ・サイクルについて説明している付録を参照してください。
  4. データベースをインストールします。
    sudo dnf install postgresql-server postgresql-contrib
  5. データベースを初期化します:
    sudo postgresql-setup --initdb
  6. /var/lib/pgsql/data/postgresql.confファイルで、パスワードのストレージ方式をmd5からscram-sha-256に切り替えます。たとえば、次のコマンドで切替えが実行されます:
    sudo sed -i "s/#password_encryption.*/password_encryption = scram-sha-256/"  /var/lib/pgsql/data/postgresql.conf
  7. 次のコマンドでデータベースを起動します。このコマンドは、ホストの再起動時にデータベースも再起動するようにします:
    sudo systemctl enable --now postgresql
  8. データベースが実行中であることを確認します:
    sudo systemctl status postgresql
  9. データベース・ユーザー・アカウントを作成します。例:
    sudo su - postgres -c "createuser -S -P pulp"
  10. pulpユーザーのパスワードを入力し、確認します。
    Enter password for new role: 
    Enter it again: 
    
  11. データベースを作成します。
    sudo su - postgres -c "createdb -O pulp pulp"
  12. rootユーザーとして。/var/lib/pgsql/data/pg_hba.confファイルに次の行を追加します:
    host  all  all 0.0.0.0/0 scram-sha-256
  13. rootユーザーとして、/var/lib/pgsql/data/postgresql.confファイルの# CONNECTIONS AND AUTHENTICATIONセクションで、listen_addresses = のテキストの後に、データベースのIPアドレスまたはホスト名を一重引用符で囲んで記述した行を追加します。例:
    listen_addresses = '<IP address or host name>'
    
    #listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                            # comma-separated list of addresses;
                                            # defaults to 'localhost'; use '*' for all
                                            # (change requires restart)
    #port = 5432                            # (change requires restart)

    前述の例では、<IP address or hostname>はデータベースのIPアドレスまたはホスト名です。

  14. 次を使用して、メモリー要件パラメータを計算し、更新します:
    max_connections = 1024
    shared_buffers = total_mem_mb*0.3
    work_mem = total_mem_mb*0.03
    maintenance_work_mem = total_mem_mb*0.04
    前述の例では、total_mem_mbはデータベース・サーバーをホストするシステムの合計メモリー・サイズ(MB)です。たとえば、システムで使用可能なメモリーの合計が18,000 MBの場合、このワークシートには次の情報が含まれます:
    max_connections = 1024
    shared_buffers = 18000*0.3
    work_mem = 18000*0.03
    maintenance_work_mem = 18000*0.04

    最終的に追加する数値は次のとおりです:

    max_connections = 1024
    shared_buffers = 5400MB
    work_mem = 540MB
    maintenance_work_mem = 720MB
  15. 計算した値を/var/lib/pgsql/data/postgresql.confファイルに追加します。
  16. データベースを再起動します。
    sudo systemctl restart postgresql
  17. これで、「単一ホストへのインストール」の説明に従ってホストを設定する準備が整いました。

単一ホストへのインストール

この項では、データベースがローカルまたはリモート・ホストにある単一ホストにPrivate Automation Hubをインストールする手順について説明します。これはパスワードなしのSSH接続が設定されていることを前提としています。

ホストを設定するには:

  1. デプロイメント・ホストで、パスワードなしのSSHが構成されたユーザーとしてターゲット・ホストにログインします。詳細は、「パスワードなしのSSHの設定」を参照してください。
  2. Oracle Linux 8を実行している場合は、ホストにpython 3.6がインストールされていることを確認してください。python 3.6がインストールされていない場合は、次のコマンドを実行します:
    sudo dnf install python36
  3. Private Automation Hubソフトウェアをインストールします:
    sudo dnf install ol-private-automation-hub-installer
            
  4. /single-nodeフォルダの内容を作業ディレクトリにコピーします。
    cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node
  5. 作業ディレクトリから、hosts.singlenode.examplehostsを作成します。たとえば、
    cd ~/single_node
    cp hosts.singlenode.example hosts
  6. hostsファイルを次のように編集します:
    all:
      hosts:
        hub:
          ansible_host: <ip_address_or_hostname>
          ansible_user: <username>
    前述の例では次のようになります。
    • <ip_address_or_hostname>は、Private Automation Hubをインストールするターゲット・ノードのIPアドレスまたはホスト名です。このホストは、デプロイメント・ホストからSSHを使用してアクセスできる必要があります。

      ノート:

      ホスト名に有効な文字は、aからz、0から9、およびハイフン(-)です。ホスト名の先頭にハイフンを使用することはできません。
    • <username>は、Private Automation Hubをインストールするターゲット・ノードでインストーラのプレイブック・コマンドを実行するユーザー名です。このユーザーにはsudo権限が必要です。
  7. インストール中に使用するその他のインストール・パラメータを設定するには、「インストール・パラメータ・ファイルの設定」の説明に従ってインストール・パラメータ・ファイルを設定します。
  8. 次のいずれかを行います:
    • Private Automation Hubを実行している同じホストにローカル・データベースをインストールするには、次のコマンドを実行します:
      ansible-playbook single-node-install.yml -i hosts -e "olpah_admin_password=<admin_password> olpah_db_password=<db_password>"
      前述の例では、<admin_password><db_password>は、デフォルトの管理ユーザーとデータベース・ユーザー・アカウントのパスワードです。

      ノート:

      パラメータ・ファイルを使用するには、コマンドの末尾に次のコードを追加します:
      -e "@single-node-vars.yml"
    • リモート・ホスト上の既存のデータベースを使用するには、次のコマンドを実行します:
      1. リモート・データベースにログインします。
      2. 次のデータベース拡張機能をインストールします。
        sudo dnf install postgresql-contrib
      3. データベースを再起動します。
        sudo systemctl restart postgresql
      4. データベース・ユーザー・アカウントを作成します。例:
        sudo su - postgres -c "createuser -S -P pulp"
      5. pulpユーザーのパスワードを入力し、確認します。

        ノート:

        前のステップで指定した<db_password>と同じである必要があります。
        Enter password for new role: 
        Enter it again: 
      6. データベース・インスタンスを作成します。例:
        sudo su - postgres -c "createdb -O pulp pulp"
      7. single-node-install.ymlファイルから、pulp_databaseロールを削除します。
      8. "@single-node-vars.yml"変数ファイルで、リモート・データベースのデータベース・ホスト名またはIPアドレス(existing_db_host: <db_hostname_or_ip_address>)を設定します。パラメータ・ファイルを使用したインストールの詳細は、「インストール・パラメータ・ファイルの設定」を参照してください。
      9. デプロイメント・ホストに戻り、次のコマンドを実行します:
        ansible-playbook single-node-install.yml -i hosts -e "olpah_admin_password=<admin_password> olpah_db_password=<db_password>" -e "@single-node-vars.yml"
        前述の例では、<admin_password><db_password>は、デフォルトの管理ユーザーとデータベース・ユーザー・アカウントのパスワードです。
  9. これでホストの準備が完了しました。ブラウザを使用すると、管理ユーザーとしてログインできます。
    https://<ip_address_or_hostname>

インストール・パラメータ・ファイルの構成

Private Automation Hubのインストール時に、追加のパラメータを構成することが必要になる場合があります。単一ホストへのインストール用に追加パラメータを構成する場合は、single-node-vars.ymlパラメータ・ファイルを編集します。

ノート:

パラメータ・ファイルは、Private Automation Hubのインストール前でもインストール後でも構成できます。Private Automation Hubのインストール後に構成する場合は、「単一ホストへのインストール」の説明に従って、このステップを完了し、プレイブックを再実行する必要があります。
パラメータ・ファイルで追加のインストール・パラメータを構成するには、次の手順を実行します:
  1. パラメータ・ファイルに、必要な追加パラメータを追加します。例:
    existing_db_host: <db_hostname_or_ip_address>
    pulp_pkg_repo: "<local_repo_url>"
    
    olpah_require_content_approval: <True or False>
    pulp_api_workers: <Number_of_workers>
    connected_olam_controllers: [
     "https://<olam_controller_server_url1>/",
     "https://<olam_controller_server_url2>/",
     ...
    ]
    
    • リモート・データベースを使用するには、パラメータ・ファイルに次のパラメータを追加します。たとえば、
      existing_db_host: <db_hostname_or_ip_address>

      前述の例では、<db_hostname_or_ip_address>はリモート・データベースのホスト名またはIPアドレスです。

    • ULNまたはyumリポジトリのリモート・ミラーを使用するには、パラメータ・ファイルに次のパラメータを追加します。たとえば、
      pulp_pkg_repo: "<local_repo_url>"
      前述の例では、<local_repo_url>はリモート・ミラー・リポジトリのURLです。URLパスは次のようになります:
      pulp_pkg_repo: "http://<ip_address>/yum/OracleLinux/OL8/automation<version>/$basearch/ol8_x86_64_automation<version>/"

      前述の例では、<ip_address>はリポジトリのIPアドレス、<version>はリポジトリのバージョンです。

    • コレクションのアップロードの承認プロセスを有効にするには、パラメータ・ファイルで次のパラメータを有効にします。
      olpah_require_content_approval: True

      ノート:

      このステップは、Private Automation Hubのインストール前でもインストール後でも実行できます。Private Automation Hubのインストール後に実行する場合は、このステップを完了し、この手順の説明に従ってプレイブックを再実行する必要があります。
    • Private Automation Hubで使用可能なPulp APIワーカーのデフォルト数を変更するには、この値をターゲット・インスタンスで使用可能なCPUコア数と同じ数に設定することを検討します。たとえば、
      pulp_api_workers: 2
    • 1つ以上のOracle Linux Automation Manager制御サーバーをPrivate Automation Hubにリンクして、Oracle Linux Automation Managerでの実行環境をより簡単に構成できるようにするには、パラメータ・ファイル内の次のパラメータに1つ以上のURLを追加します。
      connected_olam_controllers: [
       "https://<olam_controller_server_url1>/",
       "https://<olam_controller_server_url2>/",
       ...
      ] 

      前述の例では、<olam_controller_server_url1><olam_controller_server_url2>が制御サーバーのURLです。使用可能にする制御サーバーの数に応じて、これらのURLを追加できます。URLにはhttps://を含める必要があります。この機能の詳細は、Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイドを参照してください。

    • Private Automation HubをLDAPサーバーと統合するには、「LDAPパラメータの構成」で説明されているLDAPパラメータを追加します。

LDAPパラメータの構成

パラメータ・ファイルにLDAPパラメータを構成するには、次の手順を実行します:
  1. パラメータ・ファイルを編集し、次の必要なLDAP関連パラメータをファイルの末尾に追加します:
    #Enable galaxy_ng LDAP Integration
    config_ldap: True
    
    # LDAP Binding and Directory Look Up
    auth_ldap_server_uri: "<ldap_url>"
    auth_ldap_bind_dn: "<ldap_bind>"
    auth_ldap_bind_password: "<ldap_bind_password>"
    auth_ldap_user_search_base_dn: "cn=users,cn=accounts,dc=example,dc=com"
    auth_ldap_user_search_scope: "SUBTREE"
    auth_ldap_user_search_filter: "(uid=%(user)s)"
    auth_ldap_group_search_base_dn: "cn=groups,cn=accounts,dc=example,dc=com"
    auth_ldap_group_search_scope: "SUBTREE"
    auth_ldap_group_search_filter: "(objectClass=groupofnames)"
    auth_ldap_group_type_class: "django_auth_ldap.config:GroupOfNamesType"
    auth_ldap_user_flags_by_group__is_superuser: "cn=superuserexample,cn=groups,cn=accounts,dc=example,dc=com"
    auth_ldap_mirror_groups: False
    
    # LDAP Backend
    ldap_logging: True
    auth_ldap_start_tls: True
    use_galaxy_ldap_self_signed_cert: True
    
    
    前述の例では次のようになります。
    • config_ldap

      LDAP統合を有効にするには、config_ldapパラメータの値をTrueに設定します。

    • auth_ldap_server_uri
      LDAPサーバーにアクセスするためのURIをldap://<host>の形式で指定します。<host>はLDAPサーバーのホスト名です。このフィールドは必須です。たとえば、
      ldap://ldap1.example.com

      サーバーがStartTLS機能を使用している場合は、URIスキーム内でプロトコルをldapに設定し、auth_ldap_start_tlsオプションを有効にできます。

    • auth_ldap_bind_dn

      バインド操作を使用してLDAPサーバーに対してOracle Linux Automation Managerを認証するために使用する識別名(DN)を入力します。LDAPサーバーが匿名アクセスを許可していない場合は、このフィールドは必須です。例:

      uid=admin,cn=users,cn=accounts,dc=example,dc=com
    • auth_ldap_bind_password

      すでに指定したバインドDNのバインドパスワードを入力します。

    • auth_ldap_user_search_base_dn

      ディレクトリ内でユーザーがリストされているDNを指定します。

    • auth_ldap_user_search_scope

      ユーザーがリストされているベースDNに対してLDAP検索問合せを実行する際に使用するスコープを指定します。通常、スコープ値は1レベルの深さ(ONELEVEL)またはサブツリー全体(SUBTREE)に設定されます。

    • auth_ldap_user_search_filter

      ユーザーがリストされているベースDNに対してLDAP検索問合せを実行する際に適用する検索フィルタを指定します。%(user)s構文を使用して、ユーザーが認証時に指定したユーザー名と属性またはキーを照合できます。

    • auth_ldap_group_search_base_dn

      ユーザーのグループ・メンバーシップを決定するためのLDAP検索問合せを実行する際に使用するベースDNを指定します。

    • auth_ldap_group_search_scope

      グループがリストされているベースDNに対してLDAP検索問合せを実行する際に使用するスコープを指定します。通常、スコープ値は1レベルの深さ(ONELEVEL)またはサブツリー全体(SUBTREE)に設定されます。

    • auth_ldap_group_search_filter

      グループがリストされているベースDNに対してLDAP検索問合せを実行する際に適用する検索フィルタを指定します。

    • auth_ldap_group_type_class

      適切なLDAPグループ・タイプを指定して、認証時にLDAPサーバーがユーザーのグループ・メンバーシップを決定する方法を定義します。LDAPグループ・タイプは、LDAPサーバーにリストされているグループに対して定義されているObjectClassesにマッピングされ、LDAPサーバーの実装によって異なる場合があります。このパラメータの値は、基盤となるDjangoフレームワークと、そのフレームワークが認識するLDAP ObjectClassesに関連しています。そのため、値にはdjango_auth_ldap.config:という接頭辞が付きます。

    • auth_ldap_user_flags_by_group__is_superuser
      このグループに関連付けられたすべてのユーザーには、Private Automation Hubでスーパーユーザー権限があります。

      注意:

      この値に誤りがあると、インストール・プロセスの完了後にPrivate Automation Hubにログインできなくなります。ログインするには、エラーを修正してインストール・プロセスを再度実行する必要があります。LDAPサーバーが指定されたスーパーユーザー・グループでまだ構成されていない場合は、ローカルに定義された管理ユーザーを除き、スーパーユーザー・グループ情報がLDAPサーバーに追加されるまで、Private Automation Hubにログインできません。
    • auth_ldap_mirror_groups

      この機能を有効にすると、ユーザーがPrivate Automation Hubにログインするたびに、そのユーザーに関連付けられたLDAPグループがPrivate Automation Hubにミラーリングされます。この機能を有効にするには、この値をTrueに設定します。

    • ldap_logging

      LDAPアクティビティのログを保持するには、ldap_loggingの値をTrueに設定します。ロギングは認証の問題のデバッグに役立つ場合があります。

    • auth_ldap_start_tls

      LDAPサーバーがStartTLS機能を使用している場合は、auth_ldap_server_uriで使用するURIスキーム内でプロトコルを'ldap'に設定し、auth_ldap_start_tlsの値をTrueに設定できます。

    • use_galaxy_ldap_self_signed_cert

      LDAPサーバーでTLSまたはSSLに使用される証明書が自己署名されており、CAに対する証明書の検証を無効にする場合は、use_galaxy_ldap_self_signed_certの値をTrueに設定します。