ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で入手できます。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Linux Automation ManagerでのOCI Ansibleコレクションの使用
イントロダクション
Oracle Cloud Infrastructure (OCI) Ansibleコレクションでは、Oracle Linux Automation EngineまたはOracle Linux Automation Managerを使用して、Oracle Cloudのリソースを簡単にプロビジョニングおよび管理できます。
目的
このチュートリアルでは、次の方法を学習します。
- OCI Ansibleコレクションを使用するプレイブックの作成
- Ansible Galaxyの資格証明の構成
- Oracle Cloud Infrastructure資格証明の追加
- ジョブ・テンプレートの作成
- ジョブを実行します
前提条件
- Oracle Linux Automation Managerがインストールされているシステム
- gitリポジトリへのアクセス
- Oracle Cloud Infrastructure (OCI)アカウント
- コンパートメント内のリソースを操作する権限を持つOCIアカウントのユーザー
- そのアカウントの資格証明およびOCID情報へのアクセス
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: "olam-node" type: "control" 2: instance_name: "git-server" type: "server" use_git: true olam_type: single 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アドレスを出力します。
プレイブックの作成
-
新しいターミナル・ウィンドウを開きます。
-
リモートgitサーバー・インスタンスに変数を設定します。
export REMOTE=<ip_address_of_instance>
-
プロジェクト・ディレクトリを作成します。
mkdir ~/myproject
-
要件ファイルを作成します。
Oracle Linux Automation Engineは、要件ファイルを使用して、必要なコレクションまたはロールを実行時にプロジェクトにプルします。
cat << EOF > ~/myproject/requirements.yml --- collections: - name: oracle.oci - name: community.general EOF
ノート: Oracle Linux Automation Engine < 2.13.9のバージョンでは、コレクションGitHubリポジトリから直接コレクションをプルするように要件ファイルを構成できます。
cat << EOF > ~/myproject/requirements.yml --- collections: - name: https://github.com/oracle/oci-ansible-collection.git type: git version: master - name: https://github.com/ansible-collections/community.general.git type: git version: main EOF
-
プレイブックを作成します。
このプレイブックは、Oracle Cloud Infrastructureテナンシのオブジェクト・ストレージ・ネームスペースを問い合せます。テナンシの詳細は、後でOracle Linux Automation Manager Web UIで構成します。
cat << EOF > ~/myproject/get_namespace.yml --- - name: Get namespace name hosts: localhost tasks: - name: get namespace oracle.oci.oci_object_storage_namespace_facts: register: output - name: print namespace ansible.builtin.debug: msg: "" EOF
ソース・コントロールへのプロジェクトの追加
-
プロジェクトの作業ディレクトリをGitリポジトリに初期化します。
リポジトリを初期化する前に、Gitの初回構成ステップを実行する必要があります。
-
プロジェクトの初期化時に使用されるデフォルトのブランチ名を設定します。
git config --global init.defaultBranch main
-
アイデンティティを設定します。
このチュートリアルでは、電子メールと名前の例を示します。gitはコミットごとにこの情報を不変に含むため、プロジェクトで作業するときは電子メールアドレスと名前を使用してください。
git config --global user.email johndoe@example.com git config --global user.name "John Doe"
-
プロジェクトの作業ディレクトリに移動します。
cd ~/myproject
-
ディレクトリをローカルのGitリポジトリとして初期化します。
git init
このコマンドは、空のGitリポジトリを初期化したことを返します。
-
-
作業ディレクトリおよびプロジェクト・ステージング領域の状態を確認します。
git status
ローカルリポジトリの状態は、追跡されていない2つのファイル(get_namespace.ymlと requirements.yml)を示します。
-
ステージング領域に新しいファイルを追加して追跡します。
git add --all
--all
オプションは、追跡されていないファイルや変更されたファイルをすべてステージング領域に追加します。 -
ステージング領域に現在ある変更をコミットします。
git commit -m 'initial commit'
-m
オプションを使用すると、コミットされた変更にコメントを追加できます。 -
リモートGitリポジトリを作成して初期化します。
リモート・リポジトリは、すべてのプロジェクト・コントリビュータによって使用され、GitHubや自己ホスト・サーバーなどのコード・ホスティング・サービスに格納される共有リポジトリです。
ssh git@$REMOTE "git init -b main --bare /git-server/repos/myproject.git"
-b
オプションは、mainというブランチを使用してリモートリポジトリを確実に初期化します。 -
yes
と入力して、ECDSAキー・フィンガープリントを受け入れます。 -
新しいリモート・リポジトリ接続レコードを追加します。
ローカル・リポジトリにリモート接続を追加すると、Gitコマンドの名前付きショートカットとして使用できます。
git remote add origin git@$REMOTE:/git-server/repos/myproject.git
コロンの後のパスは、リモートGitサーバー上のリポジトリのディレクトリの場所です。
-
新しく追加された接続レコードを確認します。
git remote -v
出力には、
git fetch
コマンドとgit push
コマンドの両方のリモートGitリポジトリの場所を指す接続レコードoriginが表示されます。 -
ローカルリポジトリの変更をリモートリポジトリにプッシュします。
git push origin main
Oracle Linux Automation Managerプロジェクト内でmyprojectソースを使用できるようになりました。
Ansible Galaxy資格証明の作成
これらの資格証明により、Oracle Linux Automation Managerは、パブリックAnsible Galaxy HubからOCI Ansibleコレクションをプルできます。
-
新しいターミナル・ウィンドウを開き、olam-nodeインスタンスへのSSHトンネルを構成します。
ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
-
Webブラウザを開き、URLを入力します。
https://localhost:8444
ノート:使用するブラウザに基づいてセキュリティ警告を承認します。Chromeブラウザで、「詳細」ボタンをクリックし、「localhostに進む(安全でない)」リンクをクリックします。
-
Oracle Linux Automation Manager Web UIにログインします自動デプロイメント中に作成されたユーザー名
admin
およびパスワードadmin
を使用します。 -
ログインに成功すると、Web UIが表示されます。
-
ナビゲーション・メニューの「リソース」セクションの下の「資格証明」をクリックします。
-
「追加」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
検索または値リストを含むフィールドの場合、要求された値の入力を開始してから、リストから選択できます。
- 名前:
My Ansible Galaxy
- 組織:
Default
- 資格証明タイプ: Ansible Galaxy/Automation Hub APIトークン
Oracle Linux Automation Managerでは、Ansible Galaxy資格証明を使用して、
ansible-galaxy
コマンドを使用してロールおよびコレクションのダウンロードを容易にします。- GalaxyサーバーURL:
https://galaxy.ansible.com
- 名前:
-
エントリを確認し、「保存」ボタンをクリックします。
-
ナビゲーション・メニューの「アクセス」セクションの下にある「組織」をクリックします。
組織内でAnsible Galaxy資格証明を割り当てると、gitプロジェクト内からOracle Linux Infrastructure Ansibleコレクションをダウンロードできます。
-
「デフォルト」組織をクリックし、「編集」ボタンをクリックします。
-
「銀河資格証明」フィールドで「My Ansible Galaxy」資格証明を選択し、「選択」ボタンをクリックします。
-
確認して、「保存」ボタンをクリックします。
OCI資格証明の作成
OCI資格証明は、特定のOCIテナンシに関するOracle Linux Automation Manager情報を提供します。
-
ナビゲーション・メニューの「資格証明」をクリックします。
-
「追加」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
- 名前:
My OCI Credentials
- 組織:
Default
- 資格証明タイプ: Oracle Cloud Infrastructure
ページがリフレッシュされ、OCI構成情報がリクエストされます。
- 名前:
-
新しいターミナル・ウィンドウを開きます。
-
OCI構成ファイルの内容を表示します。
cat ~/.oci/config
-
端末に表示されている値を使用して、Oracle Linux Automation Manager Web UIのOCI資格証明の特定のフィールドに一致させます。
各フィールドの横にある
アイコンを使用して、貼付けの値を表示します。
-
OCIユーザーのAPI秘密キーの内容を取得します。
無料の演習環境では、
cat ~/.oci/oci.key
を実行してこの情報を取得し、出力全体(BEGINおよびEND行を含む)をコピーできます。 -
Oracle Linux Automation Manager Web UIの「プライベート・ユーザー・キー」フィールドにキーを貼り付けます。
-
確認して、「保存」ボタンをクリックします。
これらの値を後で編集する必要がある場合は、Web UIで暗号化されて表示されます。したがって、変更するには、特定のフィールドの横にある「置換」アイコンをクリックし、フィールドに新しい値を追加します。必要に応じて繰り返して、変更が完了したら「保存」ボタンをクリックします。
インベントリの作成
-
ナビゲーション・メニューの「在庫」をクリックします。
-
「追加」ボタンをクリックし、値のドロップダウン・リストから「在庫の追加」を選択します。
-
特定のフィールドに次の値を入力または選択します。
- 名前:
My Local Inventory
- インスタンス・グループ: コントロールプレーン
Oracle Cloud Infrastructure Ansibleコレクションでは、Oracle Linux Automation Engineを使用してOCIテナンシと対話するときに、localhostネットワーク接続が使用されます。
- 名前:
-
確認して、「保存」ボタンをクリックします。
ソース・コントロール資格証明の追加
-
ナビゲーション・メニューの「資格証明」をクリックします。
-
「追加」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
- 名前:
Git Server
- 資格証明タイプ: ソース管理
ページがリフレッシュされ、「タイプ詳細」がリクエストされます。
- 名前:
-
Gitサーバーのユーザー名を入力します。
- ユーザー名:
git
- ユーザー名:
-
Gitサーバーの秘密キーの内容をコピーして、「SCM秘密キー」フィールドに貼り付けます。
無料の演習環境では、デフォルトの
~/.ssh/id_rsa
ファイルを使用します。 -
確認して、「保存」ボタンをクリックします。
プロジェクトの作成
-
ナビゲーション・メニューの「プロジェクト」をクリックします。
-
「追加」ボタンをクリックします。
-
特定のフィールドに次の値を入力または選択します。
- 名前:
My Project
- 実行環境: OLAM EE(2.3)
- ソース・コントロール資格証明タイプ: Git
ページがリフレッシュされ、「タイプ詳細」がリクエストされます。
- ソース・コントロールURL:
git@<ip_address_of_instance>:/git-server/repos/myproject.git
- ソース制御ブランチ:
main
- ソース・コントロール資格証明: Gitサーバー
無料の演習環境では、「ソース・コントロールURL」フィールドのgitサーバーIPアドレスを使用します。
- 名前:
-
確認して、「保存」ボタンをクリックします。
-
プロジェクト同期ステータスをレビューします。
プロジェクトを作成すると、同期の開始時に、Web UIのステータスが「詳細」サマリーに表示されます。構成が正しく、Gitサーバーに到達可能な場合、ステータスは「実行中」から「成功」に遷移します。
ジョブ・テンプレートの作成
-
ナビゲーション・メニューの「テンプレート」をクリックします。
-
「追加」ボタンをクリックし、値のドロップダウン・リストから「ジョブ・テンプレートの追加」を選択します。
-
必要な値を入力または選択します。
- 名前:
My Template
- ジョブ・タイプ: 実行
- 在庫: 自分のローカル在庫
- プロジェクト: マイ・プロジェクト
- 実行環境: OLAM EE(2.3)
- プレイブック: get_namespace.yml
- 名前:
-
資格証明を選択します。
「資格証明」を選択すると、「資格証明の選択」ポップアップ・ダイアログが表示されます。「選択したカテゴリ」ドロップダウン・リストから「Oracle Cloud Infrastructure」を選択し、そのタイプの資格証明を表示します。
-
「自分のOCI資格証明」を選択し、「選択」ボタンをクリックします。
-
「ジョブ・テンプレート」エントリを確認します。
-
ページをスクロール ダウンし、[保存]ボタンをクリックします。
-
テンプレートを起動します。
「起動」ボタンをクリックして、テンプレート・サマリー・ページからジョブを起動します。
成功すると、ジョブが起動され、OCIテナンシのネームスペースを含むテンプレートの出力が表示されます。「出力のリロード」リンクをクリックすると、必要に応じて出力パネルをリフレッシュできます。
次のステップ
ネームスペースを示す出力では、Oracle Cloud Infrastructure Ansibleコレクションを利用したプレイブックの使用方法を示す作業構成およびプロジェクトがあることが確認されます。コレクションをさらに試して、インスタンスおよびその他のリソースをテナンシにデプロイします。
関連リンク
- 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 OCI Ansible Collection with Oracle Linux Automation Manager
F76742-03
Copyright ©2023, Oracle and/or its affiliates.