7장. 애플리케이션 배포

JBoss EAP에는 관리자와 개발자 모두에 적용할 수 있는 다양한 애플리케이션 배포 및 구성 옵션이 있습니다. 관리자의 경우 관리 콘솔과 관리 CLI 는 프로덕션 환경에서 애플리케이션 배포를 관리하는 데 이상적인 그래픽 및 명령줄 인터페이스를 제공합니다. 개발자의 경우 애플리케이션 배포 테스트 옵션에는 구성 가능한 파일 시스템 배포 스캐너, HTTP API, Red Hat CodeReady Studio, Maven 등의 IDE가 포함됩니다.

애플리케이션을 배포하는 경우 org.jboss.metadata.parser.validate 시스템 속성을 true 로 설정하여 배포 설명자에 대한 검증을 활성화할 수 있습니다. 다음 방법 중 하나를 수행할 수 있습니다.

  • 서버를 시작하는 동안.

    $ EAP_HOME/bin/standalone.sh -Dorg.jboss.metadata.parser.validate=true
  • 다음 관리 CLI 명령을 사용하여 서버 구성에 추가하면 됩니다.

    /system-property=org.jboss.metadata.parser.validate:add(value=true)

7.1. 관리 CLI를 사용하여 애플리케이션 배포

관리 CLI를 사용하여 애플리케이션을 배포하면 배포 스크립트를 생성하고 실행할 수 있는 단일 명령줄 인터페이스가 제공됩니다. 이 스크립팅 기능을 사용하여 특정 애플리케이션 배포 및 관리 시나리오를 구성할 수 있습니다. 독립 실행형 서버로 실행할 때 단일 서버에 대한 배포를 관리하거나 관리형 도메인에서 실행할 때 전체 서버 네트워크를 관리할 수 있습니다.

7.1.1. 관리 CLI를 사용하여 독립 실행형 서버에 애플리케이션 배포

애플리케이션 배포

관리 CLI에서 배포 deploy-file 명령을 사용하고 애플리케이션 배포 경로를 지정합니다.

deployment deploy-file /path/to/test-application.war

배포가 성공하면 관리 CLI에 대한 출력이 생성되지 않지만 서버 로그에 배포 메시지가 표시됩니다.

WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war")
WFLYUT0021: Registered web context: /test-application
WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")

마찬가지로 다음 배포 명령을 사용할 수 있습니다.

  • 배포 deploy-cli-archive 를 사용하여 .cli 아카이브 파일에서 콘텐츠를 배포합니다. CLI 배포 아카이브는 .cli 확장자가 있는 JAR 파일입니다. 배포해야 하는 애플리케이션 아카이브와 CLI 스크립트 파일, deploy.scr 및 undeploy.scr 을 포함하고 명령 및 작업이 포함되어 있습니다. 하나의 스크립트 파일인 deploy.scr 에는 애플리케이션 아카이브를 배포하고 환경을 설정하는 명령과 작업이 포함되어 있습니다. 다른 스크립트 파일인 undeploy.scr 에는 애플리케이션 아카이브 배포를 취소하고 환경을 정리하는 명령이 포함되어 있습니다.
  • 배포 deploy-url 을 사용하여 URL에서 참조하는 콘텐츠를 배포합니다.

배포 활성화 명령을 사용하여 비활성화된 애플리케이션을 활성화할 수도 있습니다.

참고

-- runtime-name 옵션을 사용하여 runtime-name 속성을 지정하는 경우 이름에 .war 확장을 포함해야 합니다. 그렇지 않으면 웹 컨텍스트는 JBoss EAP에 의해 등록되지 않습니다.

애플리케이션 배포 취소

관리 CLI에서 배포 undeploy 명령을 사용하고 배포 이름을 지정합니다. 그러면 리포지토리에서 배포 콘텐츠가 삭제됩니다. 배포를 취소할 때 배포 콘텐츠를 유지하기 위해 애플리케이션 비활성화 를 참조하십시오.

deployment undeploy test-application.war

배포가 완료되면 관리 CLI에 대한 출력이 생성되지 않지만 서버 로그에 배포되지 않은 메시지가 표시됩니다.

WFLYUT0022: Unregistered web context: /test-application
WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 62ms
WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")

마찬가지로 배포 undeploy-cli-archive를 사용하여 .cli 아카이브 파일에서 콘텐츠 배포를 취소할 수 있습니다. 와일드카드(*)를 사용하여 모든 배포 배포를 취소할 수도 있습니다.

deployment undeploy *
애플리케이션 비활성화

리포지토리에서 배포 콘텐츠를 제거하지 않고 배포된 애플리케이션을 비활성화합니다.

deployment disable test-application.war

배포 disable-all 명령을 사용하여 모든 배포를 비활성화할 수 있습니다.

deployment disable-all
애플리케이션 활성화

배포된 애플리케이션을 비활성화합니다.

deployment enable test-application.war

배포 enable-all 명령을 사용하여 모든 배포를 활성화할 수 있습니다.

deployment enable-all
배포 나열

관리 CLI에서 배포 info 명령을 사용하여 배포 정보를 나열합니다.

deployment info

출력에 런타임 이름, 상태, 활성화 여부와 같은 각 배포에 대한 세부 정보가 표시됩니다.

NAME                 RUNTIME-NAME         PERSISTENT ENABLED STATUS
helloworld.war       helloworld.war       true       true    OK
test-application.war test-application.war true       true    OK

이름으로 배포 정보를 표시하려면 다음을 수행합니다.

deployment info helloworld.war

배포 list 명령을 사용하여 모든 배포를 나열 할 수도 있습니다.

7.1.2. 관리 CLI를 사용하여 관리형 도메인에 애플리케이션 배포

애플리케이션 배포

관리 CLI에서 배포 deploy-file 명령을 사용하고 애플리케이션 배포 경로를 지정합니다. 또한 애플리케이션을 배포해야 하는 서버 그룹을 지정해야 합니다.

  • 애플리케이션을 모든 서버 그룹에 배포하려면 다음을 수행합니다.

    deployment deploy-file /path/to/test-application.war --all-server-groups
  • 애플리케이션을 특정 서버 그룹에 배포하려면 다음을 수행합니다.

    deployment deploy-file /path/to/test-application.war --server-groups=main-server-group,other-server-group

배포가 성공하면 관리 CLI에 대한 출력이 생성되지 않지만, 서버 로그에 영향을 받는 각 서버에 대한 배포 메시지가 표시됩니다.

[Server:server-one] WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war")
[Server:server-one] WFLYUT0021: Registered web context: /test-application
[Server:server-one] WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")

마찬가지로 다음 배포 명령을 사용할 수 있습니다.

  • 배포 deploy-cli-archive 명령을 사용하여 .cli 아카이브 파일에서 콘텐츠를 배포합니다. CLI 배포 아카이브는 .cli 확장자가 있는 JAR 파일입니다. 배포해야 하는 애플리케이션 아카이브와 CLI 스크립트 파일, deploy.scr 및 undeploy.scr 을 포함하고 명령 및 작업이 포함되어 있습니다. 하나의 스크립트 파일인 deploy.scr 에는 애플리케이션 아카이브를 배포하고 환경을 설정하는 명령과 작업이 포함되어 있습니다. 다른 스크립트 파일인 undeploy.scr 에는 애플리케이션 아카이브 배포를 취소하고 환경을 정리하는 명령이 포함되어 있습니다.
  • 배포 deploy-url 명령을 사용하여 URL에서 참조하는 콘텐츠를 배포합니다.

배포 활성화 명령을 사용하여 비활성화된 애플리케이션을 활성화할 수도 있습니다.

참고

-- runtime-name 옵션을 사용하여 runtime-name 속성을 지정하는 경우 이름에 .war 확장을 포함해야 합니다. 그렇지 않으면 웹 컨텍스트는 JBoss EAP에 의해 등록되지 않습니다.

애플리케이션 배포 취소

관리 CLI에서 배포 undeploy 명령을 사용하고 배포 이름을 지정합니다. 또한 애플리케이션을 배포 취소해야 하는 서버 그룹을 지정해야 합니다. 특정 서버 그룹에서 배포 취소를 위해 애플리케이션 비활성화 를 참조하십시오.

해당 배포를 사용하여 모든 서버 그룹에서 애플리케이션 배포를 취소합니다.

deployment undeploy test-application.war --all-relevant-server-groups

배포가 성공하면 관리 CLI에 대한 출력을 생성하지 않지만, 서버 로그에 영향을 받는 각 서버에 대한 배포 취소 메시지가 표시됩니다.

[Server:server-one] WFLYUT0022: Unregistered web context: /test-application
[Server:server-one] WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 74ms
[Server:server-one] WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")

마찬가지로 배포 undeploy-cli-archive 명령을 사용하여 .cli 아카이브 파일에서 콘텐츠 배포를 취소할 수 있습니다. 와일드카드(*)를 사용하여 모든 배포 배포를 취소할 수도 있습니다.

deployment undeploy * --all-relevant-server-groups
애플리케이션 비활성화

배포된 애플리케이션을 특정 서버 그룹에서 비활성화하고 해당 배포가 있는 다른 서버 그룹의 리포지토리에 콘텐츠를 유지합니다.

deployment disable test-application.war --server-groups=other-server-group

배포 disable-all 명령을 사용하여 모든 배포를 비활성화할 수 있습니다.

deployment disable-all --server-groups=other-server-group
애플리케이션 활성화

배포된 애플리케이션을 비활성화합니다.

deployment enable test-application.war

배포 enable-all 명령을 사용하여 모든 배포를 활성화할 수 있습니다.

deployment enable-all --server-groups=other-server-group
배포 나열

관리 CLI에서 배포 info 명령을 사용하여 배포 정보를 나열합니다. 배포 이름 또는 서버 그룹별로 배포 정보를 나열할 수 있습니다.

이름으로 배포 정보를 표시하려면 다음을 수행합니다.

deployment info helloworld.war

출력에 각 서버 그룹의 배포 및 해당 상태가 나열됩니다.

NAME               RUNTIME-NAME
helloworld.war     helloworld.war

SERVER-GROUP       STATE
main-server-group  enabled
other-server-group added

서버 그룹별로 배포 정보를 표시하려면 다음을 수행합니다.

deployment info --server-group=other-server-group

출력에 지정된 서버 그룹에 대한 배포 및 해당 상태가 나열됩니다.

NAME                 RUNTIME-NAME         STATE
helloworld.war       helloworld.war       added
test-application.war test-application.war enabled

배포 list 명령을 사용하여 도메인의 모든 배포를 나열 할 수도 있습니다.