ノート:

Oracle Linux Automation Managerでのカスタム実行環境の使用

イントロダクション

Oracle Linux Automation Managerでは、カスタム実行環境(ee)を使用して、コレクションを含むプレイブックと、デフォルトのolam-eeイメージで使用できないその他のリソースを利用できます。ビルダー・ユーティリティを使用して構築し、Private Automation Hubに格納してから、Oracle Linux Automation Managerにプルします。

どのように動作するのか

このチュートリアルでは、事前構築済のイメージをPrivate Automation Hubにアップロードし、それをOracle Linux Automation Managerにプルしてプレイブックを実行する方法を示します。カスタマイズされた実行環境の作成の詳細は、ビルダー・ユーティリティのチュートリアルおよびPrivate Automation Hubのこのチュートリアルを参照してください。

目的

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

前提条件

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: "devops-node"
        type: "server"
      2:
        instance_name: "ol-pah"
        type: "server"
      3:
        instance_name: "olam-node"
        type: "control"
    passwordless_ssh: true
    use_olam_builder: true
    use_olam_pah: true
    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アドレスを出力する前の再生に注意してください。

Private Automation Hubへのカスタム実行環境のプッシュ

Private Automation HubにカスタムEeをプッシュする方法の1つは、Private Automation Hubチュートリアルに示すように、コマンドラインからpodmanを使用することです。プレイブックおよび containers.podmanコレクションを使用して、このタスクを実行することもできます。

  1. 端末を開き、SSH経由でdevops-nodeインスタンスに接続します。

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

    sudo dnf install ansible-core -y
    
  3. 必要なコレクションをインストールします。

    ansible-galaxy collection install containers.podman
    
  4. カスタムeeイメージにタグを付けてプッシュするプレイブックを作成します。

       
    tee push-image.yml > /dev/null <<EOF
    ---
    - hosts: localhost
      collections:
        - containers.podman
    
      tasks:
    
      - name: get domain_name
        command: hostname -d
        register: domain_name
    
      - name: output domain_name var
        debug:
          msg: "{{domain_name.stdout}}"
    
      - name: push image to pah
        containers.podman.podman_image:
          name: my_custom_ee
          push: true
          push_args:
            dest: ol-pah.{{domain_name.stdout}}/my_first_olam_ee_image:latest
          username: admin
          password: password
          validate_certs: false
       
    EOF
    
  5. プレイブックを実行します。

    ansible-playbook push-image.yml
    

    プレイブックはlocalhostで実行されるため、定義されたインベントリ・ファイルは必要ありません。

Private Automation Hubにイメージが存在することを確認

  1. Luna Desktopから新しいターミナルを開きます。

  2. Private Automation HubへのSSHトンネルを構成します。

    ssh -L 5444:localhost:443 oracle@<ip_address_of_ol-pah>
    
  3. Webブラウザを開き、URLを入力します。

    https://localhost:5444
    

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

  4. Private Automation Hub WebUIにログインします。

    ユーザー名adminおよびパスワードpasswordを使用します。無料の演習環境では、演習のデプロイメント中にこのパスワード値を設定します。

    ログイン

  5. ログインに成功すると、WebUIが表示されます。

    網膜炎

  6. Private Automation Hub WebUIの左上隅にあるナビゲーション・メニューをクリックします。

  7. 「実行環境」および「実行環境」にナビゲートします。

  8. 新しいmy_first_olam_ee_imageがメイン・パネルに表示されることに注意してください。

    パイ2

プレイブックの作成

Oracle Linux Automation Manager管理者は、手動ソース・コントロールを使用するプロジェクトが活用できるファイル・システムでローカルにプレイブックを作成できます。devops-nodeを使用して、Oracle Linux Automation Engineを使用してプロジェクト・プレイブックをOracle Linux Automation Managerにプッシュするプレイブックを作成します。プレイブックはそのインスタンスにのみ存在するため、この構成はOracle Linux Automation Managerの単一ホスト・インストールでのみ機能します。

  1. 端末に切り替えるか開いて、sshを使用して devops-nodeインスタンスに接続します。

  2. プロジェクト・ディレクトリを作成し、そのディレクトリに作業ディレクトリを変更します。

    mkdir ~/project1
    cd ~/project1
    
  3. テンプレートを作成します。

    このテンプレートは、ホスト上のコンテナ・イメージのリストを取得するためにOracle Linux Automation Managerサーバーのファイル・システムに書き込むプレイブック・ファイルです。

    mkdir templates
    tee templates/list-images.yml.j2 > /dev/null <<EOF
    ---
    - hosts: all
      collections:
        - containers.podman
      become: yes
    
      tasks:
    
      - name: gather info on images
        containers.podman.podman_image_info:
        register: podman_list
        become_user: oracle
    
      - name: list images
        debug:
          msg: "{{ podman_list.images | selectattr('RepoTags') '}}"
    EOF
    
  4. このプロジェクトをOracle Linux Automation Managerにプッシュするためのプレイブックを作成します。

       
    tee push-project.yml > /dev/null <<EOF
    ---
    - hosts: olam-node
      become: yes
    
      tasks:
    
      - name: create project directory
        ansible.builtin.file:
          path: /var/lib/awx/projects/podman
          state: directory
        become_user: awx
    
      - name: create playbook
        ansible.builtin.template:
          src: templates/list-images.yml.j2
          dest: /var/lib/awx/projects/podman/list-images.yml
        become_user: awx      
       
    EOF
    
  5. インベントリ・ファイルを作成します。

    tee hosts > /dev/null <<EOF
    [olam]
    olam-node
    EOF
    
  6. Oracle Linux Automation Managerサーバーにプレイブックをコピーします。

    ansible-playbook -i hosts push-project.yml
    

Oracle Linux Automation Managerへのカスタム実行環境の追加

WebUIにログインします。

  1. Luna Desktopから新しいターミナルを開きます。

  2. Oracle Linux Automation ManagerへのSSHトンネルを構成します。

    ssh -L 8444:localhost:443 oracle@<ip_address_of_ol-node>
    

    無料の演習環境では、olam-nodeインスタンスのIPアドレスを使用します。

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

    https://localhost:8444
    

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

  4. Oracle Linux Automation Manager WebUIにログインします。

    ユーザー名adminおよびパスワードadminを使用します。無料の演習環境では、演習のデプロイメント中にこのパスワード値を設定します。

    olam2- ログイン

  5. ログインに成功すると、WebUIが表示されます。

    olam2-webui

コンテナ・レジストリ資格証明の追加

  1. ナビゲーション・メニューの「リソース」の下にある「資格証明」をクリックします。

  2. メインパネルで「Add」ボタンをクリックします。

  3. 特定のフィールドに次の値を入力または選択します。

    検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。

    • 名前: My Private Automation Hub
    • 組織: Default
    • 資格証明タイプ: コンテナ・レジストリ
    • 認証URL: Private Automation HubのFQDN
    • ユーザー名: admin
    • パスワードまたはトークン: password
    • オプション: 「SSLの検証」の選択を解除します

    Private Automation HubのFQDNがわからない場合は、端末を使用してol-pahインスタンスに接続し、hostname -fを実行します。

    Oracle Linux Automation Managerは、コンテナ・レジストリ資格証明を使用して、Private Automation Hubのコンテナ・イメージにアクセスします。無料の演習環境では、自己署名証明書が使用されているため、「SSLの検証」設定の選択を解除する必要があります。

  4. エントリを確認し、「保存」ボタンをクリックします。

    olam2-cred-registry

実行環境の追加

  1. ナビゲーション・メニューの「管理」の下にある「実行環境」をクリックします。

  2. メインパネルで「Add」ボタンをクリックします。

  3. 特定のフィールドに次の値を入力または選択します。

    検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。

    • 名前: My Custom EE
    • イメージ: <fqdn_of_the_private_automation_hub>/my_first_olam_ee_image:latest
    • レジストリ資格証明: My Private Automation Hub
  4. エントリを確認し、「保存」ボタンをクリックします。

    olam2-custom-ee

実行環境のテスト

カスタム実行環境をテストする場合、ジョブ・テンプレート(インベントリ、ホスト、マシン資格証明およびプロジェクトを含む)が必要です。

在庫の追加

  1. ナビゲーション・メニューの「リソース」の下にある「在庫」をクリックします。

  2. メイン・パネルの「追加」ボタンをクリックし、値リストから「在庫の追加」を選択します。

  3. 特定のフィールドに次の値を入力します。

    • 名前: Oracle Linux Hosts
  4. エントリを確認し、「保存」ボタンをクリックします。

    olam2-inv-detail

ホストを追加してください

  1. 「Oracle Linuxホスト」インベントリ「詳細」パネルから「ホスト」タブをクリックします。

  2. 「追加」ボタンをクリックします。

  3. 「名前」フィールドにホスト名devops-nodeを入力します。

  4. エントリを確認し、「保存」ボタンをクリックします。

マシン資格証明の追加

  1. ナビゲーション・メニューの「リソース」の下にある「資格証明」をクリックします。

  2. メインパネルで「Add」ボタンをクリックします。

  3. 特定のフィールドに次の値を入力または選択します。

    検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。

    • 名前: Oracle Linux SSH Access
    • 組織: Default
    • 資格証明タイプ: マシン
    • ユーザー名: opc
    • SSH秘密キー: ~/.SSHディレクトリからid_rsaキーを選択します

    SSH秘密キーを取得する1つの方法は、そのフィールドの「参照」オプションを選択することです。「ファイルのアップロード」ダイアログで、「ホーム」を選択し、そのダイアログのメイン・ウィンドウを右クリックします。「非表示ファイルの表示」を選択します。.sshフォルダと id_rsaファイルを選択します。「開く」ボタンをクリックすると、秘密キー・ファイルの内容が「SSH秘密キー」ダイアログ・ボックスにコピーされます。

  4. 入力内容を確認し、ページの下部までスクロールして「Save」ボタンをクリックします。

    olam2-cred-machine

新規プロジェクトの作成

  1. ナビゲーション・メニューの「リソース」の下にある「プロジェクト」をクリックします。

  2. メインパネルで「Add」ボタンをクリックします。

  3. 特定のフィールドに次の値を入力または選択します。

    検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。

    • 名前: Container Management
    • 実行環境: 自分のカスタムEE
    • ソース・コントロール資格証明タイプ: 手動
    • Playbookディレクトリ: podman
  4. エントリを確認し、「保存」ボタンをクリックします。

    olam2- プロジェクト詳細

ジョブ・テンプレートの追加

  1. ナビゲーション・メニューの「リソース」の下にある「テンプレート」をクリックします。

  2. メイン・パネルの「追加」ボタンをクリックし、値リストから「ジョブ・テンプレートの追加」を選択します。

  3. 特定のフィールドに次の値を入力または選択します。

    検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。

    • 名前: List Images
    • ジョブ・タイプ: 実行
    • インベントリ: Oracle Linuxホスト
    • プロジェクト: コンテナ管理
    • 実行環境: 自分のカスタムEE
    • プレイブック: list-images.yml
    • 資格証明: Oracle Linux SSHアクセス
  4. 入力内容を確認し、ページの下部までスクロールして「Save」ボタンをクリックします。

    olam2-temp-detail

テンプレートの実行

  1. ナビゲーション・メニューの「リソース」の下にある「テンプレート」をクリックします。

  2. 「イメージのリスト」ジョブ・テンプレートの横にある「アクション」列の「テンプレートの起動」アイコンをクリックします。

ジョブが開始され、パネルがジョブ出力サマリーに切り替わります。数分後、ジョブは失敗します。

olam2-job-failure

この失敗は、新しいカスタムeeに containers.podmanコレクションが含まれていないため、プレイブックの実行に失敗します。

カスタム実行環境の修正

カスタムEeを修正するには、ビルダー・ユーティリティを使用してコンテナ・イメージを再構築し、新しいイメージをPrivate Automation HubにプッシュしてOracle Linux Automation Managerでピックアップする必要があります。

  1. 端末に切り替えるか開いて、sshを使用して devops-nodeインスタンスに接続します。

  2. カスタムeeプロジェクトディレクトリに移動します。

    cd ~/my_custom_ee_project
    
  3. 欠落しているコレクションをAnsible Galaxy要件ファイルに追加します。

    tee -a requirements.yml > /dev/null <<EOF
    - name: containers.podman
    EOF
    
  4. イメージを再構築します。

    ansible-builder build --tag my_custom_ee -v 3
    
  5. 新しいイメージをPrivate Automation Hubにプッシュします。

    cd ~
    ansible-playbook push-image.yml
    
  6. イメージ・プッシュが成功したことを確認します。

    Private Automation Hub WebUIに接続し、「実行環境」の変更(特にmy_first_olam_ee_image「最終変更」列)を確認します。

    pah-ee-modify

新規カスタム実行環境のテスト

  1. ブラウザでOracle Linux Automation Manager WebUIに切り替えます。

    ブラウザ・ウィンドウをリフレッシュし、必要に応じて再度ログインします。

  2. ナビゲーション・メニューの「管理」の下にある「実行環境」をクリックします。

  3. 「自分のカスタムEE」イメージ・リンクの横にある「アクション」列の下の「実行環境の編集」アイコンをクリックします。

  4. 「プル」の値を「実行前にコンテナを常にプル」に変更します。

    このフィールドにより、podman--pullオプションが有効になります。この設定を変更すると、レイヤーのチェックサムが一致しない場合、Oracle Linux Automation Managerは最新のイメージを強制的にプルします。

  5. 変更を確認し、「保存」ボタンをクリックします。

  6. ナビゲーション・メニューの「ビュー」の下にある「ジョブ」をクリックします。

  7. 「...」の横にある「アクション」列の下にある「再起動」アイコンをクリックします。「イメージのリスト」リンク。

    ドロップダウン値リストから「すべて」を選択します。

    ジョブが開始され、パネルがジョブ出力サマリーに切り替わります。数分後、正常に完了します。

    olam2-job-success

次のステップ

WebUI内の出力により、Oracle Linux Automation Manager内でカスタム実行環境が動作していることが確認されます。Oracle Linuxトレーニング・ステーションでスキルを構築し、Oracle Linux Automation Managerの他のトレーニングを確認してください。

その他の学習リソース

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

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