ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で入手できます。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
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のこのチュートリアルを参照してください。
目的
このチュートリアルでは、次の方法を学習します。
- プレイブックを使用してカスタムeをPrivate Automation Hubにプッシュ
- Oracle Linux Automation Managerへのカスタムeの追加
- カスタムeeを使用したジョブの実行
前提条件
- Oracle Linuxを実行している3つのシステム
- Builderユーティリティを使用した開発環境
- Private Automation Hub向け
- Oracle Linux Automation Managerを実行する別のもの
Oracle Linux Automation Managerのデプロイ
ノート:独自のテナンシで実行している場合は、linux-virt-labs
GitHubプロジェクトREADME.mdを読み、演習環境をデプロイする前に前提条件を完了してください。
-
Lunaデスクトップでターミナルを開きます。
-
linux-virt-labs
GitHubプロジェクトをクローニングします。git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
作業ディレクトリに移動します。
cd linux-virt-labs/olam
-
必要なコレクションをインストールします。
ansible-galaxy collection install -r requirements.yml
-
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
-
演習環境をデプロイします。
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コレクションを使用して、このタスクを実行することもできます。
-
端末を開き、SSH経由でdevops-nodeインスタンスに接続します。
ssh oracle@<ip_address_of_instance>
-
Oracle Linux Automation Engineをインストールします。
sudo dnf install ansible-core -y
-
必要なコレクションをインストールします。
ansible-galaxy collection install containers.podman
-
カスタム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
-
プレイブックを実行します。
ansible-playbook push-image.yml
プレイブックは
localhost
で実行されるため、定義されたインベントリ・ファイルは必要ありません。
Private Automation Hubにイメージが存在することを確認
-
Luna Desktopから新しいターミナルを開きます。
-
Private Automation HubへのSSHトンネルを構成します。
ssh -L 5444:localhost:443 oracle@<ip_address_of_ol-pah>
-
Webブラウザを開き、URLを入力します。
https://localhost:5444
ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの場合は、
Advanced
ボタンをクリックし、Proceed to localhost (unsafe)
リンクをクリックします。 -
Private Automation Hub WebUIにログインします。
ユーザー名
admin
およびパスワードpassword
を使用します。無料の演習環境では、演習のデプロイメント中にこのパスワード値を設定します。 -
ログインに成功すると、WebUIが表示されます。
-
Private Automation Hub WebUIの左上隅にあるナビゲーション・メニューをクリックします。
-
「実行環境」および「実行環境」にナビゲートします。
-
新しいmy_first_olam_ee_imageがメイン・パネルに表示されることに注意してください。
プレイブックの作成
Oracle Linux Automation Manager管理者は、手動ソース・コントロールを使用するプロジェクトが活用できるファイル・システムでローカルにプレイブックを作成できます。devops-nodeを使用して、Oracle Linux Automation Engineを使用してプロジェクト・プレイブックをOracle Linux Automation Managerにプッシュするプレイブックを作成します。プレイブックはそのインスタンスにのみ存在するため、この構成はOracle Linux Automation Managerの単一ホスト・インストールでのみ機能します。
-
端末に切り替えるか開いて、sshを使用して devops-nodeインスタンスに接続します。
-
プロジェクト・ディレクトリを作成し、そのディレクトリに作業ディレクトリを変更します。
mkdir ~/project1 cd ~/project1
-
テンプレートを作成します。
このテンプレートは、ホスト上のコンテナ・イメージのリストを取得するために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
-
このプロジェクトを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
-
インベントリ・ファイルを作成します。
tee hosts > /dev/null <<EOF [olam] olam-node EOF
-
Oracle Linux Automation Managerサーバーにプレイブックをコピーします。
ansible-playbook -i hosts push-project.yml
Oracle Linux Automation Managerへのカスタム実行環境の追加
WebUIにログインします。
-
Luna Desktopから新しいターミナルを開きます。
-
Oracle Linux Automation ManagerへのSSHトンネルを構成します。
ssh -L 8444:localhost:443 oracle@<ip_address_of_ol-node>
無料の演習環境では、olam-nodeインスタンスのIPアドレスを使用します。
-
Webブラウザを開き、URLを入力します。
https://localhost:8444
ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの場合、「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。
-
Oracle Linux Automation Manager WebUIにログインします。
ユーザー名
admin
およびパスワードadmin
を使用します。無料の演習環境では、演習のデプロイメント中にこのパスワード値を設定します。 -
ログインに成功すると、WebUIが表示されます。
コンテナ・レジストリ資格証明の追加
-
ナビゲーション・メニューの「リソース」の下にある「資格証明」をクリックします。
-
メインパネルで「Add」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。
- 名前:
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の検証」設定の選択を解除する必要があります。
- 名前:
-
エントリを確認し、「保存」ボタンをクリックします。
実行環境の追加
-
ナビゲーション・メニューの「管理」の下にある「実行環境」をクリックします。
-
メインパネルで「Add」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。
- 名前:
My Custom EE
- イメージ:
<fqdn_of_the_private_automation_hub>/my_first_olam_ee_image:latest
- レジストリ資格証明: My Private Automation Hub
- 名前:
-
エントリを確認し、「保存」ボタンをクリックします。
実行環境のテスト
カスタム実行環境をテストする場合、ジョブ・テンプレート(インベントリ、ホスト、マシン資格証明およびプロジェクトを含む)が必要です。
在庫の追加
-
ナビゲーション・メニューの「リソース」の下にある「在庫」をクリックします。
-
メイン・パネルの「追加」ボタンをクリックし、値リストから「在庫の追加」を選択します。
-
特定のフィールドに次の値を入力します。
- 名前:
Oracle Linux Hosts
- 名前:
-
エントリを確認し、「保存」ボタンをクリックします。
ホストを追加してください
-
「Oracle Linuxホスト」インベントリ「詳細」パネルから「ホスト」タブをクリックします。
-
「追加」ボタンをクリックします。
-
「名前」フィールドにホスト名devops-nodeを入力します。
-
エントリを確認し、「保存」ボタンをクリックします。
マシン資格証明の追加
-
ナビゲーション・メニューの「リソース」の下にある「資格証明」をクリックします。
-
メインパネルで「Add」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。
- 名前:
Oracle Linux SSH Access
- 組織:
Default
- 資格証明タイプ: マシン
- ユーザー名:
opc
- SSH秘密キー: ~/.SSHディレクトリからid_rsaキーを選択します
SSH秘密キーを取得する1つの方法は、そのフィールドの「参照」オプションを選択することです。「ファイルのアップロード」ダイアログで、「ホーム」を選択し、そのダイアログのメイン・ウィンドウを右クリックします。「非表示ファイルの表示」を選択します。.sshフォルダと id_rsaファイルを選択します。「開く」ボタンをクリックすると、秘密キー・ファイルの内容が「SSH秘密キー」ダイアログ・ボックスにコピーされます。
- 名前:
-
入力内容を確認し、ページの下部までスクロールして「Save」ボタンをクリックします。
新規プロジェクトの作成
-
ナビゲーション・メニューの「リソース」の下にある「プロジェクト」をクリックします。
-
メインパネルで「Add」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。
- 名前:
Container Management
- 実行環境: 自分のカスタムEE
- ソース・コントロール資格証明タイプ: 手動
- Playbookディレクトリ: podman
- 名前:
-
エントリを確認し、「保存」ボタンをクリックします。
ジョブ・テンプレートの追加
-
ナビゲーション・メニューの「リソース」の下にある「テンプレート」をクリックします。
-
メイン・パネルの「追加」ボタンをクリックし、値リストから「ジョブ・テンプレートの追加」を選択します。
-
特定のフィールドに次の値を入力または選択します。
検索または値リストのあるフィールドでは、要求された値の入力を開始してから選択できます。
- 名前:
List Images
- ジョブ・タイプ: 実行
- インベントリ: Oracle Linuxホスト
- プロジェクト: コンテナ管理
- 実行環境: 自分のカスタムEE
- プレイブック: list-images.yml
- 資格証明: Oracle Linux SSHアクセス
- 名前:
-
入力内容を確認し、ページの下部までスクロールして「Save」ボタンをクリックします。
テンプレートの実行
-
ナビゲーション・メニューの「リソース」の下にある「テンプレート」をクリックします。
-
「イメージのリスト」ジョブ・テンプレートの横にある「アクション」列の「テンプレートの起動」アイコンをクリックします。
ジョブが開始され、パネルがジョブ出力サマリーに切り替わります。数分後、ジョブは失敗します。
この失敗は、新しいカスタムeeに containers.podmanコレクションが含まれていないため、プレイブックの実行に失敗します。
カスタム実行環境の修正
カスタムEeを修正するには、ビルダー・ユーティリティを使用してコンテナ・イメージを再構築し、新しいイメージをPrivate Automation HubにプッシュしてOracle Linux Automation Managerでピックアップする必要があります。
-
端末に切り替えるか開いて、sshを使用して devops-nodeインスタンスに接続します。
-
カスタムeeプロジェクトディレクトリに移動します。
cd ~/my_custom_ee_project
-
欠落しているコレクションをAnsible Galaxy要件ファイルに追加します。
tee -a requirements.yml > /dev/null <<EOF - name: containers.podman EOF
-
イメージを再構築します。
ansible-builder build --tag my_custom_ee -v 3
-
新しいイメージをPrivate Automation Hubにプッシュします。
cd ~ ansible-playbook push-image.yml
-
イメージ・プッシュが成功したことを確認します。
Private Automation Hub WebUIに接続し、「実行環境」の変更(特にmy_first_olam_ee_imageの「最終変更」列)を確認します。
新規カスタム実行環境のテスト
-
ブラウザでOracle Linux Automation Manager WebUIに切り替えます。
ブラウザ・ウィンドウをリフレッシュし、必要に応じて再度ログインします。
-
ナビゲーション・メニューの「管理」の下にある「実行環境」をクリックします。
-
「自分のカスタムEE」イメージ・リンクの横にある「アクション」列の下の「実行環境の編集」アイコンをクリックします。
-
「プル」の値を「実行前にコンテナを常にプル」に変更します。
このフィールドにより、
podman
の--pull
オプションが有効になります。この設定を変更すると、レイヤーのチェックサムが一致しない場合、Oracle Linux Automation Managerは最新のイメージを強制的にプルします。 -
変更を確認し、「保存」ボタンをクリックします。
-
ナビゲーション・メニューの「ビュー」の下にある「ジョブ」をクリックします。
-
「...」の横にある「アクション」列の下にある「再起動」アイコンをクリックします。「イメージのリスト」リンク。
ドロップダウン値リストから「すべて」を選択します。
ジョブが開始され、パネルがジョブ出力サマリーに切り替わります。数分後、正常に完了します。
次のステップ
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を参照してください。
Use Custom Execution Environments with Oracle Linux Automation Manager
G32010-02
Copyright ©2023, Oracle and/or its affiliates.