ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で使用できます。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了したら、これらの値をクラウド環境に固有の値に置き換えてください。
Oracle Linux Automation Manager Private Automation Hubでの実行環境の管理
イントロダクション
Private Automation Hubは、収集、実行環境イメージ、およびその他のキュレートされたコンテンツを顧客のインフラストラクチャ内でローカルに管理するためのOracle Linux Automation Managerリポジトリです。
このチュートリアルでは、Private Automation Hubをインストールして、カスタム実行環境をコンテナ・レジストリにアップロードする方法を示します。カスタマイズされた実行環境の作成の詳細は、ビルダー・ユーティリティのチュートリアルを参照してください。
目的
このチュートリアルでは、次のことを学習します。
ansible-vault
を使用したセキュアなパスワード変数- 変数を使用したPrivate Automation Hubのインストール
- カスタム実行環境をPrivate Automation Hubレジストリにアップロードします
前提条件
- Oracle Linuxを実行する2つのシステム
- Private Automation Hubのインストール用
- もう1つは、ビルダー・ユーティリティを実行し、Private Automation Hubのクライアントとして機能します。
Oracle Linuxのデプロイ
ノート:独自のテナンシで実行している場合は、演習環境をデプロイする前に、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" passwordless_ssh: true use_olam_builder: true use_devops_vnc: true add_pah_ports: true olam_type: none EOF
-
インベントリファイルを作成します。
cat << EOF | tee hosts > /dev/null localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6 EOF
-
演習環境をデプロイします。
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パッケージのインストール
-
端末を開き、SSH経由でol-pahインスタンスに接続します。
ssh oracle@<ip_address_of_instance>
-
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
-
Private Automation Hubパッケージをインストールします。
sudo dnf install -y ol-private-automation-hub-installer
このコマンドは、Private Automation Hubインストール・プレイブックとロール、
ansible-core
、python3.11
およびその他のパッケージの依存関係をインストールします。
Private Automation Hubのインストール
Private Automation Hubをインストールする場合、Private Automation Hub admin
スーパーユーザー・アカウントとそのバックエンド・データベースのパスワードを設定する必要があります。開いているプレイブックにこれらを渡すのではなく、ansible-vault
を使用してこのステップをより安全に実行しましょう。
ansible-vault
ユーティリティは、Oracle Linux Automation Engineに付属しており、テキスト・ファイル、変数、YAMLプレイブックなどの構造化データファイルの暗号化および復号化を可能にします。
目的のため、2つのパスワードを含む変数ファイルを暗号化します。
-
Private Automation Hubプレイブックを作業ディレクトリにコピーします。
cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node
-
作業ディレクトリに移動します。
cd ~/single_node
-
インベントリファイルを作成します。
このプレイブックのインベントリ・ファイルには、プレイブックが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
hub
をansible_hostの別名として使用するサンプルとは異なり、このINIインベントリ・ファイルはhub
をグループ名として使用します。グループを使用すると、ホスト間の親子関係を作成でき、それらを1つ以上のカテゴリに分類してタスクを実行したり、変数を割り当てることができます。 -
パスワード変数を含むボールトを作成します。
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
の順に入力してファイルを閉じ、保存します。 -
ボールトの内容を確認します。
ansible-vault view vault_passwords.yml
プロンプトでボールト・パスワードを入力すると、
ansible-vault
は端末内のボールトの内容を表示します。 -
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を使用する必要があります。
-
既存のSSHセッションを終了します。
exit
-
新しい端末を開き、SSHを介してdevopsノード・インスタンスに接続します。
-L
オプションを使用すると、ローカル転送が有効になります。これにより、ローカル・ポートが開き、SSHトンネルを介してリモートVNCサーバーに接続します。ssh -L 5914:localhost:5901 oracle@<ip_address_of_instance>
-
Luna Desktopに切り替えます。
-
「アプリケーション」メニュー、「インターネット」、TigerVNCビューアの順にクリックして、TigerVNCビューアを開きます。
-
「VNCサーバー」テキスト・ボックスに
localhost:5914
と入力し、「接続」ボタンを押して、デプロイされたサーバーのGUI環境にログオンします。 -
oracle
ユーザーのパスワードoracleを入力し、「OK」ボタンを押します。 -
サーバーのGUIデスクトップが初回ログイン設定で表示されます。
-
「Next」ボタンを3回押したあと、「Skip」ボタンのあとに、「Start Using Oracle Linux Server」ボタンを押します。最後に、「スタート・ガイド」ウィンドウを閉じるか最小化します。
Private Automation Hubへの接続
-
VNCセッション内でWebブラウザを開き、URLを入力します。
https://ol-pah
ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeの場合は、
Advanced
ボタンをクリックし、Proceed to localhost (unsafe)
リンクをクリックします。 -
Private Automation Hub Web UIにログインします。
ユーザー名
admin
およびパスワードpassword
を使用します。このパスワードは、ランタイム変数ファイルでolpah_admin_password
に設定した値です。 -
ログインに成功すると、Web UIが表示されます。
Web UIを使用した実行環境の追加
Private Automation Hubが管理する項目の1つは、実行環境です。この機能により、Private Automation Hubはコンテナ・イメージのリポジトリとして機能し、管理者はPodmanおよびWeb UIを使用してそれらと対話できます。
-
ナビゲーション・メニューの「実行環境」の下にあるWeb UIから「リモート・レジストリ」をクリックします。
-
「リモート・レジストリの追加」ボタンをクリックします。
-
特定のフィールドに次の値を入力します。
- 名前:
Quay Upstream Registry
- URL:
https://quay.io
- 名前:
-
「保存」ボタンをクリックします。
新しく作成したリモート・レジストリが「リモート・レジストリ」パネルに表示されます。
-
ナビゲーション・メニューの「実行環境」の下にある「実行環境」をクリックします。
-
「実行環境の追加」ボタンをクリックします。
Web UIに「実行環境の追加」ダイアログが表示されます。このダイアログを使用して、アップストリームまたは他のレジストリからコンテナ・イメージをプルできます。
-
特定のフィールドで、次の値を入力または選択します。
- 名前:
upstream/awx-ee
- アップストリーム名:
ansible/awx-ee
- レジストリ: Quay Upstream Registry
- 含めるタグの追加:
latest
と入力し、ENTER
と入力します
- 名前:
-
「保存」ボタンをクリックします。
新しく作成された実行環境が「実行環境」パネルに表示されます。
-
リモートレジストリから upstream/awx-ee実行環境を同期します。
-
upstream/awx-eeアイテムの右側にある縦の3ドットメニューをクリックします。
-
「レジストリから同期」を選択します
同期が開始されたことを示すポップアップ・ダイアログが表示されます。
-
ポップアップ・ダイアログの「詳細ページ」リンクをクリックすると、このタスクのステータスが表示されます。
-
タスクに「完了」アイコンが表示されます。
-
ナビゲーション・メニューの「実行環境」の下にある「実行環境」をクリックします。
-
「実行環境」パネルの「upstream/awx-ee」リンクをクリックします。
このリンクは、「詳細」タブのPrivate Automation Hubからこのイメージをプルする手順を表示します。
-
「イメージ」タブをクリックします。
このパネルには、タグ、サイズ、sha256ダイジェストなど、イメージの詳細が表示されます。
-
Podmanを使用したプッシュ実行環境
-
端末を開き、SSH経由でdevopsノード・インスタンスに接続します。
ssh oracle@<ip_address_of_instance>
このインスタンスには、ビルダー・ユーティリティのインストールと、事前構築済のカスタム実行環境が含まれます。これらのタスクの実行の詳細は、Oracle Linux Automation Manager Builderユーティリティを使用したカスタム実行環境の構築を参照してください。
-
プロジェクトの作業ディレクトリに移動します。
cd ~/my_custom_ee_project
このディレクトリには、Podmanがカスタム実行環境イメージの作成に使用するビルダー・ユーティリティのデータファイルが含まれています。
-
既存のローカル・イメージをリストします。
podman images
出力には、カスタム・イメージと、Oracle Linux Automation Managerのデフォルトの
olam-ee
およびolam-builder
イメージが表示されます。 -
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 Hubadmin
ユーザーのログイン資格証明と一致するパスワードを入力します。 -
ローカル・カスタム・イメージをタグ付けします。
Private Automation Hubレジストリにイメージをプッシュする前に、ローカル・イメージを使用して必要なリポジトリ構造およびタグを作成します。
podman tag localhost/my_custom_ee ol-pah.$(hostname -d)/my_first_olam_ee_image
-
新しいタグ付きイメージが存在することを確認します。
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
-
カスタム・イメージを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
-
Web UIでアップロードを確認します。
-
Private Automation Hub Web UIを含むブラウザに切り替えます。
-
「実行環境」にナビゲートします。
-
新しいmy_first_olam_ee_imageを確認します。
-
次のステップ
Web UI内の出力によって、Private Automation Hubが動作していること、およびカスタム・イメージをアップロードして保存できることが確認されます。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を参照してください。
Manage Execution Environments in Oracle Linux Automation Manager Private Automation Hub
G39666-01
Copyright ©2023, Oracle and/or its affiliates.