Ansible CLI를 통해 여러 서버를 동시에 패닉/재시작하고 싶지만 아래 명령이 실행되는 동안 중단됩니다. 동시 패닉/재시작을 달성하기 위해 명령을 수정하는 방법을 제안할 수 있는 사람이 있습니까?
ansible HostGroup -m shell -a 'echo b >/proc/sysrq-trigger'
답변1
위 명령어에 대해서도 비슷한 질문과 답변이 있기 때문에
reboot -n
이들그리고 의 차이점은 무엇인가요echo b > /proc/sysrq-trigger
?echo 'b' >> /proc/sysrq-trigger
이들그리고 그리고 의 차이점은 무엇인가요reboot
?
디스크를 플러시하거나 동기화하거나 마운트 해제하지 않고 모든 네트워크 연결을 닫지 않고도 모든 시스템을 한 번에 재부팅할 수 있는 작업을 찾고 계시다는 것을 알고 있습니다.
Ansible은 클러스터 셸이나 터미널 멀티플렉서가 아니며 임시 명령도 그런 식으로 작동하지 않습니다.
따라서 현재 접근 방식으로는 예상한 결과를 얻을 수 없습니다.
shell
이는 Ansible에 연결된 장치가 Ansible보다 빠르게 다시 시작되고 모듈이 자체 상태와 연결을 유지할 수 있기 때문입니다 . 즉, 세션을 닫고 연결을 끊습니다. 예제에서도 비슷한 동작을 찾을 수 있습니다.다시 로드하는 중...장치가 정지됨.
당신은 찾고있을 수 있습니다비동기 임시 작업그것은 "치고 잊어버리다" 방법은 다음과 같은 것으로 끝납니다
ansible HostGroup --background 5 --poll 0 --module-name shell --args 'echo b >/proc/sysrq-trigger'
문서
-
플레이북에서 여러 작업을 동시에 실행하려면 0으로 설정하여 사용
async
하세요poll
. 이를 설정하면poll: 0
Ansible은 작업을 시작하고 결과를 기다리지 않고 즉시 다음 작업으로 이동합니다.
비슷한 질문과 답변
더 많은 참고자료
답변2
Ansible의 규칙 #1: 쉘 명령으로 돌아가기 전에 해당 사용 사례를 다루는 모듈이 이미 있는지 확인하십시오.
이 경우에는 실제로재시작기준 치수.
해당 페이지의 예를 바탕으로 대략 다음과 같은 플레이북이 필요합니다.
---
hosts: HostGroup
tasks:
- name: Reboot systems
ansible.builtin.reboot:
또는 명령줄에서 이 작업을 수행하면 ansible -m reboot HostGroup
문제가 해결됩니다.
Ansible과 마찬가지로 프로덕션 서버에서 명령을 실행하기 전에 혼란을 겪을 수 있는 시스템에서 명령을 테스트하십시오.