3.5. 구성 데이터


3.5.1. 독립 실행형 서버 구성 파일

독립 실행형 구성 파일은 EAP_HOME/standalone/configuration/ 디렉터리에 있습니다. 사전 정의된 5개의 프로필(기본값, ha, full ,full -ha ,load-balancer) 각각에 대해 별도의 파일이 있습니다. 다음은 JBoss EAP를 시작할 때 관리 CLI를 사용하여 수정할 수 있는 구성 파일의 예입니다.

Expand
표 3.2. 독립 실행형 구성 파일
구성 파일목적

standalone.xml

이 독립 실행형 구성 파일은 Jakarta EE 웹 프로파일 인증 구성과 JBoss EAP가 독립 실행형 서버를 시작할 때 사용하는 기본 구성입니다. 이 구성에는 Jakarta EE 웹 프로필에 대해 하위 시스템, 네트워킹, 배포, 소켓 바인딩 및 기타 구성 가능한 세부 정보를 포함하여 서버에 대한 모든 정보가 포함되어 있습니다. 이 구성은 메시징 또는 고가용성에 필요한 하위 시스템을 제공하지 않습니다.

standalone-ha.xml

이 독립 실행형 구성 파일은 고가용성이 있는 Jakarta EE 웹 프로필 인증 구성이며 모든 기본 하위 시스템을 포함하며 고가용성에 필요한 modclusterjgroups 하위 시스템을 추가합니다. 메시징에 필요한 하위 시스템을 제공하지 않습니다.

standalone-full.xml

이 독립 실행형 구성 파일은 Jakarta EE 전체 플랫폼 인증 구성이며 모든 기본 하위 시스템을 포함하며 messaging-activemqiiop-openjdk 하위 시스템을 추가합니다. 고가용성에 필요한 하위 시스템을 제공하지 않습니다.

standalone-full-ha.xml

이 독립 실행형 구성 파일은 Jakarta EE 완전 플랫폼 인증 구성이며 메시징 및 고가용성을 위한 항목을 포함하여 가능한 모든 하위 시스템에 대한 지원을 포함합니다.

standalone-load-balancer.xml

이 독립 실행형 구성 파일에는 다른 JBoss EAP 인스턴스를 로드 밸런싱하기 위해 기본 제공 mod_cluster 프런트 엔드 로드 밸런서를 사용하는 데 필요한 최소 하위 시스템이 포함되어 있습니다.

기본적으로 JBoss EAP를 독립 실행형 서버로 시작하면 standalone.xml 파일이 사용됩니다. 다른 구성으로 JBoss EAP를 시작하려면 --server-config 인수를 사용합니다. 예를 들면 다음과 같습니다.

$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
YAML 파일을 사용하여 독립 실행형 서버 업데이트

YAML 파일을 사용하여 독립 실행형 서버를 구성하면 사용자 지정 프로세스가 외부화되고 서버 업그레이드 속도가 향상됩니다. 이 기능을 사용하면 서버가 읽기 전용 모드로 시작됩니다. 즉, 서버를 다시 시작한 후에는 구성 변경 사항이 유지되지 않습니다.

참고

관리형 도메인의 서버에서 YAML 구성은 지원되지 않습니다.

사용자는 YAML 파일에서 다양한 리소스를 수정할 수 있습니다. YAML 파일에서 지원되는 요소는 다음과 같습니다.

  • core-service
  • 인터페이스
  • socket-binding-group
  • 하위 시스템
  • system-property

YAML 파일에서는 다음 요소가 지원되지 않습니다.

  • extension: 서버에 확장을 추가합니다. 이 요소는 누락된 모듈이 필요할 수 있으므로 지원되지 않습니다.
  • deployment: 서버에 배포를 추가합니다. 이 요소는 구성 외에도 보다 광범위한 변경이 필요하기 때문에 지원되지 않습니다.
  • deployment-overlay: 서버에 deployment-overlays를 추가합니다. 이 요소는 구성 외에도 보다 광범위한 변경이 필요하기 때문에 지원되지 않습니다.
  • path: YAML 파일을 구문 분석할 때 이미 정의되어 있습니다.

YAML 루트 노드는 Wildfly-configuration 입니다. 모델 트리에 따라 리소스를 수정할 수 있습니다. 리소스가 이미 존재하는 경우( XML 구성 파일 또는 이전 YAML 파일에 의해 생성됨) 모델 트리를 사용하여 해당 리소스를 업데이트할 수 있습니다. 리소스가 없는 경우 모델 트리를 사용하여 리소스를 생성할 수 있습니다.

새 PostGresql 데이터 소스를 정의하는 YAML 구성 파일의 예

wildfly-configuration:
  subsystem:
    datasources:
      jdbc-driver:
        postgresql:
          driver-name: postgresql
          driver-xa-datasource-class-name: org.postgresql.xa.PGXADataSource
          driver-module-name: org.postgresql.jdbc
      data-source:
        PostgreSQLDS:
          enabled: true
          exception-sorter-class-name: org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter
          jndi-name: java:jboss/datasources/PostgreSQLDS
          jta: true
          max-pool-size: 20
          min-pool-size: 0
          connection-url: "jdbc:postgresql://localhost:5432}/demo"
          driver-name: postgresql
          user-name: postgres
          password: postgres
          validate-on-match: true
          background-validation: false
          background-validation-millis: 10000
          flush-strategy: FailingConnectionOnly
          statistics-enable: false
          stale-connection-checker-class-name: org.jboss.jca.adapters.jdbc.extensions.novendor.NullStaleConnectionChecker
          valid-connection-checker-class-name: org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker
          transaction-isolation: TRANSACTION_READ_COMMITTED

위의 예제에서는 postgresql 라는 jdbc-driverPostgreSQLDS 라는 데이터 소스 를 정의합니다.

참고

YAML 구성 파일을 사용하여 모듈을 관리할 수 없습니다. 대신 수동으로 또는 관리 CLI를 사용하여 org.postgresql.jdbc 모듈을 생성하거나 프로비저닝해야 합니다.

3.5.1.1. 태그를 사용한 YAML 파일 작업

태그를 사용하여 YAML 구성 파일에서 여러 작업을 수행할 수 있습니다.

  • !undefine: 특성을 정의하지 않음

    정의되지 않은 CONSOLE 로거 수준 YAML 구성 파일 예

    wildfly-configuration:
        subsystem:
            logging:
              console-handler:
                CONSOLE:
                  level: !undefine

  • !remove : 리소스 제거

    임베디드 Artemis 브로커를 제거하고 원격 브로커 YAML 구성 파일에 연결

    wildfly-configuration:
      socket-binding-group:
        standard-sockets:
          remote-destination-outbound-socket-binding:
            remote-artemis:
              host: localhost
              port: 61616
      subsystem:
        messaging-activemq:
          server:
            default: !remove
          remote-connector:
            artemis:
              socket-binding: remote-artemis
          pooled-connection-factory:
            RemoteConnectionFactory:
              connectors:
                - artemis
              entries:
                - "java:jboss/RemoteConnectionFactory"
                - "java:jboss/exported/jms/RemoteConnectionFactory"
              enable-amq1-prefix: false
              user: admin
              password: admin
        ejb3:
          default-resource-adapter-name: RemoteConnectionFactory
        ee:
          service:
            default-bindings:
              jms-connection-factory: "java:jboss/RemoteConnectionFactory"

  • !list-add : 목록에 요소를 추가 (선택 사항 인덱스 사용)

    권한 목록 YAML 구성 파일에 RemoteTransactionPermission 추가

    wildfly-configuration:
        subsystem:
            elytron:
              permission-set:
               default-permissions:
                 permissions: !list-add
                  - class-name: org.wildfly.transaction.client.RemoteTransactionPermission
                    module: org.wildfly.transaction.client
                    target-name: "*"
                    index: 0

    참고

    인덱스 특성이 정의되지 않은 경우 목록 끝에 항목이 추가됩니다.

3.5.1.2. YAML 파일을 사용하여 독립 실행형 서버 시작

YAML 구성 파일을 사용하여 독립 실행형 서버를 시작할 수 있습니다.

프로세스

  1. 터미널을 엽니다.
  2. 다음 명령을 사용하여 YAML 파일로 독립 실행형 서버를 시작합니다.

    ./standalone.sh -y=/home/ehsavoie/dev/wildfly/config2.yml:config.yml -c standalone-full.xml

    --yaml 또는 -y 인수를 사용하면 YAML 파일 목록을 전달할 수 있습니다. Windows Server의 경우 (;) 또는 Mac 및 Unix 기반 운영 체제의 경우 콜론(:)을 사용하여 각 YAML 파일 경로를 분리해야 합니다. 절대 경로, 현재 실행 디렉터리를 기준으로 하는 경로 또는 독립 실행형 구성 디렉터리와 관련된 경로를 사용할 수 있습니다.

    이 작업은 파일이 정의되고 초기 작업이 XML 구성으로 정의되는 순서대로 적용됩니다.

3.5.2. 관리형 도메인 구성 파일

관리형 도메인 구성 파일은 EAP_HOME/domain/configuration/ 디렉터리에 있습니다. 다음은 JBoss EAP를 시작할 때 관리 CLI를 사용하여 수정할 수 있는 구성 파일의 예입니다.

Expand
표 3.3. 관리형 도메인 구성 파일
구성 파일목적

domain.xml

관리형 도메인의 기본 구성 파일입니다. 도메인 컨트롤러만 이 파일을 읽습니다. 이 파일에는 모든 프로필(기본값, ha, full ,full -ha ,load-balancer)에 대한 구성이 포함되어 있습니다.

host.xml

이 파일에는 네트워크 인터페이스, 소켓 바인딩, 호스트 이름 및 기타 호스트별 세부 정보와 같이 관리형 도메인의 물리적 호스트와 관련된 구성 세부 정보가 포함됩니다. host.xml 파일은 자신을 관리형 도메인 컨트롤러로 정의하고 서버 인스턴스를 시작할 수 있습니다. 이 표에 설명된 host-primary.xmlhost-secondary.xml 의 모든 기능을 포함합니다.

host-primary.xml

이 파일에는 서버를 관리형 도메인 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함됩니다. host-primary.xml 파일은 자신을 도메인 컨트롤러로 정의하고 서버 인스턴스를 정의하지 않습니다.

host-secondary.xml

이 파일에는 서버를 관리형 도메인 호스트 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함됩니다. 도메인 컨트롤러를 정의하지 않으며, 연결할 host-secondary.xml 의 도메인 컨트롤러 주소를 구성해야 합니다. 이 xml 파일은 host-secondary.xml 이 머신에서 실행되고 원격 도메인 컨트롤러에서 관리하는 구성을 나타냅니다. 시스템은 호스트 컨트롤러 역할을 하여 서버 인스턴스를 정의하고 시작합니다. 도메인 컨트롤러는 이러한 서버 인스턴스를 관리합니다.

기본적으로 관리형 도메인에서 JBoss EAP를 시작하면 host.xml 파일이 사용됩니다. 다른 구성으로 JBoss EAP를 시작하려면 --host-config 인수를 사용합니다. 예를 들면 다음과 같습니다.

$ EAP_HOME/bin/domain.sh --host-config=host-primary.xml

3.5.3. 구성 데이터 백업

JBoss EAP 서버 구성을 복원하려면 다음 위치에서 데이터를 백업해야 합니다.

  • EAP_HOME/standalone/configuration/

    • 전체 디렉터리를 백업하여 독립 실행형 서버의 사용자 데이터, 서버 구성 및 로깅 설정을 저장합니다.
  • EAP_HOME/standalone/data

    • data/content 디렉터리에 제한된 관리 배포에 대한 데이터를 백업합니다.
  • EAP_HOME/standalone/deployments

    • 독립 실행형 서버를 위한 배포를 백업합니다.
  • EAP_HOME/domain/configuration/

    • 사용자 및 프로필 데이터, 도메인 및 호스트 구성, 관리형 도메인의 로깅 설정을 저장하기 위해 전체 디렉터리를 백업합니다.
  • EAP_HOME/domain/data

    • 데이터/콘텐츠 디렉터리에 제한된 관리형 도메인에서 관리형 도메인 및 배포에 대한 데이터를 백업합니다.
  • EAP_HOME/modules/

    • 사용자 지정 모듈을 백업합니다.
  • EAP_HOME/welcome-content/

    • 사용자 정의 시작 콘텐츠를 백업합니다.
  • EAP_HOME/bin/

    • 사용자 지정 스크립트 또는 시작 구성 파일을 백업합니다.

3.5.4. 구성 파일 스냅샷

서버의 유지 관리 및 관리를 지원하기 위해 JBoss EAP는 시작 시 원본 구성 파일의 타임스탬프가 지정된 버전을 생성합니다.

관리 작업에서 변경한 추가 구성 변경으로 인해 원래 파일이 자동으로 백업되고 참조 및 롤백을 위해 인스턴스의 작업 사본이 보존됩니다. 또한 현재 서버 구성의 지정 시간 복사본인 구성 스냅샷을 가져올 수 있습니다. 이러한 스냅샷은 관리자가 저장하고 로드할 수 있습니다.

다음 예제에서는 standalone.xml 파일을 사용하지만 domain.xmlhost.xml 파일에 동일한 프로세스가 적용됩니다.

스냅샷 가져오기

관리 CLI를 사용하여 현재 구성의 스냅샷을 만듭니다.

:take-snapshot
{
    "outcome" => "success",
    "result" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot/20151022-133109702standalone.xml"
}
스냅샷 나열

관리 CLI를 사용하여 모든 스냅샷을 나열합니다.

:list-snapshots
{
    "outcome" => "success",
    "result" => {
        "directory" => "EAP_HOME/standalone/configuration/standalone_xml_history/snapshot",
        "names" => [
            "20151022-133109702standalone.xml",
            "20151022-132715958standalone.xml"
        ]
    }
}
스냅샷 삭제

관리 CLI를 사용하여 스냅샷을 삭제합니다.

:delete-snapshot(name=20151022-133109702standalone.xml)

3.5.5. 스냅샷으로 서버 시작

스냅샷 또는 자동으로 저장된 구성 버전을 사용하여 서버를 시작할 수 있습니다.

사전 요구 사항

  • JBoss EAP를 설치했습니다.
  • 구성 파일의 스냅샷을 작성했습니다.

프로세스

  1. EAP_HOME/standalone/configuration/standalone_xml_history 디렉터리로 이동하여 로드할 스냅샷 또는 저장된 구성 파일을 식별합니다.
  2. 서버를 시작하고 선택한 구성 파일을 가리킵니다. 구성 디렉터리인 EAP_HOME/standalone/configuration/ 에 상대적인 파일 경로를 전달합니다.

    $ EAP_HOME/bin/standalone.sh --server-config=standalone_xml_history/snapshot/20151022-133109702standalone.xml
참고

관리형 도메인에서 서버를 실행하는 경우 구성 파일을 지정하는 대신 --host-config--domain-config=<config > 인수를 사용합니다.

3.5.6. 구성 변경 보기

JBoss EAP를 사용하여 실행 중인 시스템의 구성 변경 사항을 추적할 수 있습니다. 이를 통해 관리자는 다른 권한 있는 사용자가 변경한 구성 변경 내역을 볼 수 있습니다.

중요

변경 사항은 메모리에 저장되며 서버를 다시 시작하면 유지되지 않습니다. 이 기능은 관리 감사 로깅 을 대체하지 않습니다.

관리 CLI 또는 관리 콘솔에서 추적을 활성화하고 구성 변경 사항을 볼 수 있습니다.

관리 CLI에서 구성 변경 사항 추적 및 보기

구성 변경 사항을 추적하려면 다음 관리 CLI 명령을 사용합니다. max-history 특성을 사용하여 저장할 항목 수를 지정할 수 있습니다.

/subsystem=core-management/service=configuration-changes:add(max-history=20)
참고

관리형 도메인에서 호스트 및 서버 관련 수정 사항에 대한 호스트 수준에서 구성 변경 사항이 추적됩니다. 호스트 컨트롤러에 대한 구성 변경을 활성화하면 모든 관리 서버에 대해 이를 수행할 수 있습니다. 다음 명령을 사용하여 호스트당 구성 변경 사항을 추적할 수 있습니다.

/host=HOST_NAME/subsystem=core-management/service=configuration-changes:add(max-history=20)

최신 구성 변경 목록을 보려면 다음 관리 CLI 명령을 사용합니다.

/subsystem=core-management/service=configuration-changes:list-changes
참고

관리형 도메인에서 다음 명령을 사용하여 호스트의 구성 변경 사항을 나열할 수 있습니다.

/host=HOST_NAME/subsystem=core-management/service=configuration-changes:list-changes

다음 명령을 사용하여 특정 서버에 영향을 주는 구성 변경 사항을 나열할 수 있습니다.

/host=HOST_NAME/server=SERVER_NAME/subsystem=core-management/service=configuration-changes:list-changes

그러면 날짜, 원본, 결과 및 작업 세부 정보가 포함된 각 구성 변경 사항이 나열됩니다. 예를 들어 list-changes 명령의 아래 출력은 가장 최근 표시된 구성 변경 사항을 표시합니다.

{
    "outcome" => "success",
    "result" => [
        {
            "operation-date" => "2016-02-12T18:37:00.354Z",
            "access-mechanism" => "NATIVE",
            "remote-address" => "127.0.0.1/127.0.0.1",
            "outcome" => "success",
            "operations" => [{
                "address" => [],
                "operation" => "reload",
                "operation-headers" => {
                    "caller-type" => "user",
                    "access-mechanism" => "NATIVE"
                }
            }]
        },
        {
            "operation-date" => "2016-02-12T18:34:16.859Z",
            "access-mechanism" => "NATIVE",
            "remote-address" => "127.0.0.1/127.0.0.1",
            "outcome" => "success",
            "operations" => [{
                "address" => [
                    ("subsystem" => "datasources"),
                    ("data-source" => "ExampleDS")
                ],
                "operation" => "write-attribute",
                "name" => "enabled",
                "value" => false,
                "operation-headers" => {
                    "caller-type" => "user",
                    "access-mechanism" => "NATIVE"
                }
            }]
        },
        {
            "operation-date" => "2016-02-12T18:24:11.670Z",
            "access-mechanism" => "HTTP",
            "remote-address" => "127.0.0.1/127.0.0.1",
            "outcome" => "success",
            "operations" => [{
                "operation" => "remove",
                "address" => [
                    ("subsystem" => "messaging-activemq"),
                    ("server" => "default"),
                    ("jms-queue" => "ExpiryQueue")
                ],
                "operation-headers" => {"access-mechanism" => "HTTP"}
            }]
        }
    ]
}

이 예에서는 구성에 영향을 준 세 가지 작업의 세부 정보를 나열합니다.

  • 관리 CLI에서 서버를 다시 로드합니다.
  • 관리 CLI에서 ExampleDS 데이터 소스 비활성화.
  • 관리 콘솔에서 ExpiryQueue 대기열 제거.
관리 콘솔에서 구성 변경 사항 추적 및 보기

관리 콘솔에서 구성 변경 사항을 추적할 수 있도록 런타임 탭으로 선택하고 서버 또는 호스트로 이동하여 변경 사항을 추적하고 드롭다운에서 구성 변경 사항을 선택합니다. 구성 변경 사항 사용을 클릭하고 최대 기록 값을 제공합니다.

그런 다음 이 페이지의 표에 날짜, 원본, 결과 및 작업 세부 정보가 포함된 각 구성 변경 사항이 나열됩니다.

3.5.7. 속성 교체

JBoss EAP에서 표현식을 사용하여 구성에서 리터럴 값 대신 대체 가능한 속성을 정의할 수 있습니다.

standalone*.xml 또는 domain.xml 구성 파일에서 속성 교체를 사용하면 속성이 시스템 속성에 있는 값으로 교체됩니다. 시스템 속성은 EAP 프로필 xml 파일에 정의되거나 명령줄 터미널에서 -D 명령을 입력하여 정의됩니다.

지정된 하위 시스템에서 속성 교체가 허용되는지 확인하려면 다음 명령을 사용하여 하위 시스템 구성에 대한 설명을 표시합니다.

/subsystem=datasources:read-resource-description(recursive=true)

expressions-allowed 속성이 true 로 설정된 경우 속성 교체가 허용됩니다.

표현식은 ${PARAMETER:DEFAULT_VALUE} 형식을 사용합니다. 지정된 매개변수가 설정되면 매개 변수의 값이 사용됩니다. 그렇지 않으면 제공된 기본값이 사용됩니다.

식을 해결하기 위해 지원되는 소스는 시스템 속성 및 환경 변수입니다. 환경 변수를 사용하여 표현식을 확인하는 경우 ${env.LANG} 형식을 사용합니다.

standalone.xml 구성 파일의 다음 예제에서는 jboss.bind.address 매개변수를 설정하지 않는 한 공용 인터페이스에 대한 inet-address127.0.0.1 로 설정합니다.

<interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>

다음 명령을 사용하여 EAP를 독립 실행형 서버로 시작할 때 jboss.bind.address 매개변수를 설정할 수 있습니다.

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
참고

배포 전용 배포의 경우 소스는 배포 아카이브의 META-INF/jboss.properties 파일에 나열된 속성일 수 있습니다. 하위 배포를 지원하는 배포 유형의 경우 속성 파일이 외부 배포에 있는 경우 모든 하위 배포에서 해상도의 범위가 지정됩니다(예: EAR). 속성 파일이 하위 배포에 있는 경우 해상도의 범위는 해당 하위 배포로만 지정됩니다.

3.5.8. 중첩된 표현식

고정 값 대신 고급 식을 사용할 수 있는 식을 중첩할 수 있습니다.You can nest expressions, which allows for more advanced use of expressions in place of fixed values.

중첩 표현식의 형식은 일반 표현식과 유사하지만 하나의 표현식은 다른 표현식에 포함됩니다. 예를 들면 다음과 같습니다.

${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}

JBoss EAP는 중첩 표현식을 재귀적으로 평가하므로 내부 표현식이 먼저 평가되고 외부 표현식이 평가됩니다. 표현식은 재귀가 될 수 있습니다. 여기서 표현식은 다른 표현식으로 확인되고, 이 표현식은 확인됩니다. 관리 CLI 명령을 제외하고 표현식이 허용되는 모든 곳에 중첩 표현식이 허용됩니다.

데이터 소스 정의 암호가 마스킹된 경우 중첩 표현식을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

3.5.9. 배포 설명자 기반 속성 교체

배포 설명자 기반 속성 교체는 설명자를 기반으로 속성을 대체하여 애플리케이션 및 빌드 체인에서 환경에 대한 가정을 제거할 수 있습니다.

환경별 구성은 주석 또는 빌드 시스템 스크립트가 아닌 배포 설명자에 지정할 수 있습니다. 파일 또는 명령줄의 매개 변수로 구성을 제공할 수 있습니다.

데이터 소스 연결 매개 변수와 같은 애플리케이션 구성은 일반적으로 개발, 테스트 및 프로덕션 환경에 따라 다릅니다. Jakarta EE 사양에 이러한 구성을 외부화하는 방법이 포함되어 있지 않으므로 이러한 분산은 빌드 시스템 스크립트에 의해 수용되는 경우가 있습니다. JBoss EAP를 사용하면 설명자 기반 속성 교체를 사용하여 외부에서 구성을 관리할 수 있습니다.

spec-descriptor-property-replacement 플래그는 Jakarta EE 설명자 교체를 제어하고 JBoss EAP는 기본적으로 이를 비활성화합니다. 이 기능이 활성화되면 다음 배포 설명자의 속성을 교체할 수 있습니다.

  • ejb-jar.xml
  • permissions.xml
  • persistence.xml
  • application.xml
  • web.xml

다음 관리 CLI 명령을 사용하여 Jakarta EE 설명자에서 속성 교체를 활성화하거나 비활성화할 수 있습니다.

/subsystem=ee:write-attribute(name="spec-descriptor-property-replacement",value=VALUE)

jboss-descriptor-property-replacement 플래그는 JBoss 관련 설명자 교체를 제어하고 JBoss EAP는 기본적으로 이를 활성화합니다. 이 기능이 활성화되면 다음 배포 설명자의 속성을 교체할 수 있습니다.

  • jboss-ejb3.xml
  • jboss-app.xml
  • jboss-web.xml
  • jboss-permissions.xml
  • *-jms.xml
  • *-ds.xml

다음 관리 CLI 명령을 사용하여 JBoss EAP 관련 설명자에서 속성 교체를 활성화하거나 비활성화합니다.

/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)

annotation-property-replacement 플래그는 주석 내부의 속성 교체를 제어하며 기본적으로 활성화되어 있지 않습니다. 이 기능이 활성화되면 애플리케이션 클래스 내부의 주석 속성의 속성을 교체할 수 있습니다.

다음 관리 CLI 명령을 사용하여 주석에서 속성 교체를 활성화하거나 비활성화합니다.

/subsystem=ee:write-attribute(name="annotation-property-replacement",value=VALUE)

system property 값이 설정된 경우 annotations -property-replacementtrue 로 설정하여 주석에서 속성 교체를 활성화할 수 있습니다. 예를 들어 시스템 속성을 설정하여 Message Driven Cryostat에서 maxSession 값을 교체할 수 있습니다.

@MessageDriven(mappedName="jms/Queue", activationConfig =  {
        @ActivationConfigProperty(propertyName = "acknowledgeMode",
                                  propertyValue = "Auto-acknowledge"),
        @ActivationConfigProperty(propertyName = "destinationType",
                                  propertyValue = "javax.jms.Queue")
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "${exampleMDB.maxSession:20}")})
    })
public class ExampleMessageDrivenBean implements MessageListener {
...
}

-DexampleMDB.maxSession 시스템 속성을 100 으로 설정할 수 있습니다. 이 시스템 속성을 설정하지 않으면 기본값은 20 입니다.

3.5.10. Git을 사용하여 구성 데이터 관리

Git을 사용하여 서버 구성 데이터, 속성 파일 및 배포를 관리하고 유지할 수 있습니다. 이를 통해 이러한 파일의 버전 기록을 관리할 수 있을 뿐만 아니라 하나 이상의 Git 리포지토리를 사용하여 여러 서버 및 노드에서 서버 및 애플리케이션 구성을 공유할 수 있습니다. 이 기능은 기본 구성 디렉터리 레이아웃을 사용하는 독립 실행형 서버에서만 작동합니다.

로컬 Git 리포지토리에서 구성 데이터를 사용하거나 원격 Git 리포지토리에서 데이터를 가져오도록 선택할 수 있습니다. Git 리포지토리는 독립 실행형 서버 콘텐츠의 기본 디렉터리인 jboss.server.base.dir 디렉터리에 구성됩니다. jboss.server.base.dir 디렉터리가 Git을 사용하도록 구성되면 JBoss EAP는 관리 CLI 또는 관리 콘솔을 사용하여 구성에 대한 모든 업데이트를 자동으로 커밋합니다. 구성 파일을 수동으로 편집하여 서버 외부에서 변경한 내용은 커밋되지 않습니다. 그러나 Git CLI를 사용하여 수동 변경 사항을 추가하고 커밋할 수 있습니다. Git CLI를 사용하여 커밋 기록을 보고 분기를 관리하며 콘텐츠를 관리할 수도 있습니다.

이 기능을 사용하려면 서버를 시작할 때 명령줄에서 다음 인수 중 하나 이상을 전달합니다.

Expand
표 3.4. Git 구성 관리를 위한 서버 시작 인수
인수설명

--git-repo

서버 구성 데이터를 관리하고 유지하는 데 사용되는 Git 리포지토리의 위치입니다. 로컬에 저장하려는 경우 로컬 이거나 URL을 원격 리포지토리에 저장할 수 있습니다.

--git-branch

사용할 Git 리포지토리의 분기 또는 태그 이름입니다. 이 인수는 기존 분기 또는 태그 이름 이름이 없는 경우 생성되지 않기 때문에 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다. 태그 이름은 읽기 전용이며 일반적으로 여러 노드에서 구성을 복제해야 할 때 사용됩니다.

--git-auth

원격 Git 리포지토리에 연결할 때 사용할 자격 증명이 포함된 Elytron 구성 파일의 URL입니다. 원격 Git 리포지토리에 인증이 필요한 경우 이 인수가 필요합니다. Elytron은 SSH를 지원하지 않습니다. 따라서 암호 없이 개인 키를 사용하여 기본 SSH 인증만 지원됩니다. 이 인수는 로컬 리포지토리와 함께 사용되지 않습니다.

로컬 Git 리포지토리 사용

로컬 Git 리포지토리를 사용하려면 --git-repo=local 인수를 사용하여 서버를 시작합니다. 서버를 시작할 때 --git-branch=GIT_BRANCH_NAME 인수를 추가하여 원격 리포지토리에 선택적 분기 또는 태그 이름을 지정할 수도 있습니다. 이 인수는 기존 분기 또는 태그 이름 이름이 없는 경우 생성되지 않기 때문에 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다.

다음은 로컬 리포지토리의 1.0.x 분기를 사용하여 서버를 시작하는 명령의 예입니다.

$ EAP_HOME/bin/standalone.sh --git-repo=local --git-branch=1.0.x

로컬 Git 리포지토리를 사용하기 위해 인수로 서버를 시작하면 JBoss EAP는 jboss.server.base.dir 디렉터리가 이미 Git에 대해 구성되어 있는지 확인합니다. 그렇지 않은 경우 JBoss EAP는 기존 구성 콘텐츠를 사용하여 jboss.server.base.dir 디렉터리에 Git 리포지토리를 생성하고 초기화합니다. JBoss EAP는 --git-branch 인수에서 전달하는 분기 이름을 확인합니다. 해당 인수가 전달되지 않으면 master 분기를 확인합니다. 초기화 후 독립 실행형 서버 콘텐츠의 기본 디렉터리에 .git/ 디렉터리 및 .gitignore 파일이 표시됩니다.

원격 Git 리포지토리 사용

원격 Git 리포지토리를 사용하려면 --git-repo=REMOTE_REPO 인수를 사용하여 서버를 시작합니다. 인수 값은 로컬 Git 구성에 수동으로 추가한 URL 또는 원격 별칭일 수 있습니다.

서버를 시작할 때 --git-branch=GIT_BRANCH_NAME 인수를 추가하여 원격 리포지토리에 선택적 분기 또는 태그 이름을 지정할 수도 있습니다. 이 인수는 기존 분기 또는 태그 이름 이름이 없는 경우 생성되지 않기 때문에 지정해야 합니다. 태그 이름을 사용하는 경우 리포지토리를 분리된 HEAD 상태에 넣습니다. 즉, 향후 커밋은 임의의 분기에 연결되어 있지 않습니다.

Git 리포지토리에 인증이 필요한 경우 서버를 시작할 때 --git-auth=AUTH_FILE_URL 인수도 추가해야 합니다. 이 인수는 Git 리포지토리에 연결하는 데 필요한 자격 증명이 포함된 Elytron 구성 파일의 URL이어야 합니다. 다음은 인증에 사용할 수 있는 Elytron 구성을 지정하는 WildFly Client 구성 파일의 예입니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <authentication-client xmlns="{ElytronAuthClientNamespace}">
    <authentication-rules>
      <rule use-configuration="test-login">
      </rule>
    </authentication-rules>
    <authentication-configurations>
      <configuration name="test-login">
        <sasl-mechanism-selector selector="BASIC" />
        <set-user-name name="eap-user" />
        <credentials>
          <clear-password password="my_api_key" />
        </credentials>
        <set-mechanism-realm name="testRealm" />
      </configuration>
    </authentication-configurations>
  </authentication-client>
</configuration>
참고

Elytron은 SSH를 지원하지 않습니다. 따라서 암호 없이 개인 키를 사용하여 기본 SSH 인증만 지원됩니다.

다음은 원격 Cryostat - configuration 리포지토리의 1.0.x 분기를 사용하여 전체 프로필로 서버를 시작하고 인증 자격 증명을 포함하는 Elytron 구성 파일에 URL을 전달하는 명령의 예입니다.

$ EAP_HOME/bin/standalone.sh --git-repo=https://github.com/MY_GIT_ID/eap-configuration.git --git-branch=1.0.x --git-auth=file:///home/USER_NAME/github-wildfly-config.xml --server-config=standalone-full.xml

원격 Git 리포지토리를 사용하기 위해 인수로 서버를 시작하면 JBoss EAP는 jboss.server.base.dir 디렉터리가 이미 Git에 대해 구성되어 있는지 확인합니다. 그렇지 않은 경우 JBoss EAP는 jboss.server.base.dir 디렉터리에 기존 구성 파일을 삭제하여 원격 Git 구성 데이터로 교체합니다. JBoss EAP는 --git-branch 인수에서 전달하는 분기 이름을 확인합니다. 해당 인수가 전달되지 않으면 master 분기를 확인합니다. 이 프로세스가 완료되면 독립 실행형 서버 콘텐츠의 기본 디렉터리에 .git/ 디렉터리와 .gitignore 파일이 표시되어야 합니다.

주의

나중에 원래 사용된 것보다 다른 --git-repo URL 또는 --git-branch 이름을 전달하는 서버를 시작하는 경우 서버를 시작하려고 할 때 java.lang.RuntimeException: WFLYSRV0268: WFLYSRV0268: Failed to pull the repository GIT_REPO_NAME 오류 메시지가 표시됩니다. JBoss EAP는 jboss.server.base.dir 디렉터리에 현재 구성된 것과 다른 리포지토리 및 분기에서 구성 데이터를 가져오고 Git 가져오기로 인해 충돌이 발생합니다.

Git을 사용할 때 원격 구성 데이터 게시

관리 CLI publish-configuration 작업을 사용하여 Git 리포지토리 변경 사항을 원격 리포지토리로 내보낼 수 있습니다. JBoss EAP는 서버를 시작할 때 부팅 프로세스 중에 원격 Git 리포지토리에서 구성을 가져오기 때문에 여러 서버에서 구성 데이터를 공유할 수 있습니다. 이 작업은 원격 리포지토리에서만 사용할 수 있습니다. 로컬 리포지토리에서 작동하지 않습니다.

다음 관리 CLI 작업은 구성 데이터를 원격 192.0.2. -configuration 리포지토리에 게시합니다.

:publish-configuration(location="=https://github.com/MY_GIT_ID/eap-configuration.git")
{"outcome" => "success"}
Git에서 스냅샷 사용

Git 커밋 기록을 사용하여 구성 변경 사항을 추적하는 것 외에도 스냅샷을 작성하여 특정 시점에 구성을 유지할 수도 있습니다. 스냅샷을 나열하고 삭제할 수 있습니다.

Git을 사용할 때 스냅샷 생성

스냅샷은 Git에 태그로 저장됩니다. 스냅샷 태그 이름 및 커밋 메시지를 take-snapshot 작업에서 인수로 지정합니다.

다음 관리 CLI 작업은 스냅샷을 사용하여 "snapshot-01" 태그의 이름을 지정합니다.

:take-snapshot(name="snapshot-01", comment="1st snapshot")
{
    "outcome" => "success",
    "result" => "1st snapshot"
}
Git을 사용할 때 스냅샷 나열

list-snapshots 작업을 사용하여 모든 스냅샷 태그를 나열할 수 있습니다.

다음 관리 CLI 작업에는 스냅샷 태그가 나열됩니다.

:list-snapshots
{
    "outcome" => "success",
    "result" => {
        "directory" => "",
        "names" => [
            "snapshot : 1st snapshot",
            "refs/tags/snapshot-01",
            "snapshot2 : 2nd snapshot",
            "refs/tags/snapshot-02"
        ]
    }
}
Git을 사용할 때 스냅샷 삭제

delete-snapshot 작업에 태그 이름을 전달하여 특정 스냅샷을 삭제할 수 있습니다.

다음 관리 CLI 작업은 이름이 "snapshot-01"인 스냅샷을 삭제합니다.

:delete-snapshot(name="snapshot-01")
{"outcome" => "success"}
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동