Ansible을 통해 여러 서버를 동시에 긴급/재시작

Ansible을 통해 여러 서버를 동시에 긴급/재시작

Ansible CLI를 통해 여러 서버를 동시에 패닉/재시작하고 싶지만 아래 명령이 실행되는 동안 중단됩니다. 동시 패닉/재시작을 달성하기 위해 명령을 수정하는 방법을 제안할 수 있는 사람이 있습니까?

ansible HostGroup -m shell -a 'echo b >/proc/sysrq-trigger'

답변1

위 명령어에 대해서도 비슷한 질문과 답변이 있기 때문에

디스크를 플러시하거나 동기화하거나 마운트 해제하지 않고 모든 네트워크 연결을 닫지 않고도 모든 시스템을 한 번에 재부팅할 수 있는 작업을 찾고 계시다는 것을 알고 있습니다.

Ansible은 클러스터 셸이나 터미널 멀티플렉서가 아니며 임시 명령도 그런 식으로 작동하지 않습니다.

따라서 현재 접근 방식으로는 예상한 결과를 얻을 수 없습니다.

shell이는 Ansible에 연결된 장치가 Ansible보다 빠르게 다시 시작되고 모듈이 자체 상태와 연결을 유지할 수 있기 때문입니다 . 즉, 세션을 닫고 연결을 끊습니다. 예제에서도 비슷한 동작을 찾을 수 있습니다.다시 로드하는 중...장치가 정지됨.

당신은 찾고있을 수 있습니다비동기 임시 작업그것은 "치고 잊어버리다" 방법은 다음과 같은 것으로 끝납니다

ansible HostGroup --background 5 --poll 0 --module-name shell --args 'echo b >/proc/sysrq-trigger'

문서

  • 작업을 동시에 실행: 폴링 = 0

    플레이북에서 여러 작업을 동시에 실행하려면 0으로 설정하여 사용 async하세요 poll. 이를 설정하면 poll: 0Ansible은 작업을 시작하고 결과를 기다리지 않고 즉시 다음 작업으로 이동합니다.

비슷한 질문과 답변

더 많은 참고자료

답변2

Ansible의 규칙 #1: 쉘 명령으로 돌아가기 전에 해당 사용 사례를 다루는 모듈이 이미 있는지 확인하십시오.

이 경우에는 실제로재시작기준 치수.

해당 페이지의 예를 바탕으로 대략 다음과 같은 플레이북이 필요합니다.

---
hosts: HostGroup
tasks:
  - name: Reboot systems
    ansible.builtin.reboot:

또는 명령줄에서 이 작업을 수행하면 ansible -m reboot HostGroup문제가 해결됩니다.

Ansible과 마찬가지로 프로덕션 서버에서 명령을 실행하기 전에 혼란을 겪을 수 있는 시스템에서 명령을 테스트하십시오.

관련 정보