![Ansible은 stdout에서 값을 가져오고 변수가 정의된 임계값을 초과하면 실패합니다.](https://linux55.com/image/213446/Ansible%EC%9D%80%20stdout%EC%97%90%EC%84%9C%20%EA%B0%92%EC%9D%84%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B3%A0%20%EB%B3%80%EC%88%98%EA%B0%80%20%EC%A0%95%EC%9D%98%EB%90%9C%20%EC%9E%84%EA%B3%84%EA%B0%92%EC%9D%84%20%EC%B4%88%EA%B3%BC%ED%95%98%EB%A9%B4%20%EC%8B%A4%ED%8C%A8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
ansible
STDOUT 및 플레이북에서 row_count 값만 검색한 다음 row_count가 10보다 크면 실패하는 방법이 있습니까?
(행 수 > 10)
표준 출력:
temp_id,order_id,status,created_at
854556545610443,,order_success,2022-08-23 09:29:29
854556545610444,,order_success,2022-08-23 09:37:02
854556545610445,,order_success,2022-08-23 09:38:47
854556545610446,,order_success,2022-08-23 12:40:41
854556545610447,,order_success,2022-08-24 07:53:54
854556545610448,,order_success,2022-08-24 10:11:48
854556545610449,,order_success,2022-08-24 14:34:37
854556545610450,,order_success,2022-08-24 23:49:52
854556545611146,,order_success,2022-09-16 12:55:57
854556545611147,,order_success,2022-09-16 12:56:00
854556545611148,,order_success,2022-09-16 12:56:07
854556545611149,,order_success,2022-09-16 12:56:07
854556545611150,,order_success,2022-09-16 12:56:10
13 row(s) has been generated successfully.
행 수 = 13
답변1
가까운표준 출력속성으로 등록된 변수에도 속성이 있습니다.표준 출력 라인. 예를 들어(테스트를 위해 단순화됨)
out:
stdout_lines:
- line_01
- line_02
- line_03
- 3 row(s) has been generated successfully.
- row_count = 3
변수를 선언합니다. 마지막 행을 가져와 값을 분할합니다.
row_count: "{{ out.stdout_lines|last|split('=')|last|int }}"
주어진
row_count: '3'
테스트 행 수
- assert:
that: row_count|int < 3
fail_msg: "[ERR] More than 2 rows. row_count={{ row_count }}"
테스트를 위한 완전한 플레이북 예시
- hosts: localhost
vars:
out:
stdout_lines:
- line_01
- line_02
- line_03
- 3 row(s) has been generated successfully.
- row_count = 3
row_count: "{{ out.stdout_lines|last|split('=')|last|int }}"
tasks:
- debug:
var: row_count
- assert:
that: row_count|int < 3
fail_msg: "[ERR] More than 2 rows. row_count={{ row_count }}"