ノート:

Oracle LinuxへのOracle Linux Automation Managerのインストール

イントロダクション

Oracle Linux Automation Managerは、リモート・ホストの在庫に対してOracle Linux Automation Engineプレイブックをスケジュールおよび実行するためのタスク・エンジンおよびWebベースのグラフィカル・ユーザー・インタフェース(GUI)です。このツール・スイートを使用すると、管理者はITインフラストラクチャを簡単に管理し、既知の予測可能な方法で繰返しタスクを完了できるため、手動による一般的な管理の問題を回避できます。

Oracle Linux Automation Engineは、コードベースのインフラストラクチャをコード(IaC)YAML定義ファイル(プレイブック)として使用して、管理タスクを管理および実行するためのツールです。これらのプレイブックには、ソフトウェアのデプロイ、システムの構成、アップグレードと更新のオーケストレーションなどの手順が含まれます。

目的

このチュートリアルでは、次の方法を学習します。

前提条件

Oracle Linuxのデプロイ

ノート:独自のテナンシで実行している場合は、linux-virt-labs GitHubプロジェクトREADME.mdを読み、演習環境をデプロイする前に前提条件を完了してください。

  1. Lunaデスクトップでターミナルを開きます。

  2. linux-virt-labs GitHubプロジェクトをクローニングします。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 作業ディレクトリに移動します。

    cd linux-virt-labs/olam
    
  4. 必要なコレクションをインストールします。

    ansible-galaxy collection install -r requirements.yml
    
  5. Oracle Linuxインスタンス構成を更新します。

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
    olam_type: none
    EOF
    
  6. インベントリファイルを作成します。

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. 演習環境をデプロイします。

    ansible-playbook create_instance.yml -i hosts -e "@instances.yml"
    

    無料のラボ環境では、Oracle Cloud Infrastructure SDK for Python用のRPMパッケージをインストールするため、localhostに追加変数ansible_python_interpreterが必要です。このパッケージをインストールする場所は、使用しているOracle Linuxのバージョンに基づくシステムのデフォルトのPythonモジュールの下にあります。インベントリ変数を使用すると、localhost以外のホストで実行されている再生に影響を与えません。

    デフォルトのデプロイメント・シェイプでは、AMD CPUが使用されます。コマンドラインで新しいシェイプ変数定義を渡すことで、インスタンスのシェイプを変更できます。

    たとえば: -e instance_shape="VM.Standard3.Flex"

    同様に、Oracle Linuxイメージのデフォルト・バージョンでは、default_vars.ymlファイルに定義されている変数os_versionが使用されます。この値は、コマンドラインでOracle Linuxメジャー・バージョンを渡すことによって変更できます。

    たとえば: -e os_version="9"

    重要:プレイブックが正常に実行されるまで待機し、一時停止タスクに到達します。プレイブックのこの段階では、Oracle Linuxのインストールが完了し、インスタンスの準備ができました。前回の再生は、デプロイするノードのパブリックIPアドレスとプライベートIPアドレスを出力します。

Oracle Linux DNFリポジトリの有効化およびファイアウォール・ルールの設定

Oracle Linux Automation Managerをインストールする前に、必要なyumリポジトリおよびファイアウォール・ルールを有効にします。

  1. 端末を開き、sshを介してlamノード・ノードに接続します。

    ssh oracle@<ip_address_of_instance>
    
  2. Oracle Linux Automation Managerリポジトリをインストールします。

    Oracle Linux 8:

    sudo dnf -y install oraclelinux-automation-manager-release-el8
    

    Oracle Linux 9:

    sudo dnf -y install oraclelinux-automation-manager-release-el9
    

    このコマンドは、製品のパッケージをインストールするためのデフォルトとして、最新のOracle Linux Automation Managerリポジトリを有効にします。

  3. HTTP/HTTPSサービスをファイアウォール・ルールに追加します。

    sudo firewall-cmd --add-service=https --permanent
    sudo firewall-cmd --reload
    

ローカルPostgreSQLデータベースのインストール

  1. モジュール・ストリームを有効にします。

    sudo dnf module reset postgresql
    sudo dnf -y module enable postgresql:16
    
  2. データベースをインストールします。

    sudo dnf -y install postgresql-server
    
  3. データベースを初期化します。

    sudo postgresql-setup --initdb
    
  4. パスワードストレージメカニズムを scram-sha-256に切り替えます。

    sudo sed -i "s/#password_encryption.*/password_encryption = scram-sha-256/" /var/lib/pgsql/data/postgresql.conf
    
  5. データベースを有効化して起動します。

    sudo systemctl enable --now postgresql
    
  6. データベース・ユーザー・アカウントを作成します。

    重要:この無料の演習環境では、プロンプトでpasswordのパスワードを使用します。このパスワードは安全ではありません。このパスワードは、この環境でのデモンストレーションの目的でのみ使用します。

    sudo su - postgres -c "createuser -S -P awx"
    
  7. データベースを作成します。

    sudo su - postgres -c "createdb -O awx awx"
    
  8. ホストベースの認証ファイルを更新します。

    echo "host  all  all 0.0.0.0/0 scram-sha-256" | sudo tee -a /var/lib/pgsql/data/pg_hba.conf > /dev/null
    
  9. データベース・リスナーのIPアドレスを更新します。

    sudo sed -i "/^#port = 5432/i listen_addresses = '"$(hostname -i)"'" /var/lib/pgsql/data/postgresql.conf
    
  10. データベース・メモリー要件を更新します。

    これらの計算では、システムの合計メモリー(MB)が利用され、PostgreSQL構成ファイルのデフォルト値が置き換えられます。

    export TOTAL_MEMORY="$(free --mega | awk 'FNR == 2 {print $2}')"
    sudo sed -i 's/max_connections = 100/max_connections = 1024/g' /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^shared_buffers =/c\shared_buffers = $( echo "($TOTAL_MEMORY*0.3)/1" | bc )" /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^#work_mem =/c\work_mem = $( echo "($TOTAL_MEMORY*0.03)/1" | bc )" /var/lib/pgsql/data/postgresql.conf
    sudo sed -i "/^#maintenance_work_mem =/c\maintenance_work_mem = $( echo "($TOTAL_MEMORY*0.04)/1" | bc )MB" /var/lib/pgsql/data/postgresql.conf
    
  11. データベースを再起動します。

    sudo systemctl restart postgresql
    

Oracle Linux Automation Managerのインストールおよび構成

  1. Oracle Linux Automation Managerパッケージおよび依存関係をインストールします。

    sudo dnf -y install ol-automation-manager
    
  2. Redis構成ファイルを更新します。

    Oracle Linux 8:

    sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis.conf
    

    Oracle Linux 9:

    sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis/redis.conf
    
  3. CLUSTER_HOST_IDをカスタム設定ファイルに追加します。

    cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null
    CLUSTER_HOST_ID = '$(hostname -i)'
    EOF
    

    ノート: $(hostname -i)の使用は、出力にスペースが存在するため、IPv6が有効になっているシステムでは機能しません。代わりに、システムのホスト名($(hostname -f)を使用することも、スペースを含まないほかの文字列を使用することもできます)を使用してください。

  4. カスタム設定ファイルの権限を更新します。

    sudo chown awx.awx /etc/tower/conf.d/olam.py
    sudo chmod 0640 /etc/tower/conf.d/olam.py
    
  5. データベース設定をカスタム構成ファイルに追加します。

    cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null
    
    DATABASES = {
        'default': {
            'ATOMIC_REQUESTS': True,
            'ENGINE': 'awx.main.db.profiled_pg',
            'NAME': 'awx',
            'USER': 'awx',
            'PASSWORD': 'password',
            'HOST': '$(hostname -i)',
            'PORT': '5432',
        }
    }
    EOF
    
  1. リンガリングを有効にします。

    Oracle Linux 9:

    sudo loginctl enable-linger awx
    

    これにより、ヘッドレス・システムで実行しているときに次のメッセージが解決されます。

    WARN[0000] cgroupv2マネージャはsystemdに設定されていますが、使用可能なsystemdユーザー・セッションはありませんWARN[0000] systemdを使用する場合は、ユーザー・セッションWARN[0000]を使用してログインする必要がある場合があります。または、loginctl enable-linger 986 (rootの場合) WARN[0000] -cgroup-manager=cgroupfsにフォールバックして、言語を有効にすることもできます
    WARN[0000] cgroupv2 managerがsystemdに設定されているが、使用可能なsystemdユーザー・セッションがないWARN[0000] systemdを使用する場合、ユーザー・セッションWARN[0000]を使用してログインする必要がある場合があります。または、loginctl enable-linger 986 (rootの場合) WARN[0000] -cgroup-manager=cgroupfsに戻すことで、lingeringを有効にできます

  2. Oracle Linux Automation Managerコンテナ・イメージをプルします。

    Oracle Linux 8:

    sudo su -l awx -s /bin/bash
    
    podman system migrate
    
    podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol8
    

    Oracle Linux 9:

    sudo su -l awx -s /bin/bash
    
    podman system migrate
    
    podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol9
    
  3. Oracle Linux Automation Managerスキーマおよび管理ユーザー・アカウントを作成します。

    awx-manage migrate
    awx-manage createsuperuser --username admin --email admin@example.com
    

    ノート:前述の例では、admin@example.comは管理ユーザーの電子メール・アドレスの例です。

  4. 管理ユーザーのパスワードを入力して確認します。

  5. awxユーザー・シェルを終了します。

    exit
    
  6. NGINXのSSL証明書を生成します。

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/tower/tower.key -out /etc/tower/tower.crt
    

    要求された情報を入力するか、ENTERキーを押してください。

  7. デフォルトのNGINX構成を置き換えます。

    cat << EOF | sudo tee /etc/nginx/nginx.conf > /dev/null
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    }
    EOF
    
  8. レセプタ構成ファイルを更新します。

    cat << EOF | sudo tee /etc/receptor/receptor.conf > /dev/null
    ---
    - node:
        id: $(hostname -i)
    
    - log-level: debug
    
    - tcp-listener:
        port: 27199
    
    - control-service:
        service: control
        filename: /var/run/receptor/receptor.sock
    
    - work-command:
        worktype: local
        command: /var/lib/ol-automation-manager/venv/awx/bin/ansible-runner
        params: worker
        allowruntimeparams: true
        verifysignature: false
    EOF
    
  9. インスタンスをプロビジョニングし、実行環境を登録します。

    sudo su -l awx -s /bin/bash
    
    awx-manage provision_instance --hostname=$(hostname -i) --node_type=hybrid
    
    awx-manage register_default_execution_environments
    
    awx-manage register_queue --queuename=default --hostnames=$(hostname -i)
    
    awx-manage register_queue --queuename=controlplane --hostnames=$(hostname -i)
    
    awx-manage create_preload_data
    
    exit
    
  10. サービスを起動します。

    sudo systemctl enable --now ol-automation-manager.service
    
  11. サーバーから切断します

    exit
    

インストールの検証

  1. 同じターミナル・ウィンドウを使用して、SSHトンネルを構成します。

    ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
    

    ノート:前述の例で、<ip_address_of_instance>はOracle Linux Automation Managerを実行しているシステムのホスト名またはIPアドレスです。ホスト名を使用する場合は、ホストを解決可能である必要があります

  2. Webブラウザを開き、URLを入力します。

    https://localhost:8444
    

    ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの場合は、Advancedボタンをクリックし、Proceed to localhost (unsafe)リンクをクリックします。

  3. USERNAME adminおよび設定時に作成されたパスワードを使用して、Oracle Linux Automation Managerにログインします。

次のステップ

Oracle Linux Automation Managerをインストールすると、インフラストラクチャの自動化に役立つWebユーザー・インタフェースおよび様々な製品機能の確認を開始できます。Oracle Linuxトレーニング・ステーションに関する追加のトレーニングをチェックして、知識を広げ、アイデアを入手してください。

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。