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 }}"