service_factsモジュールを使用してcronプロセスの現在のバージョンを表示しますか?

service_factsモジュールを使用してcronプロセスの現在のバージョンを表示しますか?

私はこの本でAnsibleを学んでいます。これには次の実験が含まれています。

次の仕様に従ってスクリプトを作成します。

  • ホスティングサーバーは、cronモジュールを使用して毎週平日の午前2時に再起動する必要があります。
  • 再起動後、「CRONブートの再起動完了」というテキストを含むメッセージをシステムログに記録する必要があります。
  • デフォルトのsystemdターゲットは複数のターゲットに設定する必要があります。
  • 最後のタスクでは、サービスファクトを使用してcronプロセスの現在のバージョンを表示する必要があります。

最後の部分は少し混乱しています。 service_facts モジュールは、クローンの名前、ソース、状態、および状態に関連する事実だけを検索しますが、バージョンは検索しません。この目標を達成する方法は?

答え1

これはバグかもしれません。要求が疑わしいようです(または少なくとも不明です)'use service facts to show the current version of the cron process'。プロパティにバージョンがありません。サービスの事実、たとえば(Ubuntuで実行中)

    - service_facts:
    - debug:
        var: ansible_facts.services['cron.service']

与えられた

  ansible_facts.services['cron.service']:
    name: cron.service
    source: systemd
    state: running
    status: enabled

しかも'version of process'おかしく見えるけど。たぶん彼らは欲しいですか'PID of process'?この場合は、以下を使用してください。システム、例えば

    - systemd:
        name: "{{ ansible_facts.services['cron.service']['name'] }}"
      register: result
    - debug:
        var: result.status.ExecMainPID

与えられた

  result.status.ExecMainPID: '884'

(また見なさい: shell> systemctl status cron.service)

次のオプションは彼らが望むものかもしれません'version of cron binary'。この場合は、以下を使用してください。パック情報、例えば

    - package_facts:
    - debug:
        var: ansible_facts.packages.cron.0.version

与えられた

  ansible_facts.packages.cron.0.version: 3.0pl1-136ubuntu1

より複雑なオプションを見る実行中のcronデーモンのバージョンを取得する方法。 Ansibleで自動化することもできます。

関連情報