ノート:

AWXコレクションを使用したOracle Linux Automation Managerの管理

イントロダクション

AWX Ansibleコレクションを使用すると、管理者はプレイブックを介してOracle Linux Automation Managerと対話できます。モジュールには、ユーザーやグループの管理、プロジェクトの作成、ジョブの実行などのタスクを実行する機能が含まれます。

目的

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

前提条件

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"
    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アドレスを出力します。

Oracle Linux Automation Managerのデプロイメントの確認

  1. 新しいターミナルを開きます。

  2. Oracle Linux Automation ManagerインスタンスへのSSHトンネルを構成します。

    ssh -o ExitOnForwardFailure=yes -f -L 8444:localhost:443 oracle@<public_ip_address_of_olam-node> sleep 300
    
    • -o ExitOnForwardFailure=yes: すべてのリモート・ポート転送が正常に確立されるまで待機します。
    • -f: SSHトンネルをバックグラウンドで実行します。
    • -L: ローカル・システム上のポート8444にトンネルを作成し、リモート・システム上の443を作成します
    • sleep 300: リモート・トンネルを5分間開いたままにし、確立された接続を待機してから自動的に閉じます。
  3. Webブラウザを開き、URLを入力します。

    https://localhost:8444
    

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

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

    olam2- ログイン

  5. ログインすると、Web UIが表示されます。

    olam2-webui

コントローラ構成ファイルの作成

AWX Ansibleコレクションは、構成ファイルを使用し、場合によってはAWX CLIを使用してOracle Linux Automation Managerに対して認証します。認証パラメータは、CLIを使用してコマンドラインで直接渡すか、構成ファイルに書き込むことができます。

認証パラメータを指定する場合、AWX Ansibleコレクションは次のいずれかの組合せを想定します。

詳細は、アップストリーム・プロジェクトを参照してください。

  1. SSHトンネルを作成したターミナルに戻ります。

  2. 構成ファイルを生成します。

    cat << EOF | tee ~/.tower_cli.cfg > /dev/null
    [general]
    host: https://localhost:8444
    verify_ssl: false
    username: admin
    password: admin
    use_token = false
    EOF
    
    • host: - Oracle Linux Automation Manager Web UIにアクセスするためのURLを定義します。
    • verify_ssl: - チュートリアル環境が自己署名証明書を使用するため、厳密なSSLチェックをオフにします
    • use_token: - OAuth2トークンを使用することをお薦めしますが、falseに設定すると、認証用に無効になります。

組織の作成

スタート・ガイドのチュートリアルで説明しているように、組織はロールベースのピラミッドの最上部にあり、ユーザー、チーム、プロジェクトおよび在庫の論理的なコレクションです。

これをWeb UIで作成するのではなく、プレイブックを作成できます。

  1. プレイブックを書く。

    cat << EOF | tee configure-olam.yaml > /dev/null
    ---
    - name: Playbook to set up training demo data using the AWX collection
      hosts: localhost
      gather_facts: false
      collections:
        - awx.awx
    
      tasks:
    
      - name: Create an organization
        awx.awx.organization:
          name: "Example"
          description: "Created using a playbook"
          state: present
    
    EOF
    
  2. プレイブックを実行します。

    ansible-playbook configure-olam.yaml
    
  3. Web UIで変更を確認します。

    ブラウザを使用して、Web UIにログインします。

    ノート: ログインが失敗した場合、SSHトンネルが期限切れになっている可能性があります。この場合、SSHコマンドを再実行して接続を再確立する必要があります。

    ナビゲーション・メニューで「組織」をクリックします。プレイブックが作成したExampleエントリに注意してください。

ジョブの実行

組織が作成されたら、スタート・ガイド・チュートリアルの残りのステップをいくつか変更して自動化します。Oracle Linux Automation Engineの利点の1つは、自己文書化です。

  1. プレイブックを作成した端末に戻ります。

  2. 既存のプレイブックに追加の構成を追加します。

    cat << EOF | tee -a configure-olam.yaml > /dev/null
      - name: Add a user
        awx.awx.user:
          username: jdoe
          password: oracle
          email: jdoe@example.com
          first_name: John
          last_name: Doe
          organization: Example
          state: present
    
      - name: Add an inventory
        awx.awx.inventory:
          name: "Demo Inventory"
          description: "Demo OCI Instances"
          organization: Example
          state: present
    
      - name: Add a host
        awx.awx.host:
          name: localhost
          description: "Use to run tasks locally"
          inventory: "Demo Inventory"
          state: present
          variables:
            ansible_connection: local
    
      - name: Add a credential
        awx.awx.credential:
          name: "Linux Instance"
          credential_type: Machine
          organization: Example
          inputs:
            username: opc
            ssh_key_data: ""
    
      - name: Add a project
        awx.awx.project:
          name: "Hello World"
          description: "Sample Hello World Project"
          organization: Example
          default_environment: "OLAM EE (2.3)"
          scm_type: "git"
          scm_update_on_launch: false
          scm_url: https://github.com/oracle-devrel/linux-virt-labs.git
          state: present
    
      - name: Add a template
        awx.awx.job_template:
          name: "Say Hello"
          job_type: "run"
          organization: Example
          inventory: "Demo Inventory"
          project: "Hello World"
          playbook: "labs/olam-hello-world.yaml"
          state: present
    
      - name: Launch a job
        awx.awx.job_launch:
          job_template: "Say Hello"
          wait: true
        register: job
    
      - name: Print results from job
        ansible.builtin.debug:
          var: job
    
    EOF
    
  3. プレイブックを再実行します。

    ansible-playbook configure-olam.yaml
    

    プレイブックは、最後のプレイでジョブのステータスがsuccessfulと表示され、無視できる警告とともに終了します。

  4. Web UIでジョブを確認します。

    ブラウザを使用して「ジョブ」に移動し、「Say Hello」ジョブをクリックします。出力には、ジョブ中にプレイブックが実行された結果が表示されます。デバッグ・タスクからのようこそメッセージを確認します。

次のステップ

Web UI内の出力によって、Oracle Linux Automation Managerが動作していることが確認され、より一般的なタスクの一部を管理するためのプレイブックが記述されています。

その他の学習リソース

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

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