ノート:

Oracle Linux Automation Manager Private Automation Hubでの実行環境の管理

イントロダクション

Private Automation Hubは、収集、実行環境イメージ、およびその他のキュレートされたコンテンツを顧客のインフラストラクチャ内でローカルに管理するためのOracle Linux Automation Managerリポジトリです。

このチュートリアルでは、Private Automation Hubをインストールして、カスタム実行環境をコンテナ・レジストリにアップロードする方法を示します。カスタマイズされた実行環境の作成の詳細は、ビルダー・ユーティリティのチュートリアルを参照してください。

目的

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

前提条件

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: "devops-node"
        type: "server"
      2:
        instance_name: "ol-pah"
        type: "server"
    passwordless_ssh: true
    use_olam_builder: true
    use_devops_vnc: true
    add_pah_ports: true
    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アドレスを出力します。

Private Automation Hubパッケージのインストール

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

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

    Oracle Linux 8:

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

    Oracle Linux 9:

    sudo dnf install -y oraclelinux-automation-manager-release-el9
    
  3. Private Automation Hubパッケージをインストールします。

    sudo dnf install -y ol-private-automation-hub-installer
    

    このコマンドは、Private Automation Hubインストール・プレイブックとロール、ansible-corepython3.11およびその他のパッケージの依存関係をインストールします。

Private Automation Hubのインストール

Private Automation Hubをインストールする場合、Private Automation Hub adminスーパーユーザー・アカウントとそのバックエンド・データベースのパスワードを設定する必要があります。開いているプレイブックにこれらを渡すのではなく、ansible-vaultを使用してこのステップをより安全に実行しましょう。

ansible-vaultユーティリティは、Oracle Linux Automation Engineに付属しており、テキスト・ファイル、変数、YAMLプレイブックなどの構造化データファイルの暗号化および復号化を可能にします。

目的のため、2つのパスワードを含む変数ファイルを暗号化します。

  1. Private Automation Hubプレイブックを作業ディレクトリにコピーします。

    cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node
    
  2. 作業ディレクトリに移動します。

    cd ~/single_node
    
  3. インベントリファイルを作成します。

    このプレイブックのインベントリ・ファイルには、プレイブックがPrivate Automation Hubをインストールするホスト名およびSSHユーザー名が必要です。インベントリ・ファイルは、INI形式またはYAML形式で定義します。インストール・プレイブック内のサンプル・インベントリhosts.singlenode.exampleではYAMLが使用されるため、ここでINI形式を使用して代替オプションを示します。

    tee hosts > /dev/null <<EOF
    [hub]
    ol-pah ansible_host=ol-pah ansible_user=oracle
    EOF
    

    hubansible_hostの別名として使用するサンプルとは異なり、このINIインベントリ・ファイルはhubをグループ名として使用します。グループを使用すると、ホスト間の親子関係を作成でき、それらを1つ以上のカテゴリに分類してタスクを実行したり、変数を割り当てることができます。

  4. パスワード変数を含むボールトを作成します。

    ansible-vault create vault_passwords.yml
    

    コマンドを実行すると、ボールト・パスワードを作成するよう求められます。ansible-vaultユーティリティは、このパスワードを使用してボールトの内容を復号化し、プレイブック内からこれらの内容にアクセスします。パスワードは任意の文字の組合せにできますが、リカバリできないため、覚えておいてください。

    パスワードを入力して確認すると、ユーティリティはデフォルト・エディタでvault_passwords.ymlファイルを開きます。無料の演習環境の場合、エディタはviです。iと入力してINSERTモードに入り、これらのサンプルPrivate Automation Hubパスワード変数を貼り付けます。

    ノート:これらは、Private Automation Hubのインストールおよびスーパーユーザー・パスワードとデータベース・パスワードの設定時にプレイブックで使用される変数です。

    ---
    olpah_admin_password: password
    olpah_db_password: password
    

    ESC:wq!ENTERの順に入力してファイルを閉じ、保存します。

  5. ボールトの内容を確認します。

    ansible-vault view vault_passwords.yml
    

    プロンプトでボールト・パスワードを入力すると、ansible-vaultは端末内のボールトの内容を表示します。

  6. Private Automation Hubプレイブックを実行します。

    ansible-playbook single-node-install.yml -i hosts -e "@vault_passwords.yml" --ask-vault-pass
    
    • -iはインベントリ・ファイルを定義します。
    • -eは、ランタイム変数をkey=valueペアまたは変数ファイルとして定義します。
    • --ask-vault-passは、ボールト・パスワードの入力を求めます

    ボールト・パスワードを指定する別の方法があり、アップストリーム・ドキュメントで確認できます。

    ノート: Private Automation Hubのインストールには10分から20分かかります。インストール中、プレイブックの進行状況は、すべてのタスクが完了するまでターミナルにスクロールします。

DevOpsインスタンスへのVNCセッションのオープン

VNCセッションでは、無料のラボ環境内のホスト名または完全修飾ドメイン名(FQDN)を使用して、Private Automation Hub Web UIに接続できます。Djangoの組み込み保護機能により、Cross-Site Request Forgery (CSRF)攻撃からWeb UIを保護するため、ホスト名またはFQDNを使用する必要があります。

  1. 既存のSSHセッションを終了します。

    exit
    
  2. 新しい端末を開き、SSHを介してdevopsノード・インスタンスに接続します。

    -Lオプションを使用すると、ローカル転送が有効になります。これにより、ローカル・ポートが開き、SSHトンネルを介してリモートVNCサーバーに接続します。

    ssh -L 5914:localhost:5901 oracle@<ip_address_of_instance>
    
  3. Luna Desktopに切り替えます。

  4. 「アプリケーション」メニュー、「インターネット」TigerVNCビューアの順にクリックして、TigerVNCビューアを開きます。

    vncメニュー

  5. 「VNCサーバー」テキスト・ボックスにlocalhost:5914と入力し、「接続」ボタンを押して、デプロイされたサーバーのGUI環境にログオンします。

    vncログイン

  6. oracleユーザーのパスワードoracleを入力し、「OK」ボタンを押します。

    vnc-pwd

  7. サーバーのGUIデスクトップが初回ログイン設定で表示されます。

    ようこそ

  8. Next」ボタンを3回押したあと、「Skip」ボタンのあとに、「Start Using Oracle Linux Server」ボタンを押します。最後に、「スタート・ガイド」ウィンドウを閉じるか最小化します。

    開始- 使用-ol

Private Automation Hubへの接続

  1. VNCセッション内でWebブラウザを開き、URLを入力します。

    https://ol-pah
    

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

  2. Private Automation Hub Web UIにログインします。

    ユーザー名adminおよびパスワードpasswordを使用します。このパスワードは、ランタイム変数ファイルでolpah_admin_passwordに設定した値です。

    パーログイン

  3. ログインに成功すると、Web UIが表示されます。

    ワラジムシ

Web UIを使用した実行環境の追加

Private Automation Hubが管理する項目の1つは、実行環境です。この機能により、Private Automation Hubはコンテナ・イメージのリポジトリとして機能し、管理者はPodmanおよびWeb UIを使用してそれらと対話できます。

  1. ナビゲーション・メニューの「実行環境」の下にあるWeb UIから「リモート・レジストリ」をクリックします。

  2. 「リモート・レジストリの追加」ボタンをクリックします。

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

    • 名前: Quay Upstream Registry
    • URL: https://quay.io
  4. 「保存」ボタンをクリックします。

    新しく作成したリモート・レジストリが「リモート・レジストリ」パネルに表示されます。

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

  6. 「実行環境の追加」ボタンをクリックします。

    Web UIに「実行環境の追加」ダイアログが表示されます。このダイアログを使用して、アップストリームまたは他のレジストリからコンテナ・イメージをプルできます。

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

    • 名前: upstream/awx-ee
    • アップストリーム名: ansible/awx-ee
    • レジストリ: Quay Upstream Registry
    • 含めるタグの追加: latestと入力し、ENTERと入力します
  8. 「保存」ボタンをクリックします。

    新しく作成された実行環境が「実行環境」パネルに表示されます。

  9. リモートレジストリから upstream/awx-ee実行環境を同期します。

    1. upstream/awx-eeアイテムの右側にある縦の3ドットメニューをクリックします。

    2. 「レジストリから同期」を選択します

      同期が開始されたことを示すポップアップ・ダイアログが表示されます。

    3. ポップアップ・ダイアログの「詳細ページ」リンクをクリックすると、このタスクのステータスが表示されます。

    4. タスクに「完了」アイコンが表示されます。

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

    6. 「実行環境」パネルの「upstream/awx-ee」リンクをクリックします。

      このリンクは、「詳細」タブのPrivate Automation Hubからこのイメージをプルする手順を表示します。

    7. 「イメージ」タブをクリックします。

      このパネルには、タグサイズsha256ダイジェストなど、イメージの詳細が表示されます。

Podmanを使用したプッシュ実行環境

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

    ssh oracle@<ip_address_of_instance>
    

    このインスタンスには、ビルダー・ユーティリティのインストールと、事前構築済のカスタム実行環境が含まれます。これらのタスクの実行の詳細は、Oracle Linux Automation Manager Builderユーティリティを使用したカスタム実行環境の構築を参照してください。

  2. プロジェクトの作業ディレクトリに移動します。

    cd ~/my_custom_ee_project
    

    このディレクトリには、Podmanがカスタム実行環境イメージの作成に使用するビルダー・ユーティリティのデータファイルが含まれています。

  3. 既存のローカル・イメージをリストします。

    podman images
    

    出力には、カスタム・イメージと、Oracle Linux Automation Managerのデフォルトのolam-eeおよびolam-builderイメージが表示されます。

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

    podman login -u admin https://ol-pah.$(hostname -d) --tls-verify=0
    
    • -uは、コンテナ・レジストリにアクセスする権限を持つユーザーです
    • ol-pah.$(hostname -d)はコンテナ・レジストリFQDNです
    • 無料のラボ環境では自己署名証明書が使用されるため、--tls-verify=0はTLS証明書検証をオフにします

    このコマンドでは、Password:の入力を求められます。Private Automation Hub adminユーザーのログイン資格証明と一致するパスワードを入力します。

  5. ローカル・カスタム・イメージをタグ付けします。

    Private Automation Hubレジストリにイメージをプッシュする前に、ローカル・イメージを使用して必要なリポジトリ構造およびタグを作成します。

    podman tag localhost/my_custom_ee ol-pah.$(hostname -d)/my_first_olam_ee_image
    
  6. 新しいタグ付きイメージが存在することを確認します。

    podman images
    

    出力例:

    [oracle@devops-node my_custom_ee_project]$ podman images
    REPOSITORY                                                                  TAG         IMAGE ID      CREATED      SIZE
    localhost/my_custom_ee                                                      latest      fbc43634b168  5 hours ago  2.29 GB
    ol-pah.lv.vcn5ef1c2b6.oraclevcn.com/my_first_olam_ee_image                  latest      fbc43634b168  5 hours ago  2.29 GB
    <none>                                                                      <none>      92aa94db3699  5 hours ago  1.4 GB
    <none>                                                                      <none>      cc087fbfa018  5 hours ago  1.45 GB
    container-registry.oracle.com/oracle_linux_automation_manager/olam-ee       latest      368657c8376d  5 weeks ago  1.25 GB
    container-registry.oracle.com/oracle_linux_automation_manager/olam-builder  latest      5e98580f7956  5 weeks ago  546 MB
    
  7. カスタム・イメージをPrivate Automation Hubにアップロードします。

    ノート: <IMAGE ID>を、podman images出力のmy_first_olam_ee_imageの実際のイメージIDに置き換えます。

    podman push --tls-verify=0 <IMAGE ID> ol-pah.$(hostname -d)/my_first_olam_ee_image:latest
    
  8. Web UIでアップロードを確認します。

    1. Private Automation Hub Web UIを含むブラウザに切り替えます。

    2. 「実行環境」にナビゲートします。

    3. 新しいmy_first_olam_ee_imageを確認します。

      ピー

次のステップ

Web UI内の出力によって、Private Automation Hubが動作していること、およびカスタム・イメージをアップロードして保存できることが確認されます。Oracle Linux Automation Managerを使用して、スキルを実践する他のチュートリアルを確認してください。

その他の学習リソース

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

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