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