개발자는 변경을 커밋할 때마다 온-프레미스 GitHub 인스턴스에서 자동화 클라우드 템플릿을 가져오는 파이프라인이 필요합니다. WordPress 애플리케이션을 AWS(Amazon Web Services) EC2 또는 데이터 센터에 배포하는 파이프라인이 필요합니다. Code Stream은 파이프라인에서 클라우드 템플릿을 호출하고 이 클라우드 템플릿의 CICD(지속적 통합 및 전달)를 자동화하여 애플리케이션을 배포합니다.

파이프라인을 생성하고 트리거하려면 VMware 클라우드 템플릿이 필요합니다.

Code Stream 클라우드 템플릿 작업의 클라우드 템플릿 소스에 대해 다음을 선택할 수 있습니다.

  • Cloud Assembly 템플릿을 소스 제어로 선택할 수 있습니다. 이 경우 GitLab 또는 GitHub 저장소는 필요하지 않습니다.
  • 소스 제어로 GitLab 또는 GitHub를 사용하는 경우 소스 제어를 선택합니다. 이 경우 Git Webhook이 있어야 하며 Webhook을 통해 파이프라인을 트리거해야 합니다.

GitHub 저장소에 YAML 클라우드 템플릿이 있고 파이프라인에서 클라우드 템플릿을 사용하려는 경우 다음 작업을 수행해야 합니다.

  1. Cloud Assembly에서 클라우드 템플릿을 GitHub 저장소로 푸시합니다.
  2. Code Stream에서 Git 끝점을 생성합니다. 그런 다음 Git 끝점과 파이프라인을 사용하는 Git Webhook을 생성합니다.
  3. 파이프라인을 트리거하려면 GitHub 저장소에 있는 모든 파일을 업데이트하고 변경을 커밋합니다.

GitHub 저장소에 YAML 클라우드 템플릿이 없고 소스 제어의 클라우드 템플릿을 사용하려는 경우 이 절차를 사용하면 그 방법을 알 수 있습니다. 이 절차는 WordPress 애플리케이션에 대한 클라우드 템플릿을 생성하고 온-프레미스 GitHub 저장소에서 이 클라우드 템플릿을 트리거하는 방법을 보여줍니다. YAML 클라우드 템플릿을 변경할 때마다 파이프라인이 애플리케이션의 릴리스를 트리거하고 자동화합니다.

  • Cloud Assembly에서 클라우드 계정을 추가하고, 클라우드 영역을 추가하고, 클라우드 템플릿을 생성합니다.
  • Code Stream에서 클라우드 템플릿을 호스팅하는 온-프레미스 GitHub 저장소에 대한 끝점을 추가합니다. 그런 다음 클라우드 템플릿을 파이프라인에 추가합니다.

이 사용 사례 예는 온-프레미스 GitHub 저장소의 클라우드 템플릿을 사용하는 방법을 보여줍니다.

워크플로는 YAML 클라우드 템플릿에서 배포하는 애플리케이션의 릴리스를 자동화하는 프로세스를 탐색하는 데 유용합니다.

사전 요구 사항

  • vRealize Automation Cloud Assembly 인프라에서 클라우드 계정 및 클라우드 영역을 추가합니다. vRealize Automation Cloud Assembly 설명서를 참조하십시오.
  • 다음 절차에서 클라우드 템플릿을 생성하려면 WordPress YAML 코드를 클립보드에 복사합니다. vRealize Automation Cloud Assembly 설명서의 WordPress 사용 사례에서 클라우드 템플릿 YAML 코드를 참조하십시오.
  • WordPress 애플리케이션의 YAML 코드를 GitHub 인스턴스에 추가합니다.
  • 변경 내용을 커밋할 때마다 파이프라인에서 YAML 코드를 끌어올 수 있도록 Git 트리거에 대한 Webhook를 추가합니다. Code Stream에서 트리거 > Git > Git에 대한 Webhook을 클릭합니다.
  • 클라우드 템플릿 작업을 사용하려면 Cloud Assembly 역할 중 하나가 있어야 합니다.

프로시저

  1. Cloud Assembly에서 다음 단계를 따릅니다.
    1. VMware Cloud Templates을 클릭한 다음, 클라우드 템플릿 및 WordPress 애플리케이션에 대한 배포를 생성합니다.
    2. 클립보드에 복사한 WordPress YAML 코드를 클라우드 템플릿에 붙여 넣고 배포합니다.
      YAML 코드를 사용하여 클라우드 템플릿은 배포에 데이터베이스 계층, 웹 계층 및 네트워크를 생성합니다.
  2. Code Stream에서 끝점을 생성합니다.
    1. YAML 파일이 상주하는 온 프레미스 GitHub 저장소에 대한 Git 끝점을 생성합니다.
    2. 파이프라인이 실행되면 파이프라인 상태를 사용자에게 알릴 수 있는 이메일 끝점을 추가합니다.
      이메일 끝점을 추가할 때 암호화 방법을 설정하고 아웃바운드 프로토콜을 설정합니다.
  3. 파이프라인을 생성하고 파이프라인 성공 및 실패에 대한 알림을 추가합니다.
    이메일 알림을 추가할 때 파이프라인 상태 중 하나를 선택하고 이메일 서버와 받는 사람을 선택합니다.
  4. 개발에 대한 단계를 추가하고 클라우드 템플릿 작업을 추가합니다.
    1. 시스템을 배포하는 클라우드 템플릿 작업을 추가하고, WordPress 애플리케이션에 클라우드 템플릿 YAML을 사용하도록 작업을 구성합니다.
      resources:
        DBTier:    
          type: Cloud.Machine    
          properties:      
              name: mysql      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  -   tag: zone:dev
        WebTier:
          type: Cloud.Machine    
          properties:     
              name: wordpress      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  - tag: zone:dev
       WP-Network-Private:
          type: Cloud.Network
          properties:
              name: WP-Network-Private
              networkType: existing
              constraints:
                  - tag: 'type:isolated-net'
                  - tag: 'zone:dev'
    2. 리소스를 확보하기 위해 시스템을 제거하는 클라우드 템플릿 작업을 추가합니다.
  5. 운영을 위한 단계를 추가하고 승인 및 배포 작업을 추가합니다.
    1. WordPress 애플리케이션을 운영 환경에 푸시하기 위해 승인을 요구하는 [사용자 작업] 작업을 추가합니다.
    2. 시스템을 배포하는 클라우드 템플릿 작업을 추가하고, WordPress 애플리케이션용 클라우드 템플릿 YAML을 사용하여 작업을 구성합니다.
      생성을 선택할 때 배포 이름이 고유해야 합니다. 이름을 비워 두면 Code Stream은 고유한 임의의 이름을 할당합니다.
      자체 사용 사례에서 롤백을 선택하는 경우 알아야 할 내용은 다음과 같습니다. 롤백 작업을 선택하고 롤백 버전을 선택하는 경우 버전은 n-X 형식이어야 합니다. 예를 들어 n-1, n-2, n-3 등을 사용할 수 있습니다. Code Stream 이외의 위치에서 배포를 생성하고 업데이트하는 경우 롤백이 허용됩니다.
      Code Stream에 로그인하면 30분 동안 유효한 사용자 토큰을 가져옵니다. 실행 기간이 긴 파이프라인의 경우 클라우드 템플릿 작업 이전의 작업을 실행하는 데 30분 이상이 소요되면 사용자 토큰이 만료됩니다. 따라서 클라우드 템플릿 작업이 실패합니다.
      파이프라인이 30분 이상 실행될 수 있도록 선택적 API 토큰을 입력할 수 있습니다. Code Stream에서 클라우드 템플릿을 호출하면 API 토큰이 유지되고 클라우드 템플릿 작업은 API 토큰을 계속 사용합니다.
      API 토큰을 변수로 사용하는 경우 토큰이 암호화됩니다. 그렇지 않으면 일반 텍스트로 사용됩니다.
      클라우드 템플릿 작업은 Cloud Assembly에서 VMware 클라우드 템플릿을 사용하거나 GitLab 저장소 또는 GitHub 저장소의 소스 제어에서 끌어올 수 있습니다.
  6. 파이프라인을 실행합니다.

    각 작업이 성공적으로 완료되었는지 확인하려면 실행에서 작업을 클릭하고 배포 세부 정보에서 상태를 검사하여 자세한 리소스 정보를 살펴봅니다.

  7. GitHub에서 WordPress 서버 인스턴스의 버전을 small에서 medium으로 수정합니다.
    변경 내용을 커밋하면 파이프라인이 트리거됩니다. 업데이트된 코드를 GitHub 저장소에서 끌어와서 애플리케이션을 구축합니다.
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. 파이프라인을 다시 실행한 후 파이프라인이 성공했는지 그리고 WordPress 인스턴스의 버전이 small에서 medium으로 변경되었는지 확인합니다.

결과

축하합니다! YAML 클라우드 템플릿에서 배포한 애플리케이션의 릴리스를 자동화했습니다.

다음에 수행할 작업

Code Stream 사용 방법에 대한 자세한 내용을 보려면 Code Stream 사용을 위한 자습서 항목을 참조하십시오.

추가로 참조하려면 Code Stream 관리자 및 개발자를 위한 추가 리소스 항목을 참조하십시오.