ノート:

Oracle Linux Automation ManagerでのOCI Ansibleコレクションの使用

イントロダクション

Oracle Cloud Infrastructure (OCI) Ansibleコレクションでは、Oracle Linux Automation EngineまたはOracle Linux Automation Managerを使用して、Oracle Cloudのリソースを簡単にプロビジョニングおよび管理できます。

目的

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

前提条件

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: "olam-node"
        type: "control"
      2:
        instance_name: "git-server"
        type: "server"
    use_git: true
    olam_type: single
    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アドレスを出力します。

プレイブックの作成

  1. 新しいターミナル・ウィンドウを開きます。

  2. リモートgitサーバー・インスタンスに変数を設定します。

    export REMOTE=<ip_address_of_instance>
    
  3. プロジェクト・ディレクトリを作成します。

    mkdir ~/myproject
    
  4. 要件ファイルを作成します。

    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
    
  5. プレイブックを作成します。

    このプレイブックは、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
    

ソース・コントロールへのプロジェクトの追加

  1. プロジェクトの作業ディレクトリをGitリポジトリに初期化します。

    リポジトリを初期化する前に、Gitの初回構成ステップを実行する必要があります。

    1. プロジェクトの初期化時に使用されるデフォルトのブランチ名を設定します。

      git config --global init.defaultBranch main
      
    2. アイデンティティを設定します。

      このチュートリアルでは、電子メールと名前の例を示します。gitはコミットごとにこの情報を不変に含むため、プロジェクトで作業するときは電子メールアドレスと名前を使用してください。

      git config --global user.email johndoe@example.com
      git config --global user.name "John Doe"
      
    3. プロジェクトの作業ディレクトリに移動します。

      cd ~/myproject
      
    4. ディレクトリをローカルのGitリポジトリとして初期化します。

      git init
      

      このコマンドは、空のGitリポジトリを初期化したことを返します。

  2. 作業ディレクトリおよびプロジェクト・ステージング領域の状態を確認します。

    git status
    

    ローカルリポジトリの状態は、追跡されていない2つのファイル(get_namespace.ymlrequirements.yml)を示します。

  3. ステージング領域に新しいファイルを追加して追跡します。

    git add --all
    

    --allオプションは、追跡されていないファイルや変更されたファイルをすべてステージング領域に追加します。

  4. ステージング領域に現在ある変更をコミットします。

    git commit -m 'initial commit'
    

    -mオプションを使用すると、コミットされた変更にコメントを追加できます。

  5. リモートGitリポジトリを作成して初期化します。

    リモート・リポジトリは、すべてのプロジェクト・コントリビュータによって使用され、GitHubや自己ホスト・サーバーなどのコード・ホスティング・サービスに格納される共有リポジトリです。

    ssh git@$REMOTE "git init -b main --bare /git-server/repos/myproject.git"
    

    -bオプションは、mainというブランチを使用してリモートリポジトリを確実に初期化します。

  6. yesと入力して、ECDSAキー・フィンガープリントを受け入れます。

  7. 新しいリモート・リポジトリ接続レコードを追加します。

    ローカル・リポジトリにリモート接続を追加すると、Gitコマンドの名前付きショートカットとして使用できます。

    git remote add origin git@$REMOTE:/git-server/repos/myproject.git
    

    コロンの後のパスは、リモートGitサーバー上のリポジトリのディレクトリの場所です。

  8. 新しく追加された接続レコードを確認します。

    git remote -v
    

    出力には、git fetchコマンドとgit pushコマンドの両方のリモートGitリポジトリの場所を指す接続レコードoriginが表示されます。

  9. ローカルリポジトリの変更をリモートリポジトリにプッシュします。

    git push origin main
    

    Oracle Linux Automation Managerプロジェクト内でmyprojectソースを使用できるようになりました。

Ansible Galaxy資格証明の作成

これらの資格証明により、Oracle Linux Automation Managerは、パブリックAnsible Galaxy HubからOCI Ansibleコレクションをプルできます。

  1. 新しいターミナル・ウィンドウを開き、olam-nodeインスタンスへのSSHトンネルを構成します。

    ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
    
  2. Webブラウザを開き、URLを入力します。

    https://localhost:8444
    

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

  3. Oracle Linux Automation Manager Web UIにログインします自動デプロイメント中に作成されたユーザー名adminおよびパスワードadminを使用します。

    olam2- ログイン

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

    olam2-webui

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

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

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

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

    • 名前: My Ansible Galaxy
    • 組織: Default
    • 資格証明タイプ: Ansible Galaxy/Automation Hub APIトークン

    Oracle Linux Automation Managerでは、Ansible Galaxy資格証明を使用して、ansible-galaxyコマンドを使用してロールおよびコレクションのダウンロードを容易にします。

    • GalaxyサーバーURL: https://galaxy.ansible.com

    olam2-ansible-galaxy-creds

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

  9. ナビゲーション・メニューの「アクセス」セクションの下にある「組織」をクリックします。

    組織内でAnsible Galaxy資格証明を割り当てると、gitプロジェクト内からOracle Linux Infrastructure Ansibleコレクションをダウンロードできます。

  10. 「デフォルト」組織をクリックし、「編集」ボタンをクリックします。

  11. 「銀河資格証明」フィールドで「My Ansible Galaxy」資格証明を選択し、「選択」ボタンをクリックします。

  12. 確認して、「保存」ボタンをクリックします。

    olam2-ansible-galaxy-org

OCI資格証明の作成

OCI資格証明は、特定のOCIテナンシに関するOracle Linux Automation Manager情報を提供します。

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

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

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

    • 名前: My OCI Credentials
    • 組織: Default
    • 資格証明タイプ: Oracle Cloud Infrastructure

    olam2-oci-cred1

    ページがリフレッシュされ、OCI構成情報がリクエストされます。

  4. 新しいターミナル・ウィンドウを開きます。

  5. OCI構成ファイルの内容を表示します。

    cat ~/.oci/config
    
  6. 端末に表示されている値を使用して、Oracle Linux Automation Manager Web UIのOCI資格証明の特定のフィールドに一致させます。

    各フィールドの横にあるolam2-webui-showアイコンを使用して、貼付けの値を表示します。

    olam2-oci-cred2

  7. OCIユーザーのAPI秘密キーの内容を取得します。

    無料の演習環境では、cat ~/.oci/oci.keyを実行してこの情報を取得し、出力全体(BEGINおよびEND行を含む)をコピーできます。

  8. Oracle Linux Automation Manager Web UIの「プライベート・ユーザー・キー」フィールドにキーを貼り付けます。

    olam2-oci-cred3

  9. 確認して、「保存」ボタンをクリックします。

    olam2-oci-cred4

    これらの値を後で編集する必要がある場合は、Web UIで暗号化されて表示されます。したがって、変更するには、特定のフィールドの横にある「置換」アイコンをクリックし、フィールドに新しい値を追加します。必要に応じて繰り返して、変更が完了したら「保存」ボタンをクリックします。

インベントリの作成

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

  2. 「追加」ボタンをクリックし、値のドロップダウン・リストから「在庫の追加」を選択します。

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

    • 名前: My Local Inventory
    • インスタンス・グループ: コントロールプレーン

    Oracle Cloud Infrastructure Ansibleコレクションでは、Oracle Linux Automation Engineを使用してOCIテナンシと対話するときに、localhostネットワーク接続が使用されます。

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

    olam2-inv

ソース・コントロール資格証明の追加

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

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

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

    • 名前: Git Server
    • 資格証明タイプ: ソース管理

    olam2-git-cred1

    ページがリフレッシュされ、「タイプ詳細」がリクエストされます。

  4. Gitサーバーのユーザー名を入力します。

    • ユーザー名: git
  5. Gitサーバーの秘密キーの内容をコピーして、「SCM秘密キー」フィールドに貼り付けます。

    無料の演習環境では、デフォルトの~/.ssh/id_rsaファイルを使用します。

    olam2-git-cred2

  6. 確認して、「保存」ボタンをクリックします。

    olam2-git-cred3

プロジェクトの作成

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

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

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

    • 名前: My Project
    • 実行環境: OLAM EE(2.3)
    • ソース・コントロール資格証明タイプ: Git

    olam2-proj1

    ページがリフレッシュされ、「タイプ詳細」がリクエストされます。

    • ソース・コントロールURL: git@<ip_address_of_instance>:/git-server/repos/myproject.git
    • ソース制御ブランチ: main
    • ソース・コントロール資格証明: Gitサーバー

    無料の演習環境では、「ソース・コントロールURL」フィールドのgitサーバーIPアドレスを使用します。

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

    olam2-proj2

  5. プロジェクト同期ステータスをレビューします。

    プロジェクトを作成すると、同期の開始時に、Web UIのステータスが「詳細」サマリーに表示されます。構成が正しく、Gitサーバーに到達可能な場合、ステータスは「実行中」から「成功」に遷移します。

    olam2-proj-sync

ジョブ・テンプレートの作成

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

  2. 「追加」ボタンをクリックし、値のドロップダウン・リストから「ジョブ・テンプレートの追加」を選択します。

  3. 必要な値を入力または選択します。

    • 名前: My Template
    • ジョブ・タイプ: 実行
    • 在庫: 自分のローカル在庫
    • プロジェクト: マイ・プロジェクト
    • 実行環境: OLAM EE(2.3)
    • プレイブック: get_namespace.yml
  4. 資格証明を選択します。

    「資格証明」を選択すると、「資格証明の選択」ポップアップ・ダイアログが表示されます。「選択したカテゴリ」ドロップダウン・リストから「Oracle Cloud Infrastructure」を選択し、そのタイプの資格証明を表示します。

  5. 「自分のOCI資格証明」を選択し、「選択」ボタンをクリックします。

  6. 「ジョブ・テンプレート」エントリを確認します。

    olam2-temp1

  7. ページをスクロール ダウンし、[保存]ボタンをクリックします。

    olam2-temp2

  8. テンプレートを起動します。

    「起動」ボタンをクリックして、テンプレート・サマリー・ページからジョブを起動します。

    olam2- 一時起動

    成功すると、ジョブが起動され、OCIテナンシのネームスペースを含むテンプレートの出力が表示されます。「出力のリロード」リンクをクリックすると、必要に応じて出力パネルをリフレッシュできます。

    olam2-temp-output

次のステップ

ネームスペースを示す出力では、Oracle Cloud Infrastructure Ansibleコレクションを利用したプレイブックの使用方法を示す作業構成およびプロジェクトがあることが確認されます。コレクションをさらに試して、インスタンスおよびその他のリソースをテナンシにデプロイします。

その他の学習リソース

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

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