2 Private Automation Hubのインストール
この章では、ホストの設定方法とPrivate Automation Hubソフトウェアのインストール方法、およびリモート・データベースとローカル・データベースを使用するオプションについて説明します。
リモート・データベースの設定
Oracle Linux Automation Managerの単一ホスト構成で、Oracle Linux 8上にリモートPostgresqlデータベース・インスタンスを設定するには、次の手順を実行します:
- ホストにOracle Linux 8または9をインストールします。
- ファイアウォールでデータベース・ポートを開きます:
sudo firewall-cmd --add-port=5432/tcp --permanent sudo firewall-cmd --reload postgresql 16モジュール・ストリームを有効にします。sudo dnf module reset postgresql sudo dnf module enable postgresql:16ノート:
Postgresql 16のライフ・サイクルの詳細は、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』のストリーム・モジュールのアプリケーションのライフ・サイクルについて説明している付録を参照してください。- データベースをインストールします。
sudo dnf install postgresql-server postgresql-contrib - データベースを初期化します:
sudo postgresql-setup --initdb /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- 次のコマンドでデータベースを起動します。このコマンドは、ホストの再起動時にデータベースも再起動するようにします:
sudo systemctl enable --now postgresql - データベースが実行中であることを確認します:
sudo systemctl status postgresql - データベース・ユーザー・アカウントを作成します。例:
sudo su - postgres -c "createuser -S -P pulp" - pulpユーザーのパスワードを入力し、確認します。
Enter password for new role: Enter it again: - データベースを作成します。
sudo su - postgres -c "createdb -O pulp pulp" - rootユーザーとして。
/var/lib/pgsql/data/pg_hba.confファイルに次の行を追加します:host all all 0.0.0.0/0 scram-sha-256 - 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アドレスまたはホスト名です。
- 次を使用して、メモリー要件パラメータを計算し、更新します:
前述の例では、total_mem_mbはデータベース・サーバーをホストするシステムの合計メモリー・サイズ(MB)です。たとえば、システムで使用可能なメモリーの合計が18,000 MBの場合、このワークシートには次の情報が含まれます:max_connections = 1024 shared_buffers = total_mem_mb*0.3 work_mem = total_mem_mb*0.03 maintenance_work_mem = total_mem_mb*0.04max_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 - 計算した値を
/var/lib/pgsql/data/postgresql.confファイルに追加します。 - データベースを再起動します。
sudo systemctl restart postgresql -
これで、「単一ホストへのインストール」の説明に従ってホストを設定する準備が整いました。
単一ホストへのインストール
この項では、データベースがローカルまたはリモート・ホストにある単一ホストにPrivate Automation Hubをインストールする手順について説明します。これはパスワードなしのSSH接続が設定されていることを前提としています。
ホストを設定するには:
- デプロイメント・ホストで、パスワードなしのSSHが構成されたユーザーとしてターゲット・ホストにログインします。詳細は、「パスワードなしのSSHの設定」を参照してください。
- Oracle Linux 8を実行している場合は、ホストにpython 3.6がインストールされていることを確認してください。python 3.6がインストールされていない場合は、次のコマンドを実行します:
sudo dnf install python36 -
Private Automation Hubソフトウェアをインストールします:
sudo dnf install ol-private-automation-hub-installer - /single-nodeフォルダの内容を作業ディレクトリにコピーします。
cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node - 作業ディレクトリから、
hosts.singlenode.exampleのhostsを作成します。たとえば、cd ~/single_node cp hosts.singlenode.example hosts 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権限が必要です。
- <ip_address_or_hostname>は、Private Automation Hubをインストールするターゲット・ノードのIPアドレスまたはホスト名です。このホストは、デプロイメント・ホストからSSHを使用してアクセスできる必要があります。
- インストール中に使用するその他のインストール・パラメータを設定するには、「インストール・パラメータ・ファイルの設定」の説明に従ってインストール・パラメータ・ファイルを設定します。
- 次のいずれかを行います:
- Private Automation Hubを実行している同じホストにローカル・データベースをインストールするには、次のコマンドを実行します:
前述の例では、<admin_password>と<db_password>は、デフォルトの管理ユーザーとデータベース・ユーザー・アカウントのパスワードです。ansible-playbook single-node-install.yml -i hosts -e "olpah_admin_password=<admin_password> olpah_db_password=<db_password>"ノート:
パラメータ・ファイルを使用するには、コマンドの末尾に次のコードを追加します:-e "@single-node-vars.yml" - リモート・ホスト上の既存のデータベースを使用するには、次のコマンドを実行します:
- リモート・データベースにログインします。
- 次のデータベース拡張機能をインストールします。
sudo dnf install postgresql-contrib - データベースを再起動します。
sudo systemctl restart postgresql - データベース・ユーザー・アカウントを作成します。例:
sudo su - postgres -c "createuser -S -P pulp" - pulpユーザーのパスワードを入力し、確認します。
ノート:
前のステップで指定した<db_password>と同じである必要があります。Enter password for new role: Enter it again: - データベース・インスタンスを作成します。例:
sudo su - postgres -c "createdb -O pulp pulp" single-node-install.ymlファイルから、pulp_databaseロールを削除します。"@single-node-vars.yml"変数ファイルで、リモート・データベースのデータベース・ホスト名またはIPアドレス(existing_db_host: <db_hostname_or_ip_address>)を設定します。パラメータ・ファイルを使用したインストールの詳細は、「インストール・パラメータ・ファイルの設定」を参照してください。- デプロイメント・ホストに戻り、次のコマンドを実行します:
前述の例では、<admin_password>と<db_password>は、デフォルトの管理ユーザーとデータベース・ユーザー・アカウントのパスワードです。ansible-playbook single-node-install.yml -i hosts -e "olpah_admin_password=<admin_password> olpah_db_password=<db_password>" -e "@single-node-vars.yml"
- Private Automation Hubを実行している同じホストにローカル・データベースをインストールするには、次のコマンドを実行します:
-
これでホストの準備が完了しました。ブラウザを使用すると、管理ユーザーとしてログインできます。
https://<ip_address_or_hostname>
インストール・パラメータ・ファイルの構成
single-node-vars.ymlパラメータ・ファイルを編集します。
ノート:
パラメータ・ファイルは、Private Automation Hubのインストール前でもインストール後でも構成できます。Private Automation Hubのインストール後に構成する場合は、「単一ホストへのインストール」の説明に従って、このステップを完了し、プレイブックを再実行する必要があります。- パラメータ・ファイルに、必要な追加パラメータを追加します。例:
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関連パラメータをファイルの末尾に追加します:
#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_ldapLDAP統合を有効にするには、
config_ldapパラメータの値をTrueに設定します。auth_ldap_server_uriLDAPサーバーにアクセスするための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_loggingLDAPアクティビティのログを保持するには、
ldap_loggingの値をTrueに設定します。ロギングは認証の問題のデバッグに役立つ場合があります。 -
auth_ldap_start_tlsLDAPサーバーがStartTLS機能を使用している場合は、
auth_ldap_server_uriで使用するURIスキーム内でプロトコルを'ldap'に設定し、auth_ldap_start_tlsの値をTrueに設定できます。 -
use_galaxy_ldap_self_signed_certLDAPサーバーでTLSまたはSSLに使用される証明書が自己署名されており、CAに対する証明書の検証を無効にする場合は、
use_galaxy_ldap_self_signed_certの値をTrueに設定します。