저는 다수의 Rhel 서버를 보유하고 있으며 모든 서버가 적시에 동기화되도록 해야 합니다. 그들은 모두 chronyd 서비스를 실행하고 있습니다.
내 질문은 명령을 통해 이를 확인할 수 있는 유틸리티가 있습니까? 이 작업을 수행할 수 있는 ansible 모듈을 아는 사람이 있나요? 나는 그것을 찾지 못했습니다.
내가 원하는 것은 모든 서버가 엄격하게 효율적인 방식으로 동시에 실행되고 있는지 확인하는 것입니다. 아마도 ntpdate와 비슷한 것이 나에게 도움이 될 것입니다.
미리 감사드립니다!
답변1
chrony가 명령과 동기화되는지 확인하십시오.
chrony 특정 명령을 사용하여 ntp 상태를 확인할 수 있습니다. 현재 NTP 서버에서 사용하는 정보를 보고 싶다면
chronyc tracking
모든 NTP 서버 표시
chronyc sources
자세한 내용은 다음을 참조하세요. fedora - chrony가 동기화되었는지 확인
앤서블과 결합
Ansible 모듈은 없지만 다른 방법이 있습니다.
chrony에서도 작동하는 ntpstat 유틸리티가 계속 있어야 합니다. 반환 코드는 ntp 상태에 대한 정보를 제공합니다. 0은 시계가 동기화되었음을 의미하고, 1은 동기화되지 않음을 의미하며, 2는 시계 상태가 불확실함을 의미합니다. 바라보다맨페이지
당신은 그것을 확인할 수 있습니다
ntpstat
echo $?
ansible 명령 모듈을 사용하여 ntpstat를 실행하는 경우 반환 코드가 0이 아니면 기본적으로 명령이 실패합니다. 따라서 이 경우에는 이를 유리하게 활용할 수 있습니다. ntpstat 명령을 실행하는 간단한 스크립트를 만듭니다.
- name: Check if chrony is synchronized
command: ntpstat
필요한 호스트 그룹에 대한 플레이북을 실행합니다. 실패한 모든 호스트는 ntp를 동기화하지 않았습니다.
한 단계 더 나아가 반환 코드가 0이 아닌 경우 전역 chrony 구성(chrony.conf)을 모든 호스트에 복사하고 ansible을 사용하여 chronyd 서비스를 다시 시작할 수 있습니다.
- name: Check if chrony is synchronized
command: ntpstat
register: ntpstat_rc
ignore_errors: true
- name: Copy chrony configuration
copy:
src: <global chrony.conf on your ansible server>
dest: /etc/chrony.conf
backup: yes
when: ntpstat_rc.rc != 0
- name: Restart chrony service
systemd:
name: chronyd
state: restarted
when: ntpstat_rc.rc != 0
이게 도움이 되길 바란다.
건배