2 Private Automation Hubのインストール
この章では、ホストの設定方法とPrivate Automation Hubソフトウェアのインストール方法を示し、リモート・データベースまたはローカル・データベースを使用するためのオプションを提供します。
リモート・データベースの設定
Oracle Linux Automation Manager単一ホスト構成用にOracle Linux 8にリモートPostgresqlデータベース・インスタンスを設定するには、次を実行します:
- ホストにOracle Linux 8をインストールします。
- ファイアウォールでデータベース・ポートを開きます:
sudo firewall-cmd --add-port=5432/tcp --permanent sudo firewall-cmd --reload
postgresql 13
モジュール・ストリームを有効にします。sudo dnf module reset postgresql sudo dnf module enable postgresql:13
ノート:
Postgresql 13ライフサイクルの詳細は、「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ユーザーとして、
# CONNECTIONS AND AUTHENTICATION
セクションの/var/lib/pgsql/data/postgresql.conf
ファイルで、テキスト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は、データベース・サーバーをホストしているシステムの合計メモリー・サイズ(メガバイト)です。 たとえば、システムで使用可能なメモリーの合計が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.04
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
- 計算値を
/var/lib/pgsql/data/postgresql.conf
ファイルに追加します。 - データベースを再起動します。
sudo systemctl restart postgresql
-
これで、「単一ホストへのインストール」の説明に従ってホストを設定する準備ができました。
単一ホストへのインストール
この項では、データベースがローカルまたはリモート・ホストにある単一ホストにPrivate Automation Hubをインストールする手順を示し、パスワードなしのSSH接続が設定されていることを前提としています。
ホストを設定するには:
- デプロイメント・ホストで、パスワードなしSSHで構成されたユーザーとしてターゲット・ホストにログインします。 詳細については、「パスワードなしSSHの設定」を参照してください。
- 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"
変数ファイルで、リモート・データベース(existing_db_host: <db_hostname_or_ip_address>
)のデータベース・ホスト名またはIPアドレスを設定します。 パラメータ・ファイルを使用したインストールの詳細は、「インストール・パラメータ・ファイルの構成」を参照してください。- デプロイメント・サーバーに戻り、次のコマンドを実行します:
前の例で、<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.2: 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_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にログインするたびに、Private Automation Hubでユーザーに関連付けられたLDAPグループがミラー化されます。 この機能を有効にするには、この値を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に設定します。