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에서 자동화할 수도 있습니다.

관련 정보