検索

20.10. スキャンジョブテンプレート

download PDF

Automation controller3.2 以降、スキャンジョブはサポートされなくなりました。このシステム追跡機能は、ファクトを履歴データとして取得して保存する方法として使用されました。ファクトは、ファクトキャッシュを通じてコントローラーに保存されるようになりました。詳細は、ファクトキャッシュ を参照してください。

Automation controller 3.2 より前のシステムで使用されるジョブテンプレートスキャンジョブは、通常のジョブテンプレートと同様に、run を入力するように変換されます。インベントリーや認証情報などの関連リソースを保持します。デフォルトでは、関連プロジェクトを持たないジョブテンプレートスキャンジョブには特別な Playbook が割り当てられます。独自のスキャン Playbook を使用してプロジェクトを指定することもできます。awx-facts-playbooks を指すプロジェクトが組織ごとに作成され、ジョブテンプレートが Playbook: https://github.com/ansible/tower-fact-modules/blob/master/scan_facts.yml に設定されます。

20.10.1. ファクトスキャン Playbook

スキャンジョブ Playbook scan_facts.yml には、パッケージ、サービス、ファイルという 3 つの ファクトスキャンモジュール の呼び出しと、Ansible の標準ファクト収集機能が含まれています。scan_facts.yml Playbook ファイルは次のようになります。

- hosts: all
  vars:
    scan_use_checksum: false
    scan_use_recursive: false
  tasks:
    - scan_packages:
    - scan_services:
    - scan_files:
        paths: '{{ scan_file_paths }}'
        get_checksum: '{{ scan_use_checksum }}'
        recursive: '{{ scan_use_recursive }}'
      when: scan_file_paths is defined

scan_files ファクトモジュールは、スキャンジョブテンプレートの extra_vars で渡されるパラメーターを受け入れる唯一のモジュールです。

scan_file_paths: /tmp/scan_use_checksum: true scan_use_recursive: true

  • scan_file_paths パラメーターには複数の設定がある場合があります (/tmp/ または /var/log など)。
  • scan_use_checksum および scan_use_recursive パラメーターを false に設定するか、省略することもできます。省略も、設定の誤りと同等です。

スキャンジョブテンプレートでは、become を有効にし、become が可能である 認証情報 を使用する必要があります。オプションリストから Privilege Escalation をチェックすることで、become を有効にできます。

Job template become

20.10.2. scan_facts.yml でサポートされるオペレーションシステム

ファクトキャッシュを使用して scan_facts.yml Playbook を使用する場合は、次のサポート対象のオペレーティングシステムのいずれかを使用していることを確認してください。

  • Red Hat Enterprise Linux 5、6、7、8、9
  • Ubunto 23.04 (Ubunto は非推奨となり、今後のリリースで削除されます)
  • OEL 6 および 7
  • SLES 11 および 12
  • Debian 6、7、8、9、10、11、12
  • Fedora 22、23、24
  • Amazon Linux 2023.1.20230912

これらのオペレーティングシステムの一部では、Python を実行するために、またはスキャンモジュールが依存する python-apt などの Python パッケージにアクセスするために初期設定が必要です。

20.10.3. スキャン前の設定

以下は、スキャンジョブを実行できるように特定のディストリビューションを設定する Playbook の例です。

Bootstrap Ubuntu (16.04)
---
- name: Get Ubuntu 16, and on ready
 hosts: all
 sudo: yes
 gather_facts: no
 tasks:
 - name: install python-simplejson
   raw: sudo apt-get -y update
   raw: sudo apt-get -y install python-simplejson
   raw: sudo apt-get install python-apt

Bootstrap Fedora (23, 24)
---
- name: Get Fedora ready
 hosts: all
 sudo: yes
 gather_facts: no
 tasks:
 - name: install python-simplejson
   raw: sudo dnf -y update
   raw: sudo dnf -y install python-simplejson
   raw: sudo dnf -y install rpm-python

20.10.4. カスタムファクトスキャン

カスタムファクトスキャンの Playbook は ファクトスキャン Playbook セクションの例に似ています。たとえば、カスタム scan_foo Ansible fact モジュールのみを使用する Playbook は次のようになります。

scan_foo.py:
def main():
    module = AnsibleModule(
        argument_spec = dict())


    foo = [
      {
        "hello": "world"
      },
      {
        "foo": "bar"
      }
    ]
    results = dict(ansible_facts=dict(foo=foo))
    module.exit_json(**results)


main()

カスタムファクトモジュールを使用するには、それがスキャンジョブテンプレートで使用される Ansible プロジェクトの /library/ サブディレクトリーに存在することを確認してください。このファクトスキャンモジュールは、ハードコードされたファクトのセットを返します。

[
   {
     "hello": "world"
   },
   {
     "foo": "bar"
   }
 ]

詳細は、Ansible ドキュメントの モジュールの開発 セクションを参照してください。

20.10.5. ファクトキャッシング

Automation controller は、Ansible Fact Cache プラグインを通じてホストごとにファクトを保存および取得できます。この動作はジョブテンプレートごとに設定できます。ファクトキャッシングはデフォルトでオフになっていますが、こちらを有効にして、実行中のジョブに関連するインベントリーの全ホストに対するファクトリクエストに対応できます。これにより、ホストファクトのインベントリー全体にアクセスしながら、--limit を指定してジョブテンプレートを使用できるようになります。プラグインで強制的にホストごとにグローバルタイムアウトの設定 (秒単位) を指定するには、Settings に移動して、Jobs オプションで Job settings を選択します。

ジョブファクトキャッシュ

ファクトキャッシュ (use_fact_cache=True) を使用するジョブを起動すると、各ホストの ansible_facts はすべてコントローラーによってジョブのインベントリーに保存されます。

Automation controller に同梱されている Ansible Fact Cache プラグインは、ファクトキャッシュが有効になっている (use_fact_cache=True) ジョブで有効になります。

ファクトキャッシュが有効になっているジョブ (use_fact_cache=True) が実行されると、Automation controller はインベントリー内のホストの全レコードを復元します。ホストごとに現在保存されているファクトよりも更新時刻が新しいレコードはデータベース内で更新されます。

新しいファクトと変更されたファクトは、Automation controller のログ機能を通じて記録されます。具体的には、system_tracking namespace またはロガーに対してです。ロギングペイロードには次のフィールドが含まれます。

  • host_name
  • inventory_id
  • ansible_facts

ansible facts は、Automation Controller インベントリー (inventory_id) に含まれる host_name の全 Ansible ファクトのディクショナリーです。

注記

ホスト名にスラッシュ (/) が含まれている場合、ファクトキャッシュはそのホストでは機能しません。100 台のホストを含むインベントリーがあり、1 台のホストの名前に / が含まれている場合、残りの 99 台のホストは引き続きファクトを収集します。

20.10.6. ファクトキャッシングの利点

ファクトキャッシュにより、ファクト収集の実行にかかる時間を節約できます。1000 個のホストとフォークに対して実行するジョブに Playbook がある場合、これらの全ホストからファクトを収集するのに 10 分費やすことができます。ただし、ジョブを定期的に実行する場合、最初の実行でこれらのファクトがキャッシュされ、次の実行でデータベースから取得されます。こうすることで、スマートインベントリーを含む大規模なインベントリーに対するジョブの実行時間が短縮されます。

注記

ファクトキャッシュの適用に ansible.cfg ファイルを変更しないでください。カスタムファクトキャッシュは、コントローラーのファクトキャッシュ機能と競合する可能性があります。Automation controller に付属のファクトキャッシュモジュールを使用する必要があります。

キャッシュされたファクトのジョブでの使用は、ジョブテンプレートウィンドウの Options フィールドでこれを有効にして選択できます。

キャッシュされたファクト

ファクトを消去するには、Ansible clear_facts メタタスク を実行します。以下は、Ansible clear_facts メタタスクを使用する Playbook の例です。

- hosts: all
  gather_facts: false
  tasks:
    - name: Clear gathered facts from all currently targeted hosts
      meta: clear_facts

ファクトキャッシュの API エンドポイントは次の場所にあります。

http://<controller server name>/api/v2/hosts/x/ansible_facts

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.