자동화 의사 결정 사용


Red Hat Ansible Automation Platform 2.5

이벤트 기반 Ansible 컨트롤러를 구성하고 사용하여 자동화를 강화 및 확장

Red Hat Customer Content Services

초록

인증 정보, 새 프로젝트, 의사 결정 환경, Ansible Automation Platform Controller에 인증할 토큰 및 룰북 활성화를 설정하기 위해 이벤트 기반 Ansible 컨트롤러를 구성하는 방법을 알아봅니다.

머리말

이벤트 기반 Ansible 컨트롤러는 IT 속도 및 민첩성을 개선하고 일관성과 탄력성을 활성화하여 자동화를 개선 및 확장할 수 있는 새로운 방법입니다. Red Hat에서 개발한 이 기능은 단순성과 유연성을 위해 설계되었습니다.

Red Hat 문서에 관한 피드백 제공

이 문서를 개선하기 위한 제안이 있거나 오류를 찾을 수 있는 경우 https://access.redhat.com 에서 기술 지원에 문의하여 요청을 열 수 있습니다.

1장. 이벤트 기반 Ansible 컨트롤러 개요

이벤트 기반 Ansible은 확장성이 뛰어나고 유연한 자동화 기능으로 다른 소프트웨어 벤더의 모니터링 툴과 같은 이벤트 소스와 함께 작동합니다. 이러한 툴은 IT 솔루션을 모니터링하고 이벤트를 식별하고 해당 이벤트를 처리하기 위한 룰북에서 문서화된 변경 사항 또는 응답을 자동으로 구현합니다.

다음 절차는 사용자 구성을 형성합니다.

참고
  • 이벤트 기반 Ansible 컨트롤러의 API 문서는 https:///api/eda/v1/docs에서 확인할 수 있습니다.
  • 고가용성 요구 사항을 충족하기 위해 이벤트 기반 Ansible 컨트롤러는 Ansible Automation Platform UI를 사용하여 중앙 집중식 Redis(REmote controlPlanectionary Server) 를 공유합니다. Redis를 사용할 수 없는 경우 프로젝트를 생성하거나 동기화하거나 룰북 활성화를 활성화할 수 없습니다.

2장. 인증 정보

인증 정보를 사용하여 의사 결정 환경, 룰북 활성화 및 이벤트 기반 Ansible 컨트롤러의 프로젝트 및 자동화 컨트롤러 프로젝트와 같은 리소스와 함께 인증에 사용할 수 있는 보안을 저장할 수 있습니다.

자격 증명은 시스템에 대해 작업을 시작하고 버전 제어 시스템에서 프로젝트 콘텐츠를 가져올 때 사용자를 인증합니다.

사용자 및 팀에 인증 정보를 사용자에게 노출하지 않고 이러한 인증 정보를 사용할 수 있는 기능을 부여할 수 있습니다. 사용자가 다른 팀으로 이동하거나 조직을 떠나는 경우 해당 인증 정보를 이전에 사용할 수 있었기 때문에 모든 시스템을 다시 입력할 필요가 없습니다.

참고

자동화 컨트롤러 및 이벤트 기반 Ansible 컨트롤러의 컨텍스트에서 extra_vars 와 인증 정보를 모두 사용하여 다양한 정보를 저장할 수 있습니다. 그러나 인증 정보는 더 나은 보안 및 중앙 집중식 관리를 제공하기 때문에 암호 또는 API 키와 같은 중요한 정보를 저장하는 데 선호되는 방법이지만 extra_vars 는 민감하지 않은 동적 데이터를 전달하는 데 더 적합합니다.

2.1. 인증 정보 목록 보기

Ansible Automation Platform에 로그인하고 자동화 의사 결정인프라자격 증명을 선택하면 인증 정보 페이지에 사전 로드된 의사 결정 환경 컨테이너 레지스트리 인증 정보가 있습니다. 고유한 인증 정보를 생성하면 이 목록 보기에 추가됩니다.

메뉴 모음에서 이름 검색 필드에서 인증 정보를 검색할 수 있습니다.

메뉴 표시줄에도 다음과 같은 옵션이 있습니다.

  • 열 관리 - 이 옵션을 클릭하여 목록 보기에 표시되는 필드를 선택할 수 있습니다. 필드를 정렬하는 방법은 다음 네 가지가 있습니다.

    • column - 테이블에 열을 표시합니다.
    • Description - 항목이 전체 너비 설명으로 확장될 때 열을 표시합니다.
    • 확장된 - 항목이 세부 사항으로 확장될 때 열을 표시합니다.Expanded - Shows the column when the item is expanded as a detail.
    • Hidden - 열을 종료합니다.
  • 목록 보기 또는 카드 보기 - 적용 가능한 아이콘을 클릭하여 이러한 보기 중에서 선택할 수 있습니다.

2.2. 인증 정보 설정

소스 플러그인 또는 선택한 개인 컨테이너 레지스트리와 함께 사용할 인증 정보를 생성할 수 있습니다. 팀 또는 개인이 자격 증명을 사용할 수 있도록 할 수 있습니다.

프로세스

  1. Ansible Automation Platform 대시보드에 로그인합니다.
  2. 탐색 패널에서 자동화 의사 결정인프라 인증정보를 선택합니다.
  3. 인증 정보 생성을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    설명
    이 필드는 선택 사항입니다.
    조직
    목록을 클릭하여 조직을 선택하거나 기본값 을 선택합니다.
    인증 정보 유형

    목록을 클릭하여 인증 정보 유형을 선택합니다.

    참고

    인증 정보 유형을 선택하면 선택한 인증 정보 유형에 적용할 수 있는 필드에 유형 세부 정보 섹션이 표시됩니다.

  5. 선택한 인증 정보 유형에 적용되는 필드를 작성합니다.
  6. 인증 정보 생성을 클릭합니다.

다음 단계

인증 정보를 저장하면 인증 정보 세부 정보 페이지가 표시됩니다. 인증 정보 목록 보기 또는 인증 정보 목록 뷰에서 편집하거나 삭제할 수 있습니다.

2.3. 인증 정보 편집

기존 인증 정보를 편집하여 조직에 대한 적절한 액세스 수준을 보장할 수 있습니다.

프로세스

  1. 다음 방법 중 하나를 사용하여 인증 정보를 편집합니다.

    • 인증 정보 목록 보기에서 원하는 인증 정보 옆에 있는 자격 증명 편집 아이콘을 클릭합니다.
    • 인증 정보 목록 뷰에서 인증 정보 이름을 선택하고 인증 정보 편집을 클릭합니다.
  2. 적절한 세부 정보를 편집하고 Save Credential 을 클릭합니다.

2.4. 인증 정보 중복

기존 인증 정보와 유사한 필드 입력을 사용하여 새 인증 정보를 설정할 때 세부 정보 탭에서 인증 정보 기능을 사용하여 수동으로 입력하는 대신 정보를 복제할 수 있습니다. 인증 정보를 설정하는 것은 긴 프로세스일 수 있지만 기존 인증 정보에서 필요한 필드를 복제하는 기능은 시간이 절약되고 경우에 따라 인적 오류 가능성을 줄일 수 있습니다.

프로세스

  1. 인증 정보 목록 페이지에서 복제할 인증 정보의 이름을 클릭합니다. 이렇게 하면 인증 정보의 세부 정보 탭으로 이동합니다.
  2. 세부 정보 탭의 오른쪽 상단에 있는 Duplicate 인증 정보를 클릭합니다.

    참고

    인증 정보 목록 페이지에서 원하는 인증 정보 옆에 있는 Duplicate 인증 정보 아이콘을 클릭할 수도 있습니다.

    선택한 인증 정보가 중복되었음을 확인하는 메시지가 표시됩니다: "<Name of credential> duplicated."

  3. Back to credentials 탭을 클릭하여 복제한 인증 정보를 확인합니다.

    중복된 인증 정보는 원래 인증 정보 뒤에 24시간 형식의 타임스탬프(예: < Name of credential> @ 17:26:30)로 표시됩니다.

  4. 중복된 인증 정보에 원하는 세부 정보를 편집합니다.
  5. Save Credential 을 클릭합니다.

2.5. 인증 정보 삭제

조직에 더 이상 필요하지 않은 경우 인증 정보를 삭제할 수 있습니다.

프로세스

  1. 다음 방법 중 하나를 사용하여 인증 정보를 삭제합니다.

    • 인증 정보 목록 보기에서 원하는 인증 정보 옆에 있는 More Actions (추가 작업) 아이콘을 클릭하고 Delete credential 을 클릭합니다.
    • 인증 정보 목록 뷰에서 인증 정보의 이름을 선택하고 Edit Credential (자격 증명 편집) 옆에 있는 More Actions (추가 작업) 아이콘을 클릭하고 자격 증명 삭제 를 클릭합니다.
  2. 팝업 창에서 Yes를 선택하고 이 인증 정보를 삭제하고 싶습니다.

    참고

    조직의 다른 리소스에서 인증 정보를 계속 사용하는 경우 인증 정보를 삭제할 수 없음을 알리는 경고 메시지가 표시됩니다. 또한 이벤트 스트림에서 인증 정보를 사용하는 경우 이벤트 스트림을 삭제하거나 다른 인증 정보에 연결할 때까지 삭제할 수 없습니다. 일반적으로 손상된 활성화로 이어질 수 있으므로 사용 중인 인증 정보를 삭제하지 마십시오.

  3. 인증 정보 삭제를 클릭합니다.

결과

각 인증 정보 옆에 있는 확인란을 선택하고 메뉴 모음에서 More Actions 아이콘을 클릭한 다음 선택한 인증 정보 삭제를 클릭하여 한 번에 여러 인증 정보를 삭제할 수 있습니다.

3장. 인증 정보 유형

이벤트 기반 Ansible 컨트롤러에는 프로젝트 동기화, 룰북 활성화 실행, 자동화 실행(자동화 컨트롤러)을 통해 작업 템플릿 실행, 컨테이너 레지스트리에서 이미지 가져오기, 이벤트 스트림을 통해 데이터를 처리하는 데 사용할 수 있는 몇 가지 기본 제공 자격 증명 유형이 포함되어 있습니다.

이러한 기본 제공 인증 정보 유형은 편집할 수 없습니다. 따라서 다른 시스템에서 인증을 지원하는 인증 정보 유형을 사용하려면 소스 플러그인에서 사용할 수 있는 고유한 인증 정보 유형을 생성할 수 있습니다. 각 인증 정보 유형에는 소스를 구성하기 위해 Ansible 룰북에 전달할 수 있는 입력 구성과 인젝터 구성이 포함되어 있습니다.

자세한 내용은 사용자 정의 인증 정보 유형을 참조하십시오.

3.1. 사용자 정의 인증 정보 유형

시스템 관리자는 YAML 또는 JSON과 같은 정의를 사용하여 표준 형식으로 기존 인증 정보 유형과 유사한 방식으로 작동하는 사용자 정의 인증 정보 유형을 정의할 수 있습니다.

각 인증 정보 유형은 해당하는 경우 Input ConfigurationInjector Configuration 필드에 고유한 구성을 표시합니다. YAML 및 JSON 형식 모두 구성 필드에서 지원됩니다.

사용자 지정 자격 증명은 인증 정보를 삽입하는 수단으로 Ansible 추가 변수를 지원합니다.

하나 이상의 클라우드, 자격 증명 모음 및 Red Hat Ansible Automation Platform 인증 정보 유형을 룰북 활성화에 연결할 수 있습니다.

참고
  • 새 인증 정보 유형을 생성할 때 extra_vars 에서 충돌을 방지해야 합니다.
  • 추가 변수 이름은 예약되어 있으므로 EDA_ 로 시작하지 않아야 합니다.
  • 인증 정보 유형을 생성하고 편집하고 Injector 구성 필드를 보려면 시스템 관리자(슈퍼유저) 권한이 있어야 합니다.

자체 인증 정보 유형을 사용자 지정할 때 기본 제공 인증 정보 유형 목록과 함께 인증 정보 유형 페이지에 표시됩니다.

3.1.1. 입력 설정

입력 구성에는 다음 두 가지 속성이 있습니다.

  • 필드 - 인증 정보 유형의 속성 컬렉션입니다.
  • 필수 - 필수 필드 목록입니다.

선택한 인증 정보 유형에 따라 필드에 여러 속성이 있을 수 있습니다.

Expand
표 3.1. 입력 구성 필드 속성
필드설명필수 (Y/N)

id

필드의 고유 ID입니다. 문자열 유형이어야 하며 변수 이름을 저장합니다.

제공됨

type

문자열 또는 부울 유형일 수 있습니다.

아니요, 기본값은 string입니다.

label

UI 요소를 렌더링할 때 UI에서 사용

제공됨

Secret

암호화됨

아니요, 기본 false

여러 줄

필드에 파일의 데이터가 포함된 경우 여러 행을 True로 설정할 수 있습니다.

아니요, 기본 false

help_text

이 필드와 연결된 도움말 텍스트

없음

3.1.2. 인젝터 구성

Injector 구성을 사용하여 입력 구성 필드에서 정보를 추출하고 룰북 활성화를 실행할 때 ansible-rulebook으로 보낼 수 있는 인젝터 유형에 매핑할 수 있습니다. 이벤트 기반 Ansible은 다음과 같은 유형의 인젝터를 지원합니다.

  • 환경 변수(env) - 기본 패키지 또는 공유 라이브러리의 소스 플러그인에 사용됩니다.
  • Ansible 추가 변수(extra_vars) - 룰북 조건, 작업 또는 소스 플러그인 매개변수의 대체에 사용됩니다.
  • 파일 기반 템플릿(file) - 인증서 및 키와 같은 인증 정보 입력에서 파일 내용을 생성하는 데 사용되며 소스 플러그인에 필요할 수 있습니다. 파일 인젝터는 의사 결정 환경에 저장하지 않고도 런타임 시 이러한 인증서와 키를 ansible-rulebook에 전달하는 방법을 제공합니다. 결과적으로 ansible-rulebook은 임시 파일을 생성하고 파일 이름에 eda.filename 변수를 사용하여 액세스할 수 있습니다. 이 변수는 파일이 생성된 후 자동으로 생성됩니다(예: "{{eda.filename.my_cert}}").
중요

룰북 활성화 및 인증 정보 유형 인젝터에 extra_vars 를 생성할 때 eda 또는 ansible 을 내부 사용과 충돌하여 룰북 활성화 및 인증 정보 유형 생성에서 실패할 수 있으므로 eda 또는 ansible을 키 이름으로 사용하지 않도록 합니다.

인젝터를 사용하면 위에서 언급한 인젝터 유형 중 하나로 룰북에 삽입할 수 있도록 필드를 조정할 수 있으며, 최상위 수준에 중복 키가 있을 수 없습니다. 룰북에 사용자 이름 및 암호와 같은 매개변수가 필요한 두 개의 소스가 있는 경우 인젝터는 룰북과 함께 각 소스에 대한 인수를 조정하는 데 도움이 됩니다.

샘플 인젝터 및 입력을 보려면 다음 GitHub gists를 각각 참조하십시오.

3.2. 새 인증 정보 유형 생성

지원되는 기본 인증 정보 유형에 따라 선택한 소스 플러그인과 함께 사용할 인증 정보 유형을 생성할 수 있습니다. 팀 또는 개인이 인증 정보 유형을 사용할 수 있도록 할 수 있습니다.

프로세스

  1. Ansible Automation Platform 대시보드에 로그인합니다.
  2. 탐색 패널에서 자동화 의사 결정인프라 인증 정보유형을 선택합니다.
  3. 인증 정보 유형 생성 을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    설명
    이 필드는 선택 사항입니다.
  5. 입력 구성 필드에서 해당 유형에 대해 정렬된 필드 집합을 정의하는 입력 스키마를 지정합니다. 형식은 YAML 또는 JSON일 수 있습니다.

    YAML

    fields:
      - type: string
        id: username
        label: Username
      - type: string
        id: password
        label: Password
        secret: true
    required:
      - username
      - password

    YAML 페이지에서 더 많은 YAML 예제를 확인합니다.

    JSON

    {
    "fields": [
      {
      "type": "string",
      "id": "username",
      "label": "Username"
      },
      {
      "secret": true,
      "type": "string",
      "id": "password",
      "label": "Password"
       }
      ],
     "required": ["username", "password"]
    }

    JSON 웹 사이트에서 더 많은 JSON 예제를 확인하십시오.

  6. Injector Configuration 필드에 인증 정보 유형에서 삽입할 수 있는 값을 지정하는 환경 변수 또는 추가 변수를 입력합니다. 형식은 YAML 또는 JSON일 수 있습니다(이전 단계의 예제 참조).

    JSON 형식의 다음 구성은 각 필드와 사용 방법을 보여줍니다.

    {
        "extra_vars": {
          "some_extra_var": "{{ username }}:{{ password }}"
      }
    }
  7. 인증 정보 유형 생성 을 클릭합니다.

    새로 생성된 인증 정보 유형이 인증 정보 유형 목록에 표시됩니다.

  8. 인증 정보 유형 Edit 아이콘을 클릭하여 인증 정보 유형 옵션을 수정합니다.

검증

  • 새 인증 정보를 생성할 때 자격 증명 유형 목록에서 새로 생성된 인증 정보 유형을 선택할 수 있는지 확인합니다.

다음 단계

  • 편집 페이지에서 세부 정보를 수정하거나 인증 정보를 삭제할 수 있습니다.
  • Delete 옵션이 비활성화된 경우 인증 정보에서 인증 정보 유형을 사용하고, 삭제하기 전에 해당 인증 정보를 사용하는 모든 인증 정보에서 인증 정보 유형을 삭제해야 합니다.

추가 리소스

인증 정보 설정.

4장. 프로젝트

프로젝트는 룰북의 논리 컬렉션입니다. Git 리포지토리여야 하며 Ansible 컬렉션의 이벤트 기반 Ansible 콘텐츠에 대해 정의된 경로( /extensions/eda/rulebooks )에 있어야 합니다.

중요

고가용성 요구 사항을 충족하기 위해 이벤트 기반 Ansible 컨트롤러는 Ansible Automation Platform UI를 사용하여 중앙 집중식 Redis(REmote controlPlanectionary Server) 를 공유합니다. Redis를 사용할 수 없는 경우 프로젝트를 생성하거나 동기화할 수 없습니다.

4.1. 새 프로젝트 만들기

룰북을 관리하고 이벤트 기반 Ansible 컨트롤러에서 저장할 프로젝트를 설정할 수 있습니다.

사전 요구 사항

  • Ansible Automation Platform 대시보드에 콘텐츠 소비자로 로그인되어 있습니다.
  • 필요한 경우 인증 정보를 설정했습니다. 자세한 내용은 인증 정보 설정 [인증정보 설정] 섹션을 참조하십시오.
  • 룰북이 포함된 기존 리포지토리가 있습니다.

프로세스

  1. Ansible Automation Platform 대시보드에 로그인합니다.
  2. 자동화 의사 결정 프로젝트로이동합니다.
  3. 프로젝트 생성을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    프로젝트 이름을 입력합니다.
    설명
    이 필드는 선택 사항입니다.
    소스 제어 유형
    Git은 사용할 수 있는 유일한 소스 제어 유형입니다. 이 필드는 선택 사항입니다.
    소스 제어 URL

    GitHub 또는 GitLab과 같은 리포지토리의 Git, SSH 또는 HTTP[S] 프로토콜 주소를 입력합니다. 이 필수 필드는 편집할 수 있습니다. 이 필드 편집에 대한 세부 정보를 보려면 프로젝트 편집을 참조하십시오.

    참고

    이 필드는 SSH 개인 키 또는 개인 키 문구를 허용합니다. 이러한 개인 키 사용을 활성화하려면 프로젝트 URL을 git@ 로 시작해야 합니다.

    프록시
    HTTP 또는 HTTPS 서버에 액세스하는 데 사용됩니다. 이 필드는 선택 사항이며 편집할 수 있습니다. 이 필드 편집에 대한 세부 정보를 보려면 프로젝트 편집을 참조하십시오.
    소스 제어 분기/태그/커밋
    이 분기는 체크아웃할 분기입니다. 분기 외에도 태그, 커밋 해시 및 임의의 ref를 입력할 수 있습니다. 사용자 정의 refspec도 제공하지 않는 한 일부 커밋 해시 및 참조는 사용할 수 없습니다. 이 필드는 선택 사항이며 편집할 수 있습니다. 이 필드 편집에 대한 세부 정보를 보려면 프로젝트 편집을 참조하십시오.
    소스 제어 참조 사양
    가져올 참조 사양입니다(Ansible git 모듈에 전달됨). 이 매개변수를 사용하면 분기 필드를 통해 사용할 수 없는 참조에 액세스할 수 있습니다. 이 필드는 선택 사항이며 편집할 수 있습니다. 이 필드 편집에 대한 세부 정보를 보려면 프로젝트 편집을 참조하십시오. 자세한 내용은 예제를 참조하십시오.
    소스 제어 인증 정보
    제공된 소스 제어 URL로 인증하는 데 사용되는 선택적 인증 정보입니다.
    콘텐츠 서명 검증 인증 정보
    프로젝트를 동기화할 때 콘텐츠가 안전한 상태로 유지되었는지 확인하려면 콘텐츠 서명을 활성화합니다. 콘텐츠가 변조된 경우 작업이 실행되지 않습니다. 이 필드는 선택 사항입니다.
    옵션

    Verify SSL 옵션은 기본적으로 활성화되어 있습니다. 이 옵션을 활성화하면 프로젝트를 가져올 때 HTTPS를 사용하여 SSL을 확인합니다.

    참고

    자체 서명된 인증서를 사용하는 로컬 리포지토리가 있는 경우 이 옵션을 비활성화할 수 있습니다.

  5. 프로젝트 생성을 선택합니다.

결과

이제 프로젝트가 생성되고 프로젝트 페이지에서 관리할 수 있습니다.

새 프로젝트를 저장하면 프로젝트의 세부 정보 페이지가 표시됩니다. 프로젝트 목록 보기 또는 프로젝트 목록 보기에서 편집하거나 삭제할 수 있습니다.

4.2. 프로젝트 목록 보기

프로젝트 페이지에서 StatusGit 해시 와 함께 생성한 프로젝트를 볼 수 있습니다.

참고

룰북이 소스 제어에서 변경되는 경우 프로젝트 목록 보기에서 프로젝트 옆에 있는 동기화 아이콘을 선택하여 프로젝트를 다시 동기화할 수 있습니다. Git 해시 업데이트는 해당 리포지토리의 최신 커밋을 나타냅니다. 업데이트된 프로젝트를 사용하려면 활성화를 다시 시작하거나 다시 생성해야 합니다.

4.3. 프로젝트 편집

프로젝트를 생성한 후 프로젝트의 다양한 측면을 수정할 수 있습니다. 변경 사항에 따라 룰북 활성화가 영향을 받을 수 있으므로 검토하고 다시 시작해야 합니다.

프로세스

  1. 프로젝트 목록 보기에서 원하는 프로젝트 옆에 있는 More Actions 아이콘을 선택합니다. 편집 페이지가 표시됩니다.
  2. 원하는 필드를 편집합니다.

    중요

    프로젝트의 소스 제어 URL, 소스 제어 분기/태그/커밋 또는 소스 제어 참조 사양 을 업데이트하면 이벤트 기반 Ansible에서 프로젝트 재동기화가 자동으로 트리거됩니다. 이 프로세스는 이벤트 기반 Ansible 컨트롤러 내에서 사용 가능한 룰북을 업데이트하고 기존 룰북 활성화에 상당한 영향을 미칠 수 있습니다.

    • 룰북 콘텐츠 업데이트: 룰북의 콘텐츠가 변경될 때 이전 콘텐츠를 계속 사용합니다. 최신 콘텐츠를 적용하려면 영향을 받는 룰북 활성화를 다시 시작해야 합니다. 업데이트하는 룰북 콘텐츠가 이벤트 스트림을 사용하는 활성화에 연결된 경우 업데이트가 적용된 후 이벤트 스트림을 해당 활성화에 다시 연결해야 합니다.
    • 새 규칙 : 리포지토리에 추가된 모든 새 룰북은 동기화 후 데이터베이스에서 사용할 수 있습니다.
    • 삭제된 규칙북: 동기화 시 데이터베이스에서 제거된 룰북이 삭제됩니다. 그러나 연결된 활성화는 계속 실행되며 다시 시작할 수 있습니다. 소스 룰북에서 분리된 모든 활성화를 검토하고 업데이트합니다.
  3. 프로젝트 저장을 선택합니다.

4.4. 프로젝트 삭제

프로젝트를 삭제해야 하는 경우 이벤트 기반 Ansible 컨트롤러 인터페이스에서 여러 옵션을 제공합니다.

프로세스

  1. 프로젝트를 삭제하려면 다음 중 하나를 완료합니다.

    • 프로젝트 목록 뷰에서 원하는 프로젝트 옆에 있는 확인란을 선택하고 페이지 메뉴에서 More Actions (추가 작업) 아이콘을 클릭합니다.
    • 프로젝트 목록 보기에서 원하는 프로젝트 옆에 있는 More Actions 아이콘을 클릭합니다.
  2. 프로젝트 삭제를 선택합니다.
  3. Permanently delete projects 창에서 Yes, I want to delete this project 를 선택합니다.
  4. 프로젝트 삭제를 선택합니다.

5장. 의사 결정 환경

의사 결정 환경은 Ansible 룰북을 실행하는 컨테이너 이미지입니다. 자동화 종속 항목을 전달하는 공통 언어를 생성하고 자동화 환경을 빌드하고 배포하는 표준 방법을 제공합니다. Ansible-Rulebook 에서 기본 의사 결정 환경을 찾을 수 있습니다.

자체 의사 결정 환경을 생성하려면 Ansible Automation Platform 내에서 이벤트 기반 Ansible을 위한 ansible-builder 설치 및 사용자 정의 의사 결정 환경 빌드 를 참조하십시오.

5.1. ansible-builder 설치

이미지를 빌드하려면 ansible-builder Python 패키지와 함께 Podman 또는 Docker가 설치되어 있어야 합니다.

--container-runtime 옵션은 사용하려는 Podman 또는 Docker 실행 파일에 해당해야 합니다.

의사 결정 환경 이미지를 빌드할 때 Ansible Automation Platform이 배포되는 아키텍처를 지원해야 합니다.

자세한 내용은 Ansible Builder 빠른 시작 또는 실행 환경 생성 및 사용을 참조하십시오.

5.2. 이벤트 기반 Ansible을 위한 사용자 정의 의사 결정 환경 빌드

의사 결정 환경은 Ansible 규칙북 실행을 위한 실행 환경입니다.

자동화 컨트롤러에 Ansible 플레이북을 실행하는 실행 환경과 유사하게 의사 결정 환경은 이벤트 기반 Ansible 컨트롤러용 룰북을 실행하도록 설계되었습니다.

기본 의사 결정 환경에서 사용할 수 없는 사용자 지정 유지 관리 또는 타사 이벤트 소스 플러그인을 제공하는 이벤트 기반 Ansible에 대한 사용자 정의 의사 결정 환경을 생성할 수 있습니다.

사전 요구 사항

  • Ansible Automation Platform > = 2.5
  • 이벤트 기반 Ansible
  • Ansible Builder > = 3.0
중요
  • Ansible Automation Platform에서 올바른 이벤트 기반 Ansible 컨트롤러 의사 결정 환경을 사용하여 룰북 활성화 실패를 방지합니다.

    • 이벤트 기반 Ansible 컨트롤러를 Ansible Automation Platform 2.4에 연결하려면 registry.redhat.io/ansible-automation-platform-24/de-minimal-rhel9:latest를 사용해야 합니다.
    • 이벤트 기반 Ansible 컨트롤러를 Ansible Automation Platform 2.5에 연결하려면 registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest를 사용해야 합니다.

프로세스

다음은 de-minimal 을 기본 이미지로 사용하여 ansible.eda 컬렉션을 사용하여 사용자 정의 의사 결정 환경을 빌드하는 Ansible 빌더 정의 파일의 예입니다.

version: 3

images:
  base_image:
    name: 'registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest'

dependencies:
  galaxy:
    collections:
      - ansible.eda
  python_interpreter:
    package_system: "python39"

options:
  package_manager_path: /usr/bin/microdnf

또한 다른 Python 패키지 또는 RPM이 필요한 경우 단일 정의 파일에 다음을 추가할 수 있습니다.

version: 3

images:
  base_image:
    name: 'registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest'

dependencies:
  galaxy:
    collections:
      - ansible.eda
  python:
    - six
    - psutil
  system:
    - iputils [platform:rpm]
  python_interpreter:
    package_system: "python39"

options:
  package_manager_path: /usr/bin/microdnf

5.3. 새 의사 결정 환경 설정

기본 또는 사용자 지정 의사 결정 환경을 사용하여 의사 결정 환경을 이벤트 기반 Ansible 컨트롤러로 가져올 수 있습니다.

사전 요구 사항

  • 필요한 경우 인증 정보를 설정했습니다. 자세한 내용은 인증 정보 설정 섹션을 참조하십시오.
  • 의사 결정 환경 이미지를 이미지 리포지토리로 내보내거나 registry.redhat.io 에 있는 de-minimal 이미지를 사용하도록 선택했습니다.

프로세스

  1. Ansible Automation Platform에 로그인합니다.
  2. 자동화 의사 결정환경으로 이동합니다.
  3. 의사 결정 환경 생성 을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    설명
    이 필드는 선택 사항입니다.
    조직
    의사 결정 환경과 연결할 조직을 선택합니다.
    이미지
    컨테이너 레지스트리, 이미지 이름, 버전 태그를 포함한 전체 이미지 위치입니다.
    인증 정보
    이 필드는 선택 사항입니다. 이는 의사 결정 환경 이미지를 사용하는 데 필요한 인증 정보입니다.
  5. 의사 결정 환경 생성 을 선택합니다.

결과

이제 의사 결정 환경이 생성되고 의사 결정 환경 페이지에서 관리할 수 있습니다.

새 의사 결정 환경을 저장하면 의사 결정 환경의 세부 정보 페이지가 표시됩니다. 의사 결정 환경 목록 보기에서 편집 또는 삭제할 수 있습니다.

6장. Red Hat Ansible Automation Platform 인증 정보

이벤트 기반 Ansible 컨트롤러가 Ansible Automation Platform 2.5에 배포되면 Red Hat Ansible Automation Platform 인증 정보를 생성하여 자동화 컨트롤러 URL과 사용자 이름 및 암호를 사용하여 자동화 컨트롤러에 연결할 수 있습니다. 생성된 후에는 Red Hat Ansible Automation Platform 인증 정보를 룰북에 연결하여 룰북 활성화를 실행하는 데 사용할 수 있습니다. 이러한 인증 정보는 자동화 컨트롤러와 이벤트 기반 Ansible 컨트롤러 간의 통신을 구성하는 간단한 방법을 제공하여 룰북 활성화를 활성화하여 작업 템플릿을 시작할 수 있습니다.

참고

Ansible Automation Platform 2.4를 사용하여 이벤트 기반 Ansible 컨트롤러를 배포한 경우 컨트롤러 토큰을 사용하여 자동화 컨트롤러 및 이벤트 기반 Ansible 컨트롤러를 연결했습니다. 이러한 컨트롤러 토큰은 Ansible Automation Platform 2.5에서 더 이상 사용되지 않습니다. 더 이상 사용되지 않는 컨트롤러 토큰 및 룰북 활성화를 삭제하려면 Red Hat Ansible Automation Platform 인증 정보 설정을 진행하기 전에 Ansible Automation Platform 2.5에서 컨트롤러 토큰 교체 부터 시작하여 다음 절차를 완료합니다.

6.1. Red Hat Ansible Automation Platform 2.5에서 컨트롤러 토큰 교체

Red Hat Ansible Automation Platform 2.5에서 이벤트 기반 Ansible 컨트롤러를 사용하려면 컨트롤러 토큰이 더 이상 사용되지 않기 때문에 환경에 구성된 기존 컨트롤러 토큰을 Red Hat Ansible Automation Platform 인증 정보로 교체해야 합니다.

6.1.1. 컨트롤러 토큰을 사용하여 룰북 활성화 삭제

컨트롤러 토큰을 교체하려면 연결된 룰북 활성화를 삭제해야 합니다.

프로세스

  1. Ansible Automation Platform 대시보드에 로그인합니다.
  2. 상단 탐색 패널에서 자동화 의사 결정 규칙북 활성화를 선택합니다.
  3. 컨트롤러 토큰이 있는 룰북 활성화를 선택합니다.
  4. Rulebook Activation enabled/disabled 토글 옆에 있는 More Actions 아이콘을 선택합니다.
  5. 룰북 활성화 삭제를 선택합니다.
  6. 창에서 Yes, I confirm that I want to delete these X rulebook activations 를 선택합니다.
  7. 룰북 활성화 삭제를 선택합니다.

6.1.2. 컨트롤러 토큰 삭제

Red Hat Ansible Automation Platform 인증 정보를 설정하려면 먼저 기존 컨트롤러 토큰을 삭제해야 합니다.

사전 요구 사항

  • 컨트롤러 토큰을 사용하는 모든 룰북 활성화를 삭제했습니다.

프로세스

  1. Ansible Automation Platform 대시보드에 로그인합니다.
  2. 상단 탐색 패널에서 프로필을 선택합니다.
  3. 사용자 세부 정보를 클릭합니다.
  4. 토큰 탭을 선택합니다.
  5. 이전 컨트롤러 토큰을 모두 삭제합니다.

다음 단계

컨트롤러 토큰 및 룰북 활성화를 삭제한 후 Red Hat Ansible Automation Platform 인증 정보 설정을 진행합니다.

6.2. Red Hat Ansible Automation Platform 인증 정보 설정

자동화 컨트롤러 URL과 사용자 이름 및 암호를 사용하여 자동화 컨트롤러에 연결할 Red Hat Ansible Automation Platform 인증 정보를 생성합니다.

사전 요구 사항

  • 사용자를 생성했습니다.
  • 자동화 컨트롤러에 액세스하기 위한 URL과 인증 정보를 가져왔습니다.

프로세스

  1. Ansible Automation Platform 대시보드에 로그인합니다.
  2. 탐색 패널에서 자동화 의사 결정인프라 인증정보를 선택합니다.
  3. 인증 정보 생성을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    설명
    이 필드는 선택 사항입니다.
    조직
    목록을 클릭하여 조직을 선택하거나 기본값 을 선택합니다.
    인증 정보 유형

    목록을 클릭하고 Red Hat Ansible Automation Platform 을 선택합니다.

    참고

    인증 정보 유형을 선택하면 선택한 인증 정보 유형에 적용할 수 있는 필드에 유형 세부 정보 섹션이 표시됩니다.

    주의

    백업 및 복원 작업을 사용하여 Ansible Automation Platform 인스턴스를 다른 클러스터 또는 새 호스트 이름 세트로 마이그레이션하려는 경우 Red Hat Ansible Automation Platform 인증 정보가 손상되고 룰북 활성화가 실패합니다. 연결을 복원하려면 복원 작업이 완료된 후 자동화 컨트롤러 URL 및 관련 인증 정보를 수동으로 편집하고 업데이트해야 합니다.

  5. 필요한 Red Hat Ansible Automation Platform 필드에 자동화 컨트롤러 URL을 입력합니다.

    참고

    자동화 컨트롤러 2.4가 있는 이벤트 기반 Ansible 컨트롤러 2.5의 경우 다음 예제를 사용하십시오. https://<your_controller_host>

    Ansible Automation Platform 2.5의 경우 다음 예제를 사용하십시오. https://<your_gateway_host>/api/controller/

  6. 유효한 사용자 이름암호 또는 Oauth 토큰 을 입력합니다.
  7. 인증 정보 생성을 클릭합니다.

다음 단계

이 인증 정보를 생성한 후 룰북 활성화를 구성하는 데 사용할 수 있습니다.

7장. 룰북 활성화

룰북은 이벤트 중심 자동화 모델에서 IT 작업을 수행하는 데 사용하는 일련의 조건부 규칙입니다. 룰북은 이벤트 기반 Ansible에 이벤트 확인을 위한 소스와 특정 조건이 충족될 때 해당 이벤트가 발생하는 경우를 알려주는 수단입니다.

룰북은 규칙이 트리거될 때 수행할 작업을 지정합니다. 이벤트가 규칙에 대한 조건과 일치하면 규칙이 트리거됩니다. 현재 지원되는 작업은 다음과 같습니다.

  • run_playbook ( ansible-rulebook CLI에서만 지원)
  • run_module
  • run_job_template
  • run_workflow_template
  • set_fact
  • post_event
  • retract_fact
  • print_event
  • shutdown
  • debug
  • none

자세한 내용은 작업을 참조하십시오.

룰북 활성화는 특정 룰북을 실행하는 의사 결정 환경에 의해 정의된 백그라운드에서 실행되는 프로세스입니다. 룰북 활성화 설정에 따라 룰북 활성화를 설정할 수 있습니다. https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-rulebook-activations#eda-set-up-rulebook-activation

주의

Red Hat은 하나의 postgres 데이터베이스가 있는 지원되지 않는 소스 플러그인을 사용하지 않는 것이 좋습니다. 이는 Ansible Automation Platform 사용에 잠재적인 위험을 초래할 수 있습니다.

중요

고가용성 요구 사항을 충족하기 위해 이벤트 기반 Ansible 컨트롤러는 Ansible Automation Platform UI를 사용하여 중앙 집중식 Redis(REmote controlPlanectionary Server) 를 공유합니다. Redis를 사용할 수 없는 경우 다음 기능을 사용할 수 없습니다.

  • 활성화를 만드는 경우, if is_enabled is True
  • 활성화 삭제
  • 활성화되지 않은 경우 활성화 활성화
  • 아직 비활성화되지 않은 경우 활성화 비활성화
  • 활성화 다시 시작

7.1. 지원되는 이벤트 소스

이벤트 소스는 룰북이 이벤트를 수신할 수 있는 위치를 결정하기 때문에 이벤트 기반 Ansible의 기본 구성 요소입니다. 룰북 활성화의 효율성은 자동화 환경과 호환되는 이벤트 소스를 선택하는 데 따라 다릅니다. 특정 이벤트 소스는 웹 기반 이벤트 기반 Ansible 컨트롤러와 함께 사용하도록 설계되었으며, 로컬 호스트 기능에 대한 의존 때문에 다른 이벤트 소스는 ansible-rulebook 명령줄 인터페이스(CLI)에만 사용할 수 있습니다. 이러한 차이점을 이해하는 것은 성공적인 룰북 활성화에 중요합니다.

다음 목록에는 웹 기반 이벤트 기반 Ansible 컨트롤러와 함께 사용할 현재 지원되는 이벤트 소스가 포함되어 있습니다. 룰북 활성화에 원하는 결과를 제공하는 이벤트 소스를 결정할 수 있습니다.

  • alertmanager
  • aws_cloudtrail
  • aws_sqs_queue
  • azure_service_bus
  • kafka
  • pg_listener
  • Webhook

7.2. 룰북 활성화 설정

Ansible Automation Platform 대시보드 내에서 룰북 활성화를 생성하고 구성할 수 있습니다. 이 프로세스를 통해 이벤트 중심 자동화의 효과적인 관리 및 배포를 수행할 수 있습니다.

사전 요구 사항

  • Ansible Automation Platform 대시보드에 콘텐츠 소비자로 로그인되어 있습니다.
  • 프로젝트를 설정했습니다.
  • 의사 결정 환경을 설정했습니다.

프로세스

  1. Ansible Automation Platform에 로그인합니다.
  2. 자동화 의사 결정 규칙활성화 로 이동합니다.
  3. 룰북 활성화 생성을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    설명
    이 필드는 선택 사항입니다.
    조직
    조직 이름을 입력하거나 목록에서 Default를 선택합니다.
    프로젝트
    프로젝트는 룰북의 논리 컬렉션입니다. 이 필드는 선택 사항입니다.
    룰북
    룰북은 선택한 프로젝트에 따라 표시됩니다.
    인증 정보

    이 룰북 활성화에 대해 0개 이상의 인증 정보를 선택합니다. 이 필드는 선택 사항입니다.

    참고
    의사 결정 환경

    의사 결정 환경은 Ansible 룰북을 실행하는 컨테이너 이미지입니다.

    참고

    이벤트 기반 Ansible 컨트롤러에서는 의사 결정 환경의 가져오기 정책을 사용자 지정할 수 없습니다. 기본적으로 always 정책의 동작을 따릅니다. 활성화가 시작될 때마다 시스템은 최신 버전의 이미지를 가져오려고 합니다.

    재시작 정책

    소스 플러그인을 실행하는 컨테이너 프로세스가 종료된 후 활성화를 다시 시작하는 방법을 결정하는 정책입니다.

    • 정책:

      1. 항상: 성공적으로 종료되었는지 여부에 관계없이 룰북 활성화를 즉시 재시작하고 5회 이상 발생하지 않습니다.
      2. Never: 컨테이너 프로세스가 종료될 때 룰북 활성화를 재시작하지 않습니다.
      3. 실패 시: 컨테이너 프로세스가 실패한 경우에만 기본적으로 60초 후에 룰북 활성화를 재시작하고 5 번 이상 발생하지 않습니다.
    로그 수준

    이 필드는 기록된 이벤트의 심각도 및 콘텐츠 유형을 정의합니다.

    • 수준:

      1. 오류: 활성화의 기록 탭에 표시되는 오류 메시지가 포함된 로그입니다.
      2. info: 성공 또는 실패, 트리거된 작업 이름 및 관련 작업 이벤트 및 오류와 같은 룰북 활성화에 대한 유용한 정보가 포함된 로그입니다.
      3. debug 단계에서만 유용하고 프로덕션 중에 값이 거의 없을 수 있는 정보가 포함된 로그입니다. 이 로그 수준에는 오류 및 로그 수준 데이터가 모두 포함됩니다.
    서비스 이름
    이는 활성화가 포트를 노출하는 경우 인바운드 연결을 구성하기 위해 Kubernetes의 서비스 이름을 정의합니다. 이 필드는 선택 사항입니다.
    룰북 활성화가 활성화됩니까?
    이렇게 하면 룰북 활성화가 자동으로 활성화됩니다.
    변수

    룰북의 변수는 JSON 또는 YAML 형식입니다. 콘텐츠는 ansible-rulebook 명령의 --vars 플래그를 통해 전달되는 파일과 동일합니다.

    참고

    자동화 컨트롤러 및 이벤트 기반 Ansible 컨트롤러의 컨텍스트에서 extra_vars 와 인증 정보를 모두 사용하여 다양한 정보를 저장할 수 있습니다. 그러나 인증 정보는 더 나은 보안 및 중앙 집중식 관리를 제공하기 때문에 암호 또는 API 키와 같은 중요한 정보를 저장하는 데 선호되는 방법이지만 extra_vars 는 민감하지 않은 동적 데이터를 전달하는 데 더 적합합니다.

    옵션
    규칙 감사에서 이벤트를 표시하지 않으려면 Skip audit events 옵션을 선택합니다.
  5. 룰북 활성화 생성을 클릭합니다.

결과

이제 룰북 활성화가 생성되고 규칙북 활성화 페이지에서 관리할 수 있습니다.

새 룰북 활성화를 저장하면 룰북 활성화의 세부 정보 페이지가 Pending, Running 또는 Failed 상태가 표시됩니다. 규칙북 활성화 목록 보기에서 다시 시작하거나 삭제할 수 있습니다.

참고

경우에 따라 소스 플러그인이 종료되면 일정 시간 후에 룰북이 정상적으로 종료됩니다. 룰북 활성화가 종료되면 수행 대기 중인 작업이 취소되고 정보 수준 메시지가 활성화 로그로 전송됩니다. 자세한 내용은 규칙북 참조하십시오.

7.3. 룰북 활성화 목록 보기

규칙북 활성화 페이지에서 상태, 룰북 을 사용한 규칙 수, 불 수 및 다시 시작 카운트 와 함께 생성한 룰북 활성화를 볼 수 있습니다.

StatusRunning 이면 룰북 활성화가 백그라운드에서 실행 중이고 룰북에 선언된 규칙에 따라 필요한 작업을 실행합니다.

규칙북 활성화 목록 보기에서 활성화를 선택하여 자세한 정보를 볼 수 있습니다.

실행된 모든 활성화의 경우 세부 정보기록 탭을 보고 발생한 사항에 대한 자세한 정보를 얻을 수 있습니다.

7.3.1. 활성화 출력 보기

활성화의 출력은 기록 탭에서 볼 수 있습니다.

프로세스

  1. 내역 탭을 선택하여 모든 활성화 인스턴스 목록에 액세스합니다. 활성화 인스턴스는 활성화의 단일 실행을 나타냅니다.
  2. 그런 다음 보려는 활성화 인스턴스를 선택합니다. 활성화 인스턴스의 출력이 표시됩니다.

다음 단계

작업이 발생하여 트리거된 이벤트를 보려면 자동화 의사 결정규칙 감사 로 이동하여 규칙 감사 섹션의 지침을 따릅니다.

7.4. 룰북 활성화 및 비활성화

룰북 활성화를 활성화하거나 비활성화하여 실행 시기를 제어할 수 있습니다. 활성화를 비활성화하면 구성을 삭제하지 않고 문제 해결 또는 일시적으로 자동화를 중지하는 데 유용합니다.

프로세스

  1. 행 수준에서 스위치를 선택하여 선택한 룰북을 활성화하거나 비활성화합니다.
  2. 창에서 Yes, I want to enable/disable these X rulebook activations 를 선택합니다.
  3. Enable/Disable rulebook activation 을 선택합니다.

7.5. 룰북 활성화 다시 시작

룰북 활성화를 다시 시작하여 자동화를 신속하게 다시 사용할 수 있습니다. 이는 업데이트 후 또는 오류에서 복구하는 데 유용합니다.

참고

현재 활성화되어 있는 경우에만 룰북 활성화를 다시 시작할 수 있으며 재시작 정책이 생성된 경우 Always 로 설정되었습니다.

프로세스

  1. Rulebook Activation enabled/disabled 토글 옆에 있는 More Actions 아이콘을 선택합니다.
  2. 룰북 활성화 재시작 을 선택합니다.
  3. 창에서 Yes, I confirm that I want to restart these X rulebook activations 를 선택합니다.
  4. 룰북 활성화 재시작 을 선택합니다.

7.6. 룰북 활성화 편집

룰북 활성화를 생성하거나 실행하여 필드에 대한 입력을 수정(로그 수준, 재시작 정책, 감사 오프 또는 켜기 등) 또는 실패로 인한 문제를 완화하는 데 도움이 될 수 있습니다.

프로세스

  1. 규칙북 활성화 페이지에서 편집할 활성화 옆에 있는 Rulebook 활성화 버튼을 먼저 off 위치로 전환하여 활성화를 비활성화합니다.

    활성화를 비활성화할지 묻는 규칙북 활성화 메시지가 표시됩니다.

  2. Yes, I want to disable these <1> 룰북 활성화 확인란을 선택하고 Disable rulebook activations 를 클릭합니다.
  3. 룰북 활성화 옆에 있는 편집 아이콘을 클릭합니다. 편집 양식으로 이동합니다.

    참고

    규칙북 활성화 페이지에서 룰북 활성화 페이지를 클릭하고, 규칙북 활성화 버튼을 off 위치에 배치하고, 활성화를 비활성화하고, 페이지 오른쪽 상단에 있는 룰북 활성화 버튼을 클릭하여 편집 양식에 액세스하여 편집 기능에 액세스할 수도 있습니다.

  4. 원하는 필드를 편집합니다.

    참고

    즉시 활성화를 실행하려는 경우 Rulebook 활성화 버튼을 on 위치로 전환한 다음 변경 사항을 저장할 수 있습니다.

  5. 룰북 활성화 저장을 클릭합니다.

결과

그러면 규칙북 활성화 페이지로 돌아갑니다.

7.7. 룰북 활성화 중복

기존 룰북 활성화 중 하나와 유사한 필드 입력을 사용하여 새 룰북 활성화를 설정할 때 각 필드에 수동으로 입력을 입력하는 대신 복제 룰북 활성화 기능을 사용할 수 있습니다. 룰북 활성화를 설정하는 것은 긴 프로세스일 수 있지만 기존 활성화에서 필요한 필드를 복제하는 기능은 시간을 절약하며 경우에 따라 인적 오류 가능성을 줄일 수 있습니다.

프로세스

  1. 규칙북 활성화 페이지에서 복제하려는 활성화 행에서 More Actions (추가 작업) 아이콘을 클릭합니다. 더 많은 작업 목록이 다음 세 가지 옵션과 함께 표시됩니다.

    • 룰북 활성화 재시작
    • 중복 룰북 활성화
    • 룰북 활성화 삭제
  2. 룰북 활성화 중복 을 선택합니다.

    "< rulebook 활성화 1> 중복됨"이라는 메시지가 표시됩니다. 처음에는 새로 복제된 활성화가 규칙북 활성화 페이지에 원래 활성화와 동일한 이름으로 비활성화된 후 24시간 형식으로 타임 스탬프가 표시됩니다(예: < rulebook 활성화 1> @ 18:43:27).

    중요

    원래 룰북 활성화는 중복된 후에도 계속 실행됩니다. 필드(이름 필드 포함)를 편집하지 않고 중복 활성화를 활성화하려고 하면 룰북 활성화가 원본과 중복되었음을 알리는 메시지가 표시되고 이로 인해 실패하거나 중복된 작업 및 기타 복잡한 문제가 발생할 수 있습니다.

  3. 중복된 룰북 활성화를 실행하기 전에 다음을 완료하여 필드를 편집합니다.

    1. 중복된 룰북 활성화 옆에 있는 편집 아이콘을 클릭합니다. 편집 양식으로 이동합니다.
    2. 원하는 필드를 편집합니다.

      참고

      새로 중복된 활성화를 제공한 경우 원래 활성화와 구별하는 의미 있는 이름을 지정했는지 확인합니다.

  4. 룰북 활성화 활성화 버튼을 on 위치로 전환합니다.
  5. 모든 편집 사항이 완료되었는지 확인한 후 룰북 활성화 저장을 클릭합니다.

결과

그러면 룰북 활성화가 시작되고 성공적으로 실행되면 상태가 Running 또는 Completed 로 변경됩니다.

7.8. 룰북 활성화 삭제

룰북 활성화를 삭제하여 더 이상 필요하지 않은 경우 영구적으로 제거할 수 있습니다.

프로세스

  1. Rulebook Activation enabled/disabled 토글 옆에 있는 More Actions 아이콘을 선택합니다.
  2. 룰북 활성화 삭제를 선택합니다.
  3. 창에서 Yes, I confirm that I want to delete these X rulebook activations 를 선택합니다.
  4. 룰북 활성화 삭제를 선택합니다.

7.9. Webhook 룰북 활성화

Openshift 환경에서는 룰북 활성화의 Kubernetes 서비스를 노출하는 경로를 생성하여 Webhook가 지정된 포트를 통해 activation-job-pod에 도달하도록 허용할 수 있습니다.

사전 요구 사항

  • 룰북 활성화를 생성했습니다.
참고

다음은 지정된 Webhook가 있는 룰북의 예입니다.

- name: Listen for storage-monitor events
  hosts: all
  sources:
    - ansible.eda.webhook:
        host: 0.0.0.0
        port: 5000
  rules:
    - name: Rule - Print event information
    condition: event.meta.headers is defined
    action:
      run_job_template:
        name: StorageRemediation
        organization: Default
        job_args:
          extra_vars:
             message: from eda
             sleep: 1

프로세스

  1. 서비스를 노출할 경로(OpenShift Container Platform)를 생성합니다. 다음은 의사 결정 환경 Pod에서 포트 5000에 POST가 예상되는 ansible-rulebook 소스의 경로 예제입니다.

    kind: Route
    apiVersion: route.openshift.io/v1
    metadata:
      name: test-sync-bug
      namespace: dynatrace
      labels:
        app: eda
        job-name: activation-job-1-5000
    spec:
      host: test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com
      to:
        kind: Service
        name: activation-job-1-5000
        weight: 100
      port:
        targetPort: 5000
      tls:
        termination: edge
        insecureEdgeTerminationPolicy: Redirect
      wildcardPolicy: None
  2. 경로를 생성할 때 경로 URL에 대한 Post로 테스트합니다.

    참고

    Route(targetPort)에 지정되어 있으므로 포트가 필요하지 않습니다.

    curl -H "Content-Type: application/json" -X POST
    test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com -d
    '{}'

7.10. Kubernetes로 테스트

Kubernetes를 사용하면 Ingress를 생성하거나 포트를 노출할 수 있지만 프로덕션에는 사용할 수 없습니다.

프로세스

  1. 다음 명령을 실행하여 지정된 서비스의 클러스터에 포트를 노출합니다.

    kubectl port-forward svc/<ACTIVATION_SVC_NAME> 5000:5000
  2. localhost:5000 에 대해 HTTP 요청을 만들어 룰북을 트리거합니다.

    curl -H "Content-Type: application/json" -X POST test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com -d '{}'

8장. 룰북 활성화 문제 해결

룰북 활성화는 여러 가지 이유로 인해 종종 실패할 수 있습니다. 기본 검사를 통해 많은 문제를 해결할 수 있지만 분산 시스템에서 오류를 진단하려면 강력한 로깅이 필요합니다.

이벤트 기반 Ansible의 향상된 로깅 전략에는 문제 해결을 크게 개선하기 위해 모든 출력에 고유한 추적 식별자를 추가하는 작업이 포함됩니다.

이 장에 포함된 가능한 문제 목록을 검토하여 활성화 실패 및 해결 방법에 대한 제안 사항을 검토하십시오. 새 식별자를 사용한 자세한 로그 필터링은 이벤트 기반 Ansible 로그 필터링 을 참조하십시오.

8.1. 이벤트 기반 Ansible 로그 필터링

이벤트 기반 Ansible에는 문제 해결을 크게 개선하기 위해 모든 로그 출력에 추적 식별자가 포함되어 있습니다. 이러한 식별자는 여러 서비스 및 로그 파일에서 사용자 작업 및 활성화 프로세스를 추적하는 데 도움이 됩니다.

Expand
표 8.1. 이벤트 기반 Ansible 로그 추적 ID
identifier약어목적위치

X-REQUEST-ID

rid

전체 Event-Driven Ansible 요청 라이프사이클을 통해 플랫폼 게이트웨이의 HTTP 요청을 추적합니다. 이를 사용하여 UI 작업 또는 API 호출과 백엔드 처리의 상관 관계를 설정할 수 있습니다.

HTTP 응답 헤더 및 이벤트 기반 Ansible 로그 항목에 포함됩니다.

로그 추적 ID

TID

활성화 라이프사이클을 생성부터 완료까지 추적하여 다시 시작 및 여러 로그 파일을 유지할 수 있습니다.

모든 활성화 관련 로그 항목에 포함됩니다. UI의 활성화 기록 탭에서 가져올 수 있습니다.

활성화 인스턴스 ID

aiid

룰북 활성화의 단일 실행 인스턴스와 관련된 로그를 식별하여 해당 실행에 대한 ansible-rulebook 출력을 볼 수 있습니다.

활성화 로그에 포함됩니다.

참고

모든 프로세스가 사용자 또는 외부 클라이언트에서 시작되는 것은 아닙니다. 이벤트 기반 Ansible 오케스트레이터가 내부적으로 프로세스를 트리거하는 경우(예: 모니터 요청) 제거 UUID가 내부적으로 생성되어 플랫폼 게이트웨이 로그에 존재하지 않습니다.

향상된 로그 형식은 메시지 시작 부분에 이러한 식별자를 배치하여 쉽게 필터링할 수 있도록 합니다.

[rid: <UUID>] [tid: <UUID>] [aiid: <ID>] aap_eda.tasks.orchestrator 처리 요청…​

8.1.1. 문제 해결을 위해 로그 필터링 사용

고유한 추적 식별자를 활용하여 모든 시스템 로그를 효율적으로 검색하고 필터링하는 방법을 알아봅니다. 이 프로세스는 특정 룰북 활성화 또는 API 요청에 대한 정확한 타임라인과 실패 원인을 정확하게 지정합니다.

프로세스

  1. 식별자를 수집합니다.

    1. 문제가 발생하면 UI 기록 탭에서 실패한 활성화 인스턴스의 로그에서 로그 추적 ID (tid)를 검색합니다.
    2. 활성화를 다시 시작하는 것과 같이 사용자 작업에 의해 문제가 트리거된 경우 HTTP 응답 헤더에서 X-REQUEST-ID (제거)를 가져옵니다.
  2. 시스템 로그 검색:

    1. 수집된 UUID를 사용하여 백엔드 로그(작업자, 스케줄러, API 등)를 검색합니다. 이렇게 하면 관련 없는 노이즈를 필터링하여 모든 서비스에서 특정 요청 또는 활성화의 전체 타임라인에 집중할 수 있습니다.
  3. 타임라인 상관 관계:

    1. 공통 타일을 사용하여 서로 다른 로그 파일 및 서비스에서 활성화 진행(또는 실패)을 따릅니다.
  4. 지원 툴 사용:

    1. 필요한 경우 sosreport 또는 mustgather 툴을 사용하여 /var/log/ansible-automation-platform/eda/ 에서 관련 이벤트 기반 Ansible 로그를 모두 자동으로 수집합니다.

8.2. 활성화가 Pending 상태로 유지됨

룰북 활성화가 Pending 상태인 경우 다음 단계를 수행합니다.

프로세스

  1. 다른 실행 중인 활성화가 있는지 여부와 제한(예: 메모리 또는 CPU 제한)에 도달한 경우 확인합니다.

    1. 다른 활성화가 실행 중인 경우 가능한 경우 하나 이상의 활성화를 종료합니다.
    2. 그렇지 않은 경우 기본 worker, Redis 및 활성화 작업자가 모두 실행 중인지 확인합니다. 모든 시스템이 예상대로 작동하는 경우 작업자, 스케줄러, API, nginx 컨테이너 및 서비스에서 eda-server 내부 로그를 확인하여 문제를 확인할 수 있는지 확인합니다.

      참고

      이러한 로그는 코드에서 throw한 예외, 네트워크 문제가 있는 런타임 오류 또는 룰북 코드 오류와 같은 문제의 소스를 표시합니다. 내부 로그에서 해결로 이어지는 정보를 제공하지 않는 경우 Red Hat 지원에 문제를 보고합니다.

    3. 조정할 필요가 있는 경우 동시 룰북 활성화 수 수정을 참조하십시오.

      참고

      OpenShift Container Platform 배포에서 Ansible Automation Platform Operator의 최대 동시 활성화 수를 조정하려면 OpenShift Container Platform에 설치할 때 또는 이벤트 기반 Ansible 컨트롤러 설치 중 또는 이후의 동시 룰북 활성화 수 수정 을 참조하십시오.

8.3. 활성화는 계속 다시 시작

룰북 활성화가 계속 다시 시작되면 다음 단계를 수행합니다.

프로세스

  1. Ansible Automation Platform에 로그인합니다.
  2. 탐색 패널에서 자동화 의사 결정 규칙북 활성화를 선택합니다.
  3. 규칙 북 활성화 페이지에서 다시 시작한 목록에서 활성화를 선택합니다. 세부 정보 페이지가 표시됩니다.
  4. 자세한 내용은 내역 탭을 클릭하고 다시 시작한 룰북 활성화를 선택합니다. 세부 정보 탭이 표시되고 출력 정보가 표시됩니다.
  5. 활성화에 대한 Restart policy 필드를 확인합니다.

    사용할 수 있는 세 가지 선택: 실패 시 (컨테이너 프로세스가 실패할 때 룰북 활성화 다시 시작), 항상 성공 또는 실패와 관계없이 5번 이상 다시 시작 또는 컨테이너 프로세스가 종료될 때 다시 시작(컨테이너 프로세스가 종료될 때 다시 시작)할 수 있습니다.

    1. 룰북 활성화 재시작 정책이 On 실패로 설정되어 있는지 확인합니다. 이는 문제가 발생하여 실패했음을 나타냅니다.
    2. 문제를 진단하려면 YAML 코드와 룰북 활성화의 인스턴스 로그를 확인하여 오류가 있는지 확인합니다.
    3. 재시작 정책 값이 있는 솔루션을 찾을 수 없는 경우 로그 수준 과 관련된 다음 단계를 진행합니다.
  6. 활성화에 대한 로그 수준을 확인합니다.

    1. 기본 로그 수준이 Error 이면 규칙북 활성화 페이지로 돌아가서 룰북 활성화 설정에서 다음 활성화를 다시 생성합니다.
    2. 로그 수준을 Debug 로 변경합니다.
    3. 활성화를 다시 실행하고 활성화 세부 정보 페이지에서 기록 탭으로 이동합니다.
    4. 기록 페이지에서 최근 활성화 중 하나를 클릭하고 출력을 확인합니다.

8.4. 룰북 활성화에 의해 이벤트가 처리되지 않음

룰북 활성화가 실행 중이지만 이벤트를 처리하지 않는 경우 가장 일반적인 원인은 예상 이벤트 소스와 룰북에 정의된 소스 간에 일치하지 않습니다.

프로세스

  1. 룰북 소스를 확인합니다. 룰북 YAML에 정의된 소스 플러그인 검토(예: ansible.eda.webhook, ansible.eda.kafka).
  2. 이벤트 입력 확인: 이벤트 기반 Ansible 컨트롤러에 보내는 이벤트가 룰북에 정의된 소스 플러그인과 호환되는지 확인합니다. 룰북에서 Kafka 메시지가 필요한 경우 일반 Webhook 이벤트를 처리할 수 없습니다.
  3. 활성화 매핑 확인: 이벤트 스트림을 사용하는 경우 활성화 설정 중에 올바른 이벤트 스트림이 룰북에 매핑되었는지 확인합니다. 여기에 일치하지 않으면 데이터 수신이 활성화되지 않습니다.

8.5. 이벤트를 수신하더라도 트리거하지 않는 동작

룰북 활성화가 실행 중이고 이벤트를 성공적으로 수신하고 있지만 작업이 실행되지 않으면 룰북의 논리 내에서 문제가 발생할 수 있습니다.

프로세스

  1. 규칙 조건 확인: 룰북 YAML을 검토하여 조건( when 문)이 정확히 기록되고 들어오는 이벤트 페이로드의 구조와 값과 정확히 일치하는지 확인합니다.
  2. 들여쓰기 및 구문 확인: 간단한 오류로 인해 규칙 엔진이 조건을 평가하지 못할 수 있으므로 모든 룰북 구문 및 들여쓰기가 올바른지 확인합니다.
  3. 작업 검증: 지정된 작업이 인식되고 올바르게 구성된 작업인지 확인합니다(예: 적절한 인수가 있는 run_job_template ).

8.6. 활성화로 이벤트를 전송하지 않는 이벤트 스트림

이벤트 스트림을 사용하여 룰북 활성화에 이벤트를 보내는 경우 경우에 따라 해당 이벤트가 룰북 활성화로 성공적으로 라우팅되지 않을 수 있습니다.

프로세스

  • 이 문제를 해결하려면 다음 옵션을 시도해 보십시오.

    1. 이벤트 기반 Ansible 컨트롤러의 각 이벤트 스트림이 테스트 모드에 있지 않은지 확인합니다. 즉, 활성화가 이벤트를 수신하지 않습니다.
    2. 원본 서비스가 요청을 올바르게 보내고 있는지 확인합니다.
    3. 플랫폼 게이트웨이 인스턴스에 대한 네트워크 연결이 안정적인지 확인합니다. 이벤트 스트림을 설정한 경우 보낸 사람에서 이벤트 스트림 요청의 항목입니다.
    4. 플랫폼 게이트웨이의 프록시가 실행 중인지 확인합니다.
    5. 이벤트 스트림 작업자가 실행 중이며 요청을 처리할 수 있는지 확인합니다.
    6. 이벤트 스트림에 인증 정보가 올바르게 설정되었는지 확인합니다.
    7. 요청이 세트 자격 증명에 의해 결정된 인증 메커니즘을 준수하는지 확인합니다(예: basic에는 자격 증명이 있는 헤더가 포함되어 있거나 HMAC에는 헤더의 콘텐츠 서명이 포함되어야 합니다.).

      참고

      인증 정보는 이벤트 기반 Ansible 컨트롤러에서 변경되었지만 원본 서비스에서 업데이트되지 않을 수 있습니다.

    8. 활성화에서 실행 중인 룰북이 이러한 이벤트에 반응하는지 확인합니다. 이벤트 소스를 작성하고 들어오는 이벤트를 사용하는 작업을 추가했음을 나타냅니다. 그렇지 않으면 이벤트가 활성화에 도달하지만 활성화할 것은 없습니다.
    9. 자체 서명된 인증서를 사용하는 경우 공급업체에서 Webhook를 보낼 때 인증서 검증을 비활성화할 수 있습니다. 대부분의 벤더에는 테스트 또는 프로덕션 환경 이외의 환경에 대한 인증서 검증을 비활성화할 수 있는 옵션이 있습니다.

8.7. 활성화를 실행할 때 2.5 자동화 컨트롤러에 연결할 수 없습니다

활성화를 실행할 때 자동화 컨트롤러에 실패한 연결이 발생할 수 있습니다.

프로세스

  1. 이 문제를 해결하려면 Red Hat Ansible Automation Platform 인증 정보를 설정했으며 올바른 자동화 컨트롤러 URL을 가져왔는지 확인하십시오.

    1. Red Hat Ansible Automation Platform 인증 정보를 설정하지 않은 경우 Red Hat Ansible Automation Platform 인증 정보 설정 절차를 따르십시오. 이 인증 정보에 호스트가 다음 URL 형식으로 설정되어 있는지 확인합니다. https://<your_gateway>/api/controller
    2. 이 프로세스를 완료하면 룰북 활성화 설정을 다시 시도합니다.

9장. 규칙 감사

규칙 감사를 사용하면 특정 시점에서 활성화된 모든 규칙에 의해 트리거된 규칙을 감사할 수 있습니다.

규칙 감사 목록 보기는 이벤트가 룰북 내의 조건과 일치하고 작업을 트리거할 때마다 목록을 표시합니다. 이 목록에는 룰북 내의 규칙이 표시되고 각 제목이 실행된 규칙과 일치합니다.

9.1. 규칙 감사 세부 정보 보기

규칙 감사 목록 뷰에서 특정 작업을 트리거한 이벤트를 확인할 수 있습니다.

프로세스

  1. 탐색 패널에서 자동화 의사 결정규칙 감사를 선택합니다.
  2. 원하는 규칙을 선택하면 세부 정보 탭으로 이동합니다.

결과

여기에서는 생성 시기, 마지막으로 실행된 시기, 룰북 활성화를 확인할 수 있습니다.

9.2. 규칙 감사 이벤트 보기

특정 규칙을 선택하여 해당 이벤트 목록을 확인한 다음 각 이벤트의 로그, 소스 유형 및 타임스탬프를 검사하여 자세한 정보를 확인할 수 있습니다.

프로세스

  1. 탐색 패널에서 자동화 의사 결정규칙 감사를 선택합니다.
  2. 원하는 규칙을 선택하면 세부 정보 탭으로 이동합니다. 작업을 트리거한 모든 이벤트를 보려면 이벤트 탭을 선택합니다. 작업을 트리거한 이벤트가 표시됩니다.
  3. 소스 유형Timestamp 와 함께 이벤트 로그 를 볼 이벤트를 선택합니다.

9.3. 규칙 감사 작업 보기

특정 규칙을 선택하여 해당 작업 목록을 보고 해당 출력을 볼 수 있습니다.

프로세스

  1. 탐색 패널에서 자동화 의사 결정규칙 감사를 선택합니다.
  2. 원하는 규칙을 선택한 다음 작업 탭을 선택합니다.

결과

여기에서 실행된 작업을 볼 수 있습니다. 일부 작업은 출력을 볼 수 있는 자동화 실행에 연결됩니다.

10장. 간소화된 이벤트 라우팅

간소화된 이벤트 라우팅을 통해 이벤트 기반 Ansible 컨트롤러는 이벤트 스트림을 사용하여 다양한 원격 시스템의 데이터를 캡처하고 분석할 수 있습니다. 이벤트 스트림을 사용하면 GitHub 또는 GitLab과 같은 원격 시스템에서 이벤트 기반 Ansible 컨트롤러로 이벤트를 보낼 수 있습니다. 룰북의 소스를 교체하여 1개 이상의 이벤트 스트림을 활성화에 연결할 수 있습니다.

이벤트 스트림은 소스를 룰북에 연결하는 쉬운 방법입니다. 이 기능을 사용하면 이벤트 소스에서 경고를 수신한 다음 여러 룰북에서 이벤트를 사용할 수 있는 단일 끝점을 만들 수 있습니다.

10.1. 이벤트 스트림

이벤트 스트림은 원격 시스템에서 이벤트 기반 Ansible 컨트롤러로 이벤트를 보낼 수 있습니다. 일반적인 설정에서는 서버가 인터넷을 통해 이벤트 스트림으로 데이터를 이벤트 기반 Ansible 이벤트 스트림 수신자에게 보냅니다. 데이터가 인터넷을 통해 제공되는 경우 요청을 인증해야 합니다. 웹 후크 벤더 또는 원격 시스템에 따라 인증 방법이 다를 수 있습니다.

이벤트 기반 Ansible 컨트롤러는 6가지 이벤트 스트림 유형을 지원합니다.

Expand
표 10.1. 이벤트 스트림 유형
유형설명공급 업체

HMAC

해시된 메시지 인증 코드(HMAC). 이벤트 기반 Ansible 컨트롤러와 공급업체 웹 후크 서버 간에 공유 시크릿을 사용합니다. 이는 메시지 무결성을 보장합니다.

GitHub

기본 인증

HTTP 기본 인증을 사용합니다.

Datadog, Dynatrace

토큰 인증

토큰 인증을 사용합니다. 일반적으로 HTTP 헤더는 권한 부여 이지만 Gitlab과 같은 일부 공급업체는 X-Gitlab-Token 을 사용합니다.

Gitlab, ServiceNow

OAuth2

클라이언트 자격 증명 이라는 권한 부여 유형과 함께 M2M(Machine-to-Machine) 모드를 사용합니다. 토큰은 불투명입니다.

Dynatrace

JWT가 있는 OAuth2

클라이언트 자격 증명 이라는 권한 부여 유형과 함께 M2M 모드를 사용합니다. 토큰은 JSON 웹 토큰(JWT)입니다.

Datadog

ECDSA

elliptic Curve Digital Signature 알고리즘

SendGrid, Twilio

이벤트 기반 Ansible 컨트롤러는 6가지 기본 이벤트 스트림 유형을 기반으로 하는 네 가지 다른 특수 이벤트 스트림도 지원합니다.

  • GitLab Event Stream
  • GitHub Event Stream
  • ServiceNow 이벤트 스트림
  • Dynatrace 이벤트 스트림

이러한 특수 유형은 기본값을 추가하여 사용하는 매개변수를 제한합니다. 예를 들어 GitHub 이벤트 스트림은 이미 채워진 많은 필드가 있는 HMAC 이벤트 스트림의 특징입니다. GitHub Event Stream 인증 정보를 저장하면 GitHub 이벤트 스트림에 권장되는 기본값이 표시됩니다.

10.2. 이벤트 스트림 인증 정보 생성

이벤트 스트림을 사용하려면 먼저 이벤트 스트림 인증 정보를 생성해야 합니다.

사전 요구 사항

  • 각 이벤트 스트림에는 정확히 하나의 인증 정보가 있어야 합니다.

프로세스

  1. Ansible Automation Platform 대시보드에 로그인합니다.
  2. 탐색 패널에서 자동화 의사 결정인프라 인증정보를 선택합니다.
  3. 인증 정보 생성을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    설명
    이 필드는 선택 사항입니다.
    조직
    목록을 클릭하여 조직을 선택하거나 기본값 을 선택합니다.
    인증 정보 유형

    목록을 클릭하여 인증 정보 유형을 선택합니다.

    참고

    인증 정보 유형을 선택하면 선택한 인증 정보 유형에 적용할 수 있는 필드에 유형 세부 정보 섹션이 표시됩니다.

    유형 세부 정보
    선택한 인증 정보 유형에 대해 요청된 정보를 추가합니다. 예를 들어 GitHub Event Stream 인증 정보 유형을 선택한 경우 이벤트 기반 Ansible 컨트롤러와 원격 서버 간에 HMAC 보안(대칭 공유 시크릿)을 추가해야 합니다.
  5. 인증 정보 생성을 클릭합니다.

결과

세부 정보 페이지가 표시됩니다. 인증 정보 목록 보기 또는 인증 정보 목록 뷰에서 편집하거나 삭제할 수 있습니다.

10.3. 이벤트 스트림 생성

룰북 활성화에 연결될 이벤트 스트림을 생성할 수 있습니다.

사전 요구 사항

  • 이벤트 스트림을 룰북 활성화에 연결하는 경우 활성화에 의사 결정 환경과 프로젝트가 이미 설정되어 있는지 확인합니다.
  • 룰북 활성화를 실행하기 위해 자동화 컨트롤러에 연결하려는 경우 의사 결정 환경 및 프로젝트 외에도 Red Hat Ansible Automation Platform 인증 정보 유형을 생성했는지 확인합니다. 자세한 내용은 Red Hat Ansible Automation Platform 인증 정보 설정을 참조하십시오.

프로세스

  1. Ansible Automation Platform에 로그인합니다.
  2. 탐색 패널에서 Automation DecisionsEvent Streams 를 선택합니다.
  3. 이벤트 스트림 생성을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    조직
    목록을 클릭하여 조직을 선택하거나 기본값 을 선택합니다.
    이벤트 스트림 유형

    원하는 이벤트 스트림 유형을 선택합니다.

    참고

    이 목록에는 원격 서버에서 연결을 인증하는 데 사용할 수 있는 최소 10개의 기본 이벤트 스트림 유형이 표시됩니다.

    인증 정보
    목록에서 인증 정보(특히 이벤트 스트림을 위해 생성한 인증 정보)를 선택합니다.
    headers

    이벤트 페이로드에 포함할 HTTP 헤더 키를 쉼표로 구분하여 입력합니다.

    중요

    자동화가 이벤트 페이로드에 있는 HTTP 헤더에 의존하는 경우 중요한 정보의 의도하지 않은 노출을 방지하기 위해 명시적으로 정의해야 합니다. HTTP 헤더 및 안전하게 구성하는 방법에 대한 자세한 내용은 이벤트 스트림에 대해 HTTP 헤더 및 HTTP 헤더 구성을 참조하십시오.

    룰북 활성화로 이벤트 전달

    이 옵션을 사용하여 이벤트를 룰북 활성화로 전달하는 기능을 활성화하거나 비활성화합니다.

    참고

    이벤트 스트림의 이벤트 전달은 연결을 진단하고 들어오는 데이터를 평가하는 동안 테스트 목적으로 비활성화할 수 있습니다. Forward 이벤트를 룰북 활성화 옵션으로 비활성화하면 원격 시스템과의 이벤트 스트림 연결을 테스트하고, 헤더와 페이로드를 분석하며, 필요한 경우 인증 정보 문제를 진단할 수 있습니다. 이렇게 하면 이벤트가 규칙북 활성화에 전달되지 않아 테스트 모드에 있는 동안 규칙과 조건이 의도치 않게 트리거됩니다. 일부 기업은 정기적으로 비밀과 암호를 변경하기위한 정책을 가질 수 있습니다. 이벤트 스트림이 생성된 후 언제든지 이 옵션을 활성화/비활성화할 수 있습니다.

  5. 이벤트 스트림 생성을 클릭합니다.

결과

이벤트 스트림을 생성한 후 다음과 같은 출력이 발생합니다.

  • 세부 정보 페이지가 표시됩니다. 여기에서 또는 Event Streams 목록 뷰에서 편집하거나 삭제할 수 있습니다. 또한 이벤트 스트림 페이지에는 생성한 모든 이벤트 스트림과 각 이벤트에 대해 다음 열이 표시됩니다: 수신된 이벤트, 마지막 이벤트, 이벤트 스트림 유형. 처음 두 열이 이벤트 스트림을 통해 외부 데이터를 수신하므로 이벤트 스트림을 통해 이벤트를 수신하도록 지속적으로 업데이트됩니다.
  • 이벤트 스트림을 비활성화하면 세부 정보 페이지가 경고 메시지와 함께 표시됩니다. 이 이벤트 스트림은 비활성화되어 있습니다.

    참고

    이벤트 스트림이 생성되면 연결된 이벤트 스트림이 삭제될 때까지 연결된 인증 정보를 삭제할 수 없습니다.

  • 새 이벤트 스트림은 이벤트를 전송하는 원격 시스템에서 Webhook를 구성할 때 필요한 URL을 생성합니다.

10.4. HTTP 헤더

이벤트 기반 Ansible 및 이벤트 스트림의 컨텍스트에서 HTTP 헤더는 타사 소스(예: GitHub, 모니터링 도구 또는 전용 Webhook)에서 들어오는 이벤트에 대한 필요한 컨텍스트 및 보안 정보를 제공하기 때문에 중요한 역할을 합니다. 여기에는 다음과 같은 기능이 포함됩니다.

Authentication and non-repudiation
가장 중요한 사용 방법입니다. 헤더에는 이벤트 기반 Ansible에서 보낸 사람의 ID를 확인하고 이벤트 페이로드가 변조되지 않았는지 확인하는 데 사용하는 토큰, API 키 또는 보안 서명(예: X-Hub-Signature 헤더의 HMAC)이 포함됩니다. 이를 통해 해당 이벤트가 합법적인 출처에서 나온 것을 확인할 수 없습니다.
디버깅 및 로깅
헤더는 이벤트 경로를 추적하는 데 중요한 데이터 지점(날짜,User-Agent,X-Request-ID)을 제공하여 시스템 관리자와 SREs 디버그 문제를 지연 또는 실패한 이벤트 처리와 관련된 디버그 문제를 지원합니다.

헤더는 여러 가지 목적으로 제공되는 모든 HTTP 통신에 필수적입니다.

  • 컨텍스트 및 메타데이터: 전송되는 데이터에 대해 설명합니다(예: Content-Type: application/json, Content-Length: 1024).
  • 클라이언트/서버 기능: 보낸 사람의 기능 또는 기본 설정(예: Accept-Language: en-US)의 수신 당사자를 형성합니다.
  • 인증/인증: 보안 인증 정보(예 : Authorization: Bearer <token>)
  • 캐싱: 클라이언트 및 프록시에서 콘텐츠를 캐시하는 방법을 제어합니다(예: Cache-Control: max-age=3600).
  • 라우팅 및 추적: 사용자 지정 헤더(예: X-Request-ID)를 통해 네트워크 라우팅 및 트랜잭션 추적을 용이하게 합니다.

10.4.1. 이벤트 스트림에 대해 안전하게 HTTP 헤더 구성

이벤트 스트림 보안을 강화하려면 전달되는 HTTP 헤더를 명시적으로 정의해야 합니다. 이러한 헤더는 처리에 필요한 중요한 컨텍스트 및 인증 데이터를 전달합니다.

프로세스

  1. 모든 HTTP 헤더를 포함하려면 헤더 필드에 별표(*)를 입력합니다. 이렇게 하면 몇 개의 헤더를 제외하고 모든 HTTP 헤더가 허용됩니다.

    • excluded: X-Envoy,X-Trusted-Proxy,X-Forwarded-For, X-Real-Id로 시작하는 헤더
    • redacted: Authorization 헤더(예: Authorization: Redacted)

      중요

      Headers 필드가 비어 있으면 Production 및 Test 모드의 이벤트 페이로드에 HTTP 헤더가 추가되지 않습니다.

  2. 특정 HTTP 헤더 세트를 포함하려면 원하는 헤더의 이름을 쉼표로 구분된 문자열(예: Host,Authorization,X-Request-ID)으로 입력합니다.

10.5. 이벤트를 보내도록 원격 시스템 구성

이벤트 스트림을 생성한 후에는 이벤트를 Event-Driven Ansible 컨트롤러에 보내도록 원격 시스템을 구성해야 합니다. 이 구성에 사용되는 방법은 선택한 이벤트 스트림 인증 정보 유형의 공급 업체에 따라 다릅니다.

사전 요구 사항

  • 이벤트 스트림을 생성할 때 생성된 URL
  • 이벤트 스트림 인증 정보에서 설정한 시크릿 또는 암호

프로세스

다음 예제에서는 이벤트 기반 Ansible 컨트롤러에 이벤트를 보내도록 GitHub와 같은 원격 시스템에서 Webhook를 구성하는 방법을 보여줍니다. 각 벤더에는 이벤트를 이벤트 기반 Ansible 컨트롤러에 보내도록 원격 시스템을 구성하는 고유한 방법이 있습니다.

  1. GitHub 리포지토리에 로그인합니다.
  2. 프로필 이름 → 리포지토리를 클릭합니다.

    참고

    리포지토리가 없는 경우 새로 만들기를 클릭하여 새 항목을 생성하고 소유자를 선택하고 리포지토리 이름을 추가하고 리포지토리 만들기 를 클릭합니다.

  3. Settings (tool bar) 로 이동합니다.
  4. 일반 탐색 창에서 Webhook 를 선택합니다.
  5. Webhook 추가를 클릭합니다.
  6. Payload URL 필드에 이벤트 스트림을 생성할 때 저장한 URL을 붙여넣습니다.
  7. 콘텐츠 유형 목록에서 application/json 을 선택합니다.
  8. 시크릿 을 입력합니다.
  9. Webhook 추가를 클릭합니다.

결과

Webhook가 추가되면 테스트 페이로드를 보내 두 시스템(GitHub 및 이벤트 기반 Ansible 컨트롤러) 간에 연결이 있는지 확인합니다. 데이터를 성공적으로 전송할 수 있는 경우 메시지를 사용하여 Webhook URL 옆에 녹색 확인 표시가 표시됩니다. 마지막 전달에 성공한 것입니다.

10.6. 이벤트 스트림 작동 확인

이벤트 스트림을 사용하여 원격 시스템에 연결하고 데이터를 수신할 수 있는지 확인합니다.

  1. Ansible Automation Platform에 로그인합니다.
  2. 탐색 패널에서 Automation DecisionsEvent Streams 를 선택합니다.
  3. 연결을 검증하기 위해 생성한 이벤트 스트림을 선택하고 이벤트 스트림이 룰북 활성화에 데이터를 전송하는지 확인합니다.
  4. 이벤트가 수신되었는지 확인합니다. 수신된 이벤트 수는 이벤트에 대한 세부 정보가 포함된 헤더와 함께 표시됩니다.

    Verify event streams work

    UI에서 아래로 스크롤하면 Webhook에 대한 자세한 정보가 포함된 페이로드 본문도 확인할 수 있습니다.

    이벤트 스트림의 헤더본문 섹션은 세부 정보 페이지에 표시됩니다. 이는 이벤트를 보내는 공급 업체에 따라 다릅니다. 헤더와 본문은 이벤트 페이로드의 특성을 확인하는 데 사용할 수 있으므로 룰북에서 조건을 작성하는 데 도움이 됩니다.

  5. 이벤트 전달을 룰북 활성화 옵션으로 전환하여 이벤트를 룰북 활성화로 푸시할 수 있습니다.

결과

이렇게 하면 이벤트 스트림을 프로덕션 모드로 이동하여 룰북 활성화에 쉽게 연결할 수 있습니다. 이 옵션이 해제되면 이벤트를 룰북 활성화로 전달하는 기능이 비활성화되고 이 이벤트 스트림은 비활성화된 메시지가 표시됩니다.

10.7. 소스 교체 및 활성화에 이벤트 스트림 연결

룰북 활성화를 생성할 때 이벤트 스트림을 사용하여 룰북 활성화에서 소스 매핑을 교체하고 외부 소스에서 이벤트 기반 Ansible 컨트롤러로의 라우팅을 간소화할 수 있습니다.

소스 매핑과 관련하여 고려해야 할 몇 가지 주요 사항이 있습니다.

  1. 이벤트 스트림은 룰북 소스 스왑에서 한 번만 사용할 수 있습니다. 룰북에 여러 소스가 있는 경우 각 소스만 한 번만 교체할 수 있습니다.
  2. 소스 매핑은 현재 룰북 활성화에서만 수행됩니다. 동일한 룰북을 사용하는 다른 활성화에 대해 이 프로세스를 반복해야 합니다.
  3. 소스 매핑은 룰북이 수정되지 않는 경우에만 유효합니다. 소스 매핑 프로세스 중에 룰북이 수정되면 소스 매핑이 실패하고 반복해야 합니다.
  4. 소스 매핑이 생성된 후 룰북이 수정되고 재시작 이 발생하면 룰북 활성화가 실패합니다.

프로세스

  1. Ansible Automation Platform에 로그인합니다.
  2. 탐색 패널에서 자동화 의사 결정 규칙북 활성화를 선택합니다.
  3. 룰북 활성화 생성을 클릭합니다.
  4. 다음을 삽입합니다.

    이름
    이름을 삽입합니다.
    설명
    이 필드는 선택 사항입니다.
    조직
    조직 이름을 입력하거나 목록에서 Default를 선택합니다.
    프로젝트

    프로젝트는 룰북의 논리 컬렉션입니다. 이 필드는 선택 사항입니다.

    참고

    이 필드는 선택 사항이지만 프로젝트를 선택하면 룰북 선택 목록을 구체화하는 데 도움이 됩니다.

    룰북

    룰북은 선택한 프로젝트에 따라 표시됩니다. 룰북을 선택합니다.

    참고

    룰북을 선택하면 이벤트 스트림 필드가 활성화됩니다. 도구 모음 아이콘을 클릭하여 이벤트 스트림 매핑 양식을 표시할 수 있습니다.

    이벤트 스트림

    사용 가능한 모든 이벤트 스트림이 룰북 작동에 이벤트를 전달하도록 설정됩니다. 이벤트 스트림을 생성하지 않은 경우 이 필드는 비활성화된 상태로 유지됩니다.

    툴바 아이콘을 클릭하여 UI를 매핑하는 이벤트 스트림을 표시합니다.

    Event streams mapping UI

    다음 필드를 작성합니다.

    룰북 소스

    룰북은 여러 규칙 세트에서 여러 소스를 포함할 수 있습니다. 여러 활성화에서 동일한 룰북을 여러 이벤트 스트림에 매핑할 수 있습니다. 이벤트 스트림을 관리하는 동안 이름이 지정되지 않은 소스에는 식별을 위해 임시 이름(__SOURCE {n})이 할당됩니다.

    목록에서 __SOURCE_1을 선택합니다.

    이벤트 스트림

    목록에서 이벤트 스트림 이름을 선택합니다.

    저장을 클릭합니다.

    이벤트 스트림은 룰북에서 일치하는 소스를 교체할 수 있으며 다양한 이벤트 소스를 룰북 활성화에 연결할 수 있는 서버 측 Webhook입니다. ansible.eda.pg_listener 유형의 이벤트 스트림 소스로 교체할 수 있는 소스 유형에는 ansible.eda.webhook 및 기타 호환 웹 후크 소스 플러그인이 포함됩니다. 선택한 소스를 교체하면 이 활성화에만 영향을 미치고 룰북의 소스 유형, 소스 이름 및 인수를 수정합니다. 필터, 규칙, 조건 및 작업은 모두 영향을 받지 않습니다.

    단일 이벤트 스트림으로 교체할 소스를 선택할 수 있습니다. 룰북에 여러 소스가 있는 경우 각 소스를 이벤트 스트림으로 교체하도록 선택할 수 있지만 각각을 교체할 필요는 없습니다. 다음 이미지에는 교체할 수 있는 소스가 표시되어 있습니다.

    Event streams replacement sources

    pink의 항목은 소스 유형, 소스 이름 및 인수와 같이 교체할 수 있는 소스를 보여줍니다. 나머지 항목(필터, 규칙 및 작업)은 대체되지 않습니다.

    인증 정보

    이 룰북 활성화에 대해 0개 이상의 인증 정보를 선택합니다. 이 필드는 선택 사항입니다.

    참고

    이 필드에 표시되는 인증 정보는 룰북 활성화에 따라 사용자 지정되며 Vault, Red Hat Ansible Automation Platform 또는 생성한 모든 사용자 정의 인증 정보 유형만 포함합니다. 인증 정보에 대한 자세한 내용은 인증 정보를 참조하십시오. https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html-single/using_automation_decisions/index#eda-credentials

    의사 결정 환경

    의사 결정 환경은 Ansible 룰북을 실행하는 데 사용되는 컨테이너 이미지입니다.

    참고

    이벤트 기반 Ansible 컨트롤러에서는 의사 결정 환경의 가져오기 정책을 사용자 지정할 수 없습니다. 기본적으로 always 정책의 동작을 따릅니다. 활성화가 시작될 때마다 시스템은 최신 버전의 이미지를 가져오려고 합니다.

    재시작 정책

    소스 플러그인을 실행하는 컨테이너 프로세스가 종료된 후 활성화를 다시 시작하는 방법을 결정하는 정책입니다.

    • 정책:

      1. 항상: 성공적으로 종료되었는지 여부에 관계없이 룰북 활성화를 즉시 재시작하고 5회 이상 발생하지 않습니다.
      2. Never: 컨테이너 프로세스가 종료될 때 룰북 활성화를 재시작하지 않습니다.
      3. 실패 시: 컨테이너 프로세스가 실패한 경우에만 기본적으로 60초 후에 룰북 활성화를 재시작하고 5 번 이상 발생하지 않습니다.
    로그 수준

    이 필드는 기록된 이벤트의 심각도 및 콘텐츠 유형을 정의합니다.

    • 수준:

      1. 오류: 활성화의 기록 탭에 표시되는 오류 메시지가 포함된 로그입니다.
      2. info: 성공 또는 실패, 트리거된 작업 이름 및 관련 작업 이벤트 및 오류와 같은 룰북 활성화에 대한 유용한 정보가 포함된 로그입니다.
      3. debug 단계에서만 유용하고 프로덕션 중에 값이 거의 없을 수 있는 정보가 포함된 로그입니다. 이 로그 수준에는 오류 및 로그 수준 데이터가 모두 포함됩니다.
    서비스 이름
    이는 활성화가 포트를 노출하는 경우 인바운드 연결을 구성하기 위해 Kubernetes의 서비스 이름을 정의합니다. 이 필드는 선택 사항입니다.
    룰북 활성화가 활성화됩니까?
    이렇게 하면 룰북 활성화가 자동으로 활성화됩니다.
    변수
    룰북의 변수는 JSON 또는 YAML 형식입니다. 콘텐츠는 ansible-rulebook 명령의 --vars 플래그를 통해 전달되는 파일과 동일합니다.
    옵션
    규칙 감사에서 이벤트를 표시하지 않으려면 Skip audit events 옵션을 선택합니다.
  5. 룰북 활성화 생성을 클릭합니다.

결과

룰북 활성화를 생성하면 세부 정보 페이지가 표시됩니다. 이벤트 스트림 페이지로 이동하여 이벤트가 수신되었는지 확인할 수 있습니다.

10.8. 이벤트 스트림 유형에서 Webhook 데이터 다시 전송

생성한 이벤트 스트림으로 소스를 교체한 후 이벤트 스트림에서 데이터를 다시 보내 룰북 활성화에 연결되도록 할 수 있습니다. 앞에서 공유한 예제에서는 GitHub 이벤트 스트림이 사용되었습니다. 다음 예제에서는 GitHub 이벤트 스트림을 사용하는 경우 Webhook 데이터를 다시 보내는 방법을 보여줍니다.

프로세스

  1. GitHub Webhook / Webhook 관리 페이지로 돌아갑니다.
  2. 최근 제공 탭을 클릭합니다.
  3. is 를 클릭합니다.
  4. Redeliver 를 클릭합니다. Redeliver payload? 창이 전송 메시지와 함께 표시됩니다.
  5. Yes를 클릭하고 이 페이로드를 다시 전달합니다.
  6. Ansible Automation Platform으로 돌아가 규칙 감사를 확인합니다.

10.9. 새 이벤트 스트림에서 이벤트에 대한 규칙 감사 확인

이벤트 기반 Ansible 컨트롤러에서 이벤트를 보내고 수신한 경우 규칙 감사 페이지로 이동하여 이벤트 스트림 결과를 확인하여 작업이 트리거되었는지 확인할 수 있습니다.

프로세스

  1. Ansible Automation Platform에 로그인합니다.
  2. 탐색 패널에서 자동화 의사 결정규칙 감사를 선택합니다.

결과

룰북 활성화에서 선택한 이벤트 스트림 유형에서 이벤트 데이터를 수신하면 규칙 감사 페이지에 상태, 규칙북 활성화마지막 실행 날짜 필드에 대한 결과가 표시됩니다.

11장. 이벤트 기반 Ansible 컨트롤러의 성능 튜닝

이벤트 기반 Ansible은 확장성이 뛰어나고 유연한 자동화 기능입니다. 이벤트 기반 Ansible 컨트롤러는 이벤트 기반 Ansible 자동화가 수행하는 인터페이스를 제공합니다. 다음을 통해 이벤트 기반 Ansible 컨트롤러를 조정하여 성능 및 확장성을 최적화합니다.

  • 워크로드 특성화
  • 시스템 수준 모니터링
  • 성능 문제 해결

11.1. 워크로드 특성화

이벤트 기반 Ansible 컨트롤러에서 워크로드에는 룰북 활성화 및 수신되는 이벤트 수가 포함됩니다. 이벤트 기반 Ansible 컨트롤러 워크로드를 특성화하려면 다음 요인을 고려하십시오.

  1. 동시 룰북 활성화 수
  2. 이벤트 기반 Ansible 컨트롤러에서 수신하는 이벤트 수

11.2. 각 룰북 활성화에 대한 기본 메모리 제한 수정

메모리 사용량은 이벤트 기반 Ansible 컨트롤러에서 처리해야 하는 이벤트 수를 기반으로 합니다. 기본적으로 각 룰북 활성화 컨테이너에는 200MB 메모리 제한이 있습니다. 예를 들어 CPU 4GB와 16GB의 RAM을 사용하면 할당된 200MB 메모리 제한이 있는 하나의 룰북 활성화 컨테이너는 분당 150,000개 이상의 이벤트를 처리할 수 없습니다. 병렬 실행 룰북 활성화 수가 높으면 각 룰북 활성화가 처리할 수 있는 최대 이벤트 수가 줄어듭니다. 매우 높은 속도로 들어오는 이벤트가 너무 많으면 컨테이너는 이벤트를 처리하려는 메모리가 부족할 수 있습니다. 그러면 컨테이너가 종료되고 룰북 활성화가 137개의 상태 코드와 함께 실패합니다.

이 상태를 완화하려면 설치 또는 설치 각 룰북 활성화에 대한 기본 메모리 제한을 수정할 수 있습니다.

프로세스

  1. 설치 중에 룰북 활성화에 대한 기본 메모리 제한을 수정하려면 다음 단계를 수행합니다.

    1. 설정 인벤토리 파일로 이동합니다.
    2. [all:vars] 섹션에 automationedacontroller_podman_mem_limit 를 추가합니다. 예를 들어 automationedacontroller_podman_mem_limit='400m' 입니다.
    3. 설정을 실행합니다.
  2. 설치 룰북 활성화에 대한 기본 메모리 제한을 수정하려면 다음 단계를 수행합니다.

    1. /etc/ansible-automation-platform/eda/settings.yaml 에서 환경 파일로 이동합니다.
    2. 기본 컨테이너 메모리 제한을 수정합니다. 예를 들어 PODMAN_MEM_LIMIT = '300m' 입니다.
    3. Automation- eda-controller-service 재시작을 사용하여 이벤트 기반 Ansible 컨트롤러 서비스를 다시 시작합니다.

11.3. 이벤트 기반 Ansible 컨트롤러에 대한 시스템 수준 모니터링

병렬로 실행 중인 룰북 활성화 수와 지정된 시점에서 수신하는 이벤트 수를 결정하기 위해 워크로드를 지정한 후 시스템 수준에서 이벤트 기반 Ansible 컨트롤러 호스트를 모니터링하는 것이 좋습니다. 시스템 수준 모니터링을 사용하여 시간이 지남에 따라 이벤트 기반 Ansible의 성능에 대한 정보를 검토하면 문제를 진단하거나 향후 성장을 위한 용량을 고려할 때 도움이 됩니다.

시스템 수준 모니터링에는 다음 정보가 포함됩니다.

  • 디스크 I/O
  • RAM 사용
  • CPU 사용
  • 네트워크 트래픽

CPU, RAM 또는 디스크 사용률이 높으면 Event-Driven Ansible 컨트롤러의 전반적인 성능에 영향을 미칠 수 있습니다. 예를 들어 이러한 시스템 수준 리소스의 높은 사용률은 Event-Driven Ansible 컨트롤러가 너무 많은 룰북 활성화를 실행 중이거나 일부 개별 룰북 활성화 중 하나가 많은 리소스를 사용하고 있음을 나타냅니다. 이 경우 워크로드를 지원하기 위해 시스템 수준 리소스를 늘려야 합니다.

12장. 이벤트 필터 플러그인

이벤트에는 불필요한 추가 데이터가 있고 규칙 엔진을 덮어쓸 수 있는 경우가 있습니다. 규칙에 중요한 사항에 집중할 수 있도록 이벤트 필터를 사용하여 추가 데이터를 제거합니다. 이벤트 필터에서는 규칙 조건이 데이터와 더 적합할 수 있도록 데이터의 형식을 변경할 수도 있습니다.

이벤트는 Python 코드로 정의되고 컬렉션으로 배포됩니다. 기본 eda 컬렉션에 는 다음과 같은 필터가 있습니다.

Expand
이름설명

json_filter

이 필터는 이벤트 오브젝트에서 키를 포함 및 제외

dashes_to_underscores

이 필터는 페이로드의 모든 키의 대시를 밑줄로 변경합니다.

ansible.eda.insert_hosts_to_meta

이 필터는 ansible-rulebook에서 해당 정보를 찾아 사용할 수 있도록 이벤트에 호스트 정보를 추가하는 데 사용됩니다.

ansible.eda.normalize_keys

이 필터는 알파 숫자 이외의 키를 밑줄로 변경하려는 경우에 사용됩니다.

이벤트 필터를 연결한 후 이벤트 필터를 연결할 수 있으며 업데이트된 데이터는 하나의 필터에서 다음으로 전송됩니다. 이벤트 필터는 소스를 정의한 후 룰북에 정의됩니다. 룰북이 소스 플러그인을 시작할 때 올바른 필터를 연결하고 데이터를 큐에 배치하기 전에 변환합니다.

sources:
  - name: azure_service_bus
    ansible.eda.azure_service_bus:
      conn_str: "{{connection_str}}"
      queue_name: "{{queue_name}}"
    filters:
      - json_filter:
          include_keys: ['clone_url']
          exclude_keys: ['*_url', '_links', 'base', 'sender', 'owner', 'user']
      - dashes_to_underscores:

이 예에서 데이터는 먼저 json_filter 를 통과한 다음 dashes_to_underscores 필터를 통해 전달됩니다. 이벤트 페이로드에서 키는 문자, 숫자, 밑줄만 포함할 수 있습니다. 마침표(.)는 중첩된 키에 액세스하는 데 사용됩니다.

모든 이벤트는 이벤트의 출처를 기록해야 하므로 eda.builtin.insert_meta_info소스 이름,유형, received_at 을 추가하기 위해 ansible-rulebook에 의해 자동으로 추가됩니다. received_at 는 UTC ISO8601 형식으로 날짜 시간을 저장하고 microseconds를 포함합니다. uuid 는 이벤트의 고유 ID를 저장합니다. 메타 키는 이벤트 및 이벤트에 대한 메타데이터를 저장하는 데 사용됩니다. aap-server에서 이벤트를 올바르게 보고하는 데 필요합니다.

12.1. 이벤트 필터 작성

이벤트 필터는 이벤트 데이터에서 변환을 수행하는 python 모듈의 함수입니다. 이벤트 데이터 구조에서 데이터를 제거, 추가, 변경 또는 이동할 수 있습니다. 이벤트 필터는 이벤트를 첫 번째 인수로 사용하고 추가 키워드 인수는 룰북의 구성에서 제공합니다.

기본 구조는 다음과 같습니다.

   # my_namespace.my_collection/extensions/eda/plugins/event_filter/my_filter.py
    def main(event: dict, arg1, arg2):
        # Process event data here
        return event

이 필터를 이벤트 소스의 필터 목록에 추가하여 룰북에서 사용할 수 있습니다.

  sources:
    - name: azure_service_bus
      ansible.eda.azure_service_bus:
        conn_str: "{{connection_str}}"
        queue_name: "{{queue_name}}"
      filters:
        - my_namespace.my_collection.my_filter:
            arg1: hello
            arg2: world

추가 리소스

13장. 이벤트 기반 Ansible 로깅 전략

이벤트 기반 Ansible은 리소스에 대한 감사 로깅 솔루션을 제공합니다. 지원되는 각 CRUD(생성, 읽기, 업데이트 및 삭제) 작업은 룰북 활성화, 이벤트 스트림, 의사 결정 환경, 프로젝트 및 활성화에 대해 기록됩니다. 이러한 리소스 중 일부는 동기화, 활성화, 비활성화, 재시작, 시작 및 중지와 같은 추가 작업을 지원합니다. 이러한 작업의 경우 로깅도 지원됩니다. 이러한 로그는 연결된 컨테이너의 라이프사이클에만 유지됩니다. 지원되는 각 로깅 작업에는 다음 샘플 로그를 참조하십시오.

13.1. 로깅 샘플

각 작업에 대해 다음 API를 호출하면 다음 감사 로그가 표시됩니다.

룰북 활성화
1. Create
    1. 2024-08-15 14:13:20,384 aap_eda.api.views.activation INFO   Action: Create / ResourceType: RulebookActivation / ResourceName: quick_start_project / ResourceID: 53 / Organization: Default
2. Read
    1. 2024-08-15 14:21:26,844 aap_eda.api.views.activation INFO   Action: Read / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
3. Disable
    1. 2024-08-15 14:23:57,798 aap_eda.api.views.activation INFO   Action: Disable / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
4. Enable
    1. 2024-08-15 14:24:16,472 aap_eda.api.views.activation INFO   Action: Enable / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
5. Delete
    1. 2024-08-15 14:24:53,847 aap_eda.api.views.activation INFO   Action: Delete / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
6. Restart
    2024-08-15 14:24:34,169 aap_eda.api.views.activation INFO      Action: Restart / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
EventStream Logs
1. Create
    1. 2024-08-15 13:46:26,903 aap_eda.api.views.webhook INFO     Action: Create / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: 1 / Organization: Default
2. Update
    1. 2024-08-15 13:56:17,440 aap_eda.api.views.webhook INFO     Action: Update / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: 1 / Organization: Default
3. Read
    1. 2024-08-15 13:56:56,271 aap_eda.api.views.webhook INFO     Action: Read / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: 1 / Organization: Default
4. List
    1. 2024-08-15 13:56:17,492 aap_eda.api.views.webhook INFO     Action: List / ResourceType: EventStream / ResourceName: * / ResourceID: * / Organization: *
5. Delete
    1. 2024-08-15 13:57:13,124 aap_eda.api.views.webhook INFO     Action: Delete / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: None / Organization: Default
의사 결정 환경
1. Create
    1. 2024-08-15 14:10:53,311 aap_eda.api.views.decision_environment INFO     Action: Create / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: 86 / Organization: Default
2. Read
    1. 2024-08-15 14:10:53,349 aap_eda.api.views.decision_environment INFO     Action: Read / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: 86 / Organization: Default
3. Update
    2024-08-15 14:11:20,970 aap_eda.api.views.decision_environment INFO     Action: Update / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: 86 / Organization: Default
4. Delete
2024-08-15 14:11:42,369 aap_eda.api.views.decision_environment INFO     Action: Delete / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: None / Organization: Default
프로젝트
1. Create
    1. 2024-08-15 14:05:26,874 aap_eda.api.views.project INFO     Action: Create / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
2. Read
    1. 2024-08-15 14:05:26,913 aap_eda.api.views.project INFO     Action: Read / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
3. Update
    1. 2024-08-15 14:06:08,255 aap_eda.api.views.project INFO     Action: Update / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
4. Sync
    1. 2024-08-15 14:06:30,580 aap_eda.api.views.project INFO     Action: Sync / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
5. Delete
    1. 2024-08-15 14:06:49,481 aap_eda.api.views.project INFO     Action: Delete / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
활성화 시작/중지
1. Start
    1. 2024-08-15 14:21:29,076 aap_eda.services.activation.activation_manager INFO     Requested to start activation 1, starting.
    2024-08-15 14:21:29,093 aap_eda.services.activation.activation_manager INFO     Creating a new activation instance for activation: 1
    2024-08-15 14:21:29,104 aap_eda.services.activation.activation_manager INFO     Starting container for activation instance: 1
2. Stop
    1. eda-activation-worker-1  | 2024-08-15 14:40:52,547 aap_eda.services.activation.activation_manager INFO     Stop operation requested for activation id: 2 Stopping activation.
    eda-activation-worker-1  | 2024-08-15 14:40:52,550 aap_eda.services.activation.activation_manager INFO     Activation 2 is already stopped.
    eda-activation-worker-1  | 2024-08-15 14:40:52,550 aap_eda.services.activation.activation_manager INFO     Activation manager activation id: 2 Activation restart scheduled for 1 second.
    eda-activation-worker-1  | 2024-08-15 14:40:52,562 rq.worker INFO     activation: Job OK (activation-2)

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동