Linux
使用 service_facts 模組顯示 cron 程序的目前版本?
我正在從這本書中學習 Ansible,它包含這個實驗室:
根據以下規範編寫劇本:
- 必須使用 cron 模組在每個工作日的凌晨 2 點重新啟動託管伺服器
- 重新啟動後,必須將一條消息寫入 syslog,其中包含文本“CRON 啟動的重新啟動完成”
- 預設 systemd 目標必須設置為多目標
- 最後一個任務應該使用服務事實來顯示 cron 程序的目前版本
最後一點有點令人困惑。service_facts 模組僅檢索與 crond 的名稱、來源、狀態和狀態相關的事實,但不檢索版本。如何實現這一目標?
這可能是一個錯誤。該請求看起來可疑(或至少模棱兩可)
'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,例如- 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,例如- package_facts: - debug: var: ansible_facts.packages.cron.0.version
給
ansible_facts.packages.cron.0.version: 3.0pl1-136ubuntu1
在如何獲取正在執行的 cron 守護程序的版本中查看更複雜的選項。它們也可能在 Ansible 中實現自動化。