ノート:

Oracle Linux Automation Managerのアップグレード

イントロダクション

既存のOracle Linux Automation Manager管理者は、オールインワン・シングル・インスタンス・デプロイメントに精通しています。

Oracle Linux Automation Managerを使用すると、管理者は既存のデプロイメントをアップグレードし、アップグレードしたインスタンスをクラスタ化されたデプロイメントに後で移行できます。アップグレード時に、インスタンスは単一ホスト・デプロイメントに変換され、それ自体をハイブリッド・ノードとして構成します。

このチュートリアルに従うと、以前のリリースからOracle Linux Automation Managerをアップグレードする方法がわかります。

目的

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

前提条件

Oracle Linux Automation Managerのデプロイ

ノート:独自のテナンシで実行している場合は、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"
    passwordless_ssh: true
    olam_type: v1
    EOF
    
  6. 演習環境をデプロイします。

    ansible-playbook create_instance.yml -e ansible_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
    

    無料のラボ環境では、Oracle Cloud Infrastructure SDK for Python用のRPMパッケージをインストールするため、追加の変数ansible_python_interpreterが必要です。このパッケージのインストール場所は、python3.6モジュールの下にあります。

    デフォルトのデプロイメント・シェイプでは、AMD CPUおよびOracle Linux 8が使用されます。Intel CPUまたはOracle Linux 9を使用するには、デプロイメント・コマンドに-e instance_shape="VM.Standard3.Flex"または-e os_version="9"を追加します。

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

WebUIにログインします。

  1. 端末を開き、Oracle Linux Automation ManagerへのSSHトンネルを構成します。

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

    無料の演習環境では、lamノード・インスタンスの外部IPアドレスを使用します。

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

    https://localhost:8444
    

    ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの**「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。

  3. USERNAME adminおよび自動デプロイメント中に作成されたPASSWORD adminを使用して、Oracle Linux Automation Managerにログインします。

    オラムログイン

  4. ログイン後、WebUIが表示されます。

    クマツヅラ

アップグレードの実行

  1. Oracle Linux Automation Managerインスタンスを実行しているolam-nodeインスタンスに接続されている端末に切り替えます。

  2. Oracle Linux Automation Managerサービスを停止します。

    sudo systemctl stop ol-automation-manager
    
  3. データベース内の自動化シークレットを暗号化するためにOracle Linux Automation Managerで使用される秘密キーのバックアップを作成します。

    sudo cp /etc/tower/SECRET_KEY ~/SECRET_KEY.olamv1
    
  4. データベースのバックアップを作成します。

    このコマンドは、データベースの内容を、データベースをリストアするために必要なすべてのSQLコマンドとデータを含むファイルにダンプします。

    sudo su - postgres -c pg_dumpall > /tmp/olamv1_db_dump
    
  5. データベース・サービスを停止します。

    sudo systemctl stop postgresql
    
  6. 既存のデータベース・データファイルを削除します。

    sudo rm -rf /var/lib/pgsql/data
    

    このコマンドは、既存のデータベース・データファイルを削除します。データベースは、後でダンプ・ファイルを使用して再構築されます。

  7. 現在のデータベース・パッケージをアンインストールします。

    sudo dnf -y remove postgresql
    
  8. 新しいデータベース・バージョンのモジュール・ストリームを有効にします。

    Oracle Linux Automation Managerでは、アップグレード時にPostgreSQL 12および13を使用できます。この演習ではバージョン13を使用します。

    sudo dnf -y module reset postgresql
    sudo dnf -y module enable postgresql:13
    
  9. Oracle Linux Automation Managerリポジトリ・パッケージを更新します。

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

    ノート:このステップでは、初期デプロイメントでOracle Linux Automation Managerの最新のリポジトリ・パッケージがすでにインストールされているため、無料の演習環境では何もできないことが報告されます。

  10. すべてのOracle Linux Automation Managerリポジトリを無効にします。

    sudo dnf config-manager --disable ol8_automation ol8_automation2 ol8_automation2.2
    
  11. Oracle Linux Automation Managerパッケージをリリース2にアップグレードします。

    sudo dnf -y install ol-automation-manager --enablerepo ol8_automation2
    
  12. 現在のリポジトリを有効にします。

    sudo dnf config-manager --enable ol8_automation2.2
    
  13. Oracle Linux Automation Managerパッケージを更新します。

    sudo dnf -y update ol-automation-manager
    

    ノート:アップグレード中に、次の予期されるメッセージが出力に表示されます。

      Upgrading        : ol-automation-manager-2.1.0-10.el8.x86_64            26/28 
    warning: /etc/tower/settings.py created as /etc/tower/settings.py.rpmnew
    
      Running scriptlet: ol-automation-manager-2.1.0-10.el8.x86_64            26/28 
    ValueError: File context for /var/run/tower(/.*)? already defined
    
  14. データベース・サーバーをインストールします。

    sudo dnf -y install postgresql-server
    
  15. データベースを初期化してから起動およびリストアします。

    sudo postgresql-setup --initdb
    sudo systemctl start postgresql
    sudo su - postgres -c 'psql -d postgres -f /tmp/olamv1_db_dump'
    
  16. データベースが使用可能であることを確認します。

    sudo su - postgres -c 'psql -l | grep awx'
    

    出力例:

    [oracle@control-node ~]$ sudo su - postgres -c 'psql -l | grep awx'
     awx       | awx      | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
    

    出力には、ダンプ・ファイルを使用したリストアの実行後にデータベース内に作成されたawxアカウントが表示されます。

  17. デフォルトのOracle Linux Automation Managerグローバル設定ファイルを置き換えます。

    Oracle Linux Automation Managerパッケージのアップグレード後、新しいrpmによって、.rpmnewの拡張子を持つデフォルト構成ファイルが作成されます。このプロセスにより、システム管理者は構成の違いを確認し、必要な変更を手動で移行できます。

    sudo mv /etc/tower/settings.py /etc/tower/settings.py.save
    sudo mv /etc/tower/settings.py.rpmnew /etc/tower/settings.py
    
    
  18. 新しいグローバル設定ファイルと古いグローバル設定ファイルの違いを表示します。

    sudo diff /etc/tower/settings.py /etc/tower/settings.py.save
    

    ノート:以前にsettings.pyファイルに追加されたカスタム設定は、WebUIで設定するか、/etc/tower/conf.dの下のファイルに移動する必要があります。

  19. 必要な設定を含むカスタム設定ファイルを作成します。

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

    このコマンドは、CLUSTER_HOST_ID設定をシステムのIPアドレスに設定し、デフォルトのキュー名をアップグレード前のバージョンのtowerのデフォルト名に設定します。構成ファイルに入力する値は、Python構文形式に従う必要があります。

    ノート: Oracle Linux Automation Managerをアップグレードする場合、アップグレード後にジョブが保留ステータスでスタックしないように、CLUSTER_HOST_ID値は前のインストールの値と一致する必要があります。リリース1のデフォルトのキュー名はtowerで、リリース2ではdefaultです。

  20. レセプタ構成ファイルを更新します。

    リセプタ メッシュはオーバーレイ ネットワークで、作業の分散を処理するためにコントローラとエグゼキュータの間にピアツーピア接続を作成します。

    sudo sed -i "s/0.0.0.0/$(hostname -i)/" /etc/receptor/receptor.conf
    
  21. レセプタ構成ファイルを確認します。

    sudo cat /etc/receptor/receptor.conf
    
    • id:は、Oracle Linux Automation Managerシステムのホスト名またはIPアドレスです。
    • port:は、レセプタ・メッシュのTCPリスニング・ポートで、デフォルトはTCPポート27199です。
  22. Oracle Linux Automation Managerをデプロイします。

    1. awxユーザーとしてシェルを開きます。

      sudo su -l awx -s /bin/bash
      
    2. 権限のないネームスペースを維持しながら、既存のコンテナを最新のpodmanバージョンに移行します。

      podman system migrate
      
    3. Oracle Linux Automation ManagerのOracle Linux Automation Engine実行環境を取得します。

      podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.2
      
    4. awx-manageユーティリティを使用して、Oracle Linux Automation Managerインスタンスを設定します。

      awx-manage makemigrations --merge
      awx-manage migrate
      awx-manage register_default_execution_environments
      exit
      
      
  23. 秘密キー・ファイルのバックアップをリストアします。

    sudo cp ~/SECRET_KEY.olamv1 /etc/tower/SECRET_KEY
    
  24. Oracle Linux Automation Manager設定ファイルに次のパラメータを追加します。

    cat << EOF | sudo tee -a /etc/tower/conf.d/olamv2.py > /dev/null
    
    # OLAM Reaper Job Status Tracking
    REAPER_TIMEOUT_SEC = 60
    EOF
    
  25. 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   
    
  26. データベース・チューニング・パラメータを更新します。

    sudo sed -i 's/max_connections = [0-9]\+/max_connections = 1024/' /var/lib/pgsql/data/postgresql.conf
    
    sudo sed -i 's/shared_buffers = [0-9]\+MB/shared_buffers = 5400MB/' /var/lib/pgsql/data/postgresql.conf
    
    sudo sed -i 's/#\(work_mem = \)[0-9]\+MB/\1'540MB/ /var/lib/pgsql/data/postgresql.conf
    
    sudo sed -i 's/#\(maintenance_work_mem = \)[0-9]\+MB/\1'720MB/ /var/lib/pgsql/data/postgresql.conf
    
  27. データベースを再起動します。

    sudo systemctl restart postgresql
    
  28. NGINXを再起動します。

    sudo systemctl restart nginx
    
  29. Oracle Linux Automation Managerを起動します。

    sudo systemctl start ol-automation-manager
    

アップグレードを確認します

  1. 前のWebUIの表示に使用したWebブラウザ・ウィンドウをリフレッシュするか、新しいWebブラウザ・ウィンドウを開いてURLを入力します。

    https://localhost:8444
    

    URLで使用されるポートは、SSHトンネルのローカル・ポートと一致する必要があります。

  2. 「ユーザー名」adminおよび「パスワード」adminを使用して、Oracle Linux Automation Managerに再度ログインします。

    olam2- ログイン

  3. ログイン後、WebUIが表示されます。

    olam2-webui

次のステップ

アップグレードが完了し、ジョブを実行する準備ができました。Oracle Linux Automation Managerについてさらに学習するには、Oracle Linuxトレーニング・ステーションで他のOracle Linux Automation Managerトレーニングをチェックして、ドキュメントを確認し、スキルを引き続き構築してください。

Oracle Linux Automation Managerドキュメント
Oracle Linux Automation Managerトレーニング
Oracle Linuxトレーニング・ステーション

その他の学習リソース

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

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