Ansible용 코드 생성

 파란 말풍선, 물음표, 체크 표시 등 다양한 도형과 기호가 포함된 흐름도
Ansible용 코드 생성

IBM watsonx Code Assistant(WCA) for Red Hat Ansible Lightspeed(RHAL)는 생성형 AI 기반 콘텐츠 추천을 통해 Ansible 플레이북 생성 프로세스를 명확하게 설명합니다. IT 자동화를 가속하기 위해 설계된 WCA for RHAL는 선도적인 개발 관행을 따르는 콘텐츠 추천을 제공하여 오류를 줄이고 Ansible 작업, 역할, 플레이북의 일관성을 향상시킵니다. WCA for RHAL는 일반 영어 텍스트로 작성된 자연어 요청을 사용하여 콘텐츠를 생성할 수도 있어 기업 내 자동화 접근을 확장하고 확장성을 높이는 데 도움을 줍니다.

WCA for RHAL는 Ansible 플레이북의 방대한 데이터 세트로 학습된 IBM® Granite 대규모 언어 모델(LLM)을 사용합니다. LLM은 기업 자체 데이터를 사용해 조정할 수 있으며 이를 통해 해당 기업의 자동화 구문과 구조의 세부적인 특성을 이해할 수 있습니다. 사용자는 제안을 그대로 수용하거나 필요에 맞게 콘텐츠 추천을 수정할 수 있으며 AI가 생성한 콘텐츠 추천을 통해 자동화의 가치 실현 시간을 더 단축하고 개발 주기를 가속할 수 있습니다.

 

솔루션 개요

IBM watsonx Code Assistant(WCA) for Red Hat Ansible Lightspeed(RHAL)는 생성을 통해 Ansible 플레이북 작성 과정을 쉽게 이해하고 수행할 수 있도록 지원합니다.
주요 구성 요소의 배치와 상호 연결을 보여주는 Ansible 코드 생성 솔루션의 개요입니다.

WCA for RHAL는 다음 구성 요소로 이루어져 있습니다(위의 다이어그램 참조).

  1. Ansible Playbook에는 서버, 컨테이너, 네트워크 장치, 클라우드 서비스와 같은 관리 대상 노드와 엔드포인트에서 자동화를 실행하는 데 필요한 코드가 포함됩니다.

     

  2. 플레이북 소스 코드 관리(SCM)는 Ansible 플레이북의 모든 운영 및 개발 브랜치를 관리하는 곳입니다. 사용 가능한 SCM 솔루션은 많지만 Git 기반 솔루션이 가장 널리 사용되므로 이후 설명에서는 이를 기준으로 합니다.

     

  3. Red Hat의 Ansible Automation Platform에는 Ansible 코어 엔진, linting 서비스, 배포 관리 서비스, Ansible 플레이북 실행 및 문제 해결을 위한 사용자 인터페이스가 포함됩니다. 일반적으로 SCM에서 병합이 발생할 때마다 업데이트된 플레이북을 가져오도록 구성됩니다.

     

  4. Red Hat Ansible Lightspeed는 자연어 프롬프트와 코드 컨텍스트를 읽어 IBM watsonx Code Assistant 서비스로 전송하여 파운데이션 모델 매칭을 수행하는 IBM® watsonx.ai 애플리케이션입니다. 이 애플리케이션은 콘텐츠와 매칭 감사 정보를 생성하여 VS Code로 다시 전송합니다.

     

  5. IBM watsonx Code Assistant Service(WCA for RHAL)는 Red Hat Ansible Lightspeed로부터 프롬프트 요청을 받아 대규모 언어 모델(LLM)과 매칭을 수행하는 IBM watsonx.ai 애플리케이션입니다. WCA for RHAL는 추가적인 Ansible 플레이북 데이터 세트를 사용해 LLM을 학습시킬 수도 있습니다. IBM watsonx Code Assistant와 Red Hat Ansible Lightspeed는 함께 작동하여 선도적인 개발 관행을 따르는 완전하고 정확한 콘텐츠 생성 제안을 제공합니다.

     

  6. 코드 대규모 언어 모델(LLM)은 Ansible용 IBM Granite 모델을 기반으로 한 콘텐츠 생성용 파운데이션 모델입니다. 또한 공급업체나 기업 사용자에 의해 생성된 추가 플레이북 코드를 포함하도록 학습될 수도 있습니다.

     

    사용 및 워크스루

IBM watsonx Code Assistant(WCA) for Red Hat Ansible Lightspeed(RHAL)는 생성을 통해 Ansible 플레이북 작성 과정을 쉽게 이해하고 수행할 수 있도록 지원합니다. 새로운 Ansible 코드 생성을 위해 구성 요소 간 통신 흐름을 보여주는 솔루션 워크스루입니다.

위의 다이어그램은 WCA for RHAL의 구성 요소들이 어떻게 함께 작동하여 Ansible 플레이북 작성 시간을 줄이고 일관성을 향상시키는지를 보여줍니다.

  1. 개발자는 Playbook SCM의 코드 저장소에서 최신 Ansible Playbook 코드를 가져와 VS Code에서 엽니다.

  2. 개발자는 자연어 프롬프트 형태로 Ansible 작업을 추가합니다(예: name: Install httpd.conf using a template).

  3. Ansible Extension for VS Code는 IBM watsonx Code Assistant 서비스에 Lightspeed 요청을 보냅니다.

  4. IBM watsonx Code Assistant는 자연어 프롬프트에 대한 응답을 생성합니다. 이 응답은 LLM의 내용뿐 아니라 파일 내의 기존 코드, 변수, 기타 정보에서 얻을 수 있는 모든 컨텍스트를 기반으로 생성됩니다.

  5. IBM watsonx Code Assistant는 자연어 프롬프트에 대한 응답을 Ansible 코드(YAML) 형태로 전송합니다. 생성된 콘텐츠의 예시는 아래와 같습니다. ansible.builtin.template:

      src:httpd.conf.j2
      dest:/etc/httpd/conf/httpd.conf
      mode:“0644”
      owner:root
      group:root

  6. 개발자는 AI가 생성한 콘텐츠 제안을 수용하거나 수정한 뒤 변경 사항을 커밋하고 Playbook SCM의 저장소로 푸시합니다.

  7. Red Hat Ansible Automation Platform에 구성된 Ansible Project는 Playbook SCM의 업데이트를 감지하고 업데이트된 코드를 다운로드한 뒤 지정된 엔드포인트에서 업데이트된 플레이북을 실행합니다.

전제조건

  • MacOS 또는 Linux용 Microsoft Visual Studio Code
  • python3
  • ansible, ansible-lint
  • VS Code용 Ansible Extension
  • Red Hat Ansible Automation Platform
  • RedHat.com 또는 GitHub.com 계정
  • IBM watsonx Code Assistant 연결
  • Windows용 Microsoft Visual Studio Code
  • Windows Services for Linux(WSL) 버전 2
  • WSL용 Fedora 37, CentOS 또는 RHEL 8 컨테이너 베이스
  • 위와 동일하게 python3, ansible, ansible-lint
IBM® watsonx Code Assistant의 주요 기능
  • 코드 생성: Ansible 작업 설명에 자연어 입력을 사용하여 Ansible 플레이북 생성 과정을 단순화합니다.
  • 코딩 표준 적용: 공개 및 기업의 선도적인 개발 관행을 따르는 Ansible 콘텐츠를 학습할 수 있게 하며 이에 따라 해당 표준을 따르는 코드를 생성합니다.
  • 생산성 향상: AI가 생성한 코드 추천을 통합 개발 환경(IDE)에 직접 통합합니다.
다음 단계

하이브리드 클라우드 배포 패턴 구현에 대해 전문가와 상담하세요.

기고자

Al Hamid, Pete Nuwayser, Chris Kirby, Mihai Criveti

업데이트 날짜: 2023년 12월 5일