3.6. 설정 데이터


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

독립 실행형 구성 파일은 EAP_HOME/standalone/configuration/ 디렉터리에 있습니다. 사전 정의된 5개의 프로필(기본값,ha, full,full -ha,load-balancer )마다 별도의 파일이 있습니다.

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

standalone.xml

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

standalone-ha.xml

이 독립 실행형 구성 파일에는 모든 기본 하위 시스템이 포함되어 있으며 고가용성에 대해 modclusterjgroups 하위 시스템을 추가합니다. 이는 메시징에 필요한 하위 시스템을 제공하지 않습니다.

standalone-full.xml

이 독립 실행형 구성 파일에는 모든 기본 하위 시스템이 포함되어 있으며 messaging-activemqiiop-openjdk 하위 시스템을 추가합니다. 고가용성에 필요한 하위 시스템을 제공하지 않습니다.

standalone-full-ha.xml

이 독립 실행형 구성 파일에는 메시징 및 고가용성에 대한 시스템을 포함하여 가능한 모든 하위 시스템에 대한 지원이 포함되어 있습니다.

standalone-load-balancer.xml

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

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

$ EAP_HOME/bin/standalone.sh --server-config=standalone-full.xml
Copy to Clipboard Toggle word wrap

3.6.1.1. YAML 파일을 사용하여 독립 실행형 서버 구성 업데이트

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

참고

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

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

  • core-service
  • 인터페이스
  • socket-binding-group
  • subsystem
  • system-property

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

  • 확장: 서버에 확장을 추가합니다. 이 요소는 누락된 모듈이 필요할 수 있으므로 지원되지 않습니다.
  • 배포: 서버에 배포를 추가합니다. 이 요소는 구성 외에도 보다 광범위한 변경이 필요하기 때문에 지원되지 않습니다.
  • 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
Copy to Clipboard Toggle word wrap

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

참고

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

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

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

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

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

    wildfly-configuration:
        subsystem:
            logging:
              console-handler:
                CONSOLE:
                  level: !undefine
    Copy to Clipboard Toggle word wrap

  • !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"
    Copy to Clipboard Toggle word wrap

  • !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
    Copy to Clipboard Toggle word wrap

    참고

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

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

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

절차

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

    ./standalone.sh -y=/home/ehsavoie/dev/wildfly/config2.yml:config.yml -c standalone-full.xml
    Copy to Clipboard Toggle word wrap

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

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

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

관리형 도메인 구성 파일은 EAP_HOME/domain/configuration/ 디렉터리에 있습니다.

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

domain.xml

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

host.xml

이 파일에는 네트워크 인터페이스, 소켓 바인딩, 호스트 이름 및 기타 호스트별 세부 정보와 같이 관리형 도메인의 실제 호스트와 관련된 구성 세부 정보가 포함됩니다. host.xml 파일에는 아래 설명된 host -master.xmlhost-slave.xml 의 모든 기능이 포함되어 있습니다.

host-master.xml

이 파일에는 서버를 마스터 도메인 컨트롤러로 실행하는 데 필요한 구성 세부 사항만 포함되어 있습니다.

host-slave.xml

이 파일에는 서버를 관리형 도메인 호스트 컨트롤러로 실행하는 데 필요한 구성 세부 정보만 포함되어 있습니다.

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

$ EAP_HOME/bin/domain.sh --host-config=host-master.xml
Copy to Clipboard Toggle word wrap

3.6.3. 구성 데이터 백업

JBoss EAP 서버 구성을 나중에 복원하려면 다음 위치에 있는 항목을 백업해야 합니다.

  • EAP_HOME/standalone/configuration/

    • 독립 실행형 서버에 대한 사용자 데이터, 서버 구성 및 로깅 설정을 저장하도록 전체 디렉터리를 백업합니다.
  • EAP_HOME/domain/configuration/

    • 전체 디렉터리를 백업하여 사용자 및 프로필 데이터, 도메인 및 호스트 구성, 관리형 도메인에 대한 로깅 설정을 저장합니다.
  • EAP_HOME/modules/

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

    • 사용자 지정 환영 콘텐츠를 백업합니다.
  • EAP_HOME/bin/

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

3.6.4. 설정 파일 스냅 샷

서버 유지 관리 및 관리를 지원하기 위해 JBoss EAP는 시작 시 원본 구성 파일의 타임스탬프 버전을 생성합니다. 관리 작업에서 추가 구성을 변경하면 원본 파일이 자동으로 백업되고 참조 및 롤백을 위해 인스턴스의 작업 복사본이 보존됩니다. 또한 현재 서버 구성의 시점 사본인 구성 스냅샷을 만들 수도 있습니다. 이러한 스냅샷을 관리자가 저장하고 로드할 수 있습니다.

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

스냅샷 찍기

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

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

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

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

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

:delete-snapshot(name=20151022-133109702standalone.xml)
Copy to Clipboard Toggle word wrap
스냅샷으로 서버 시작

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

  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
    Copy to Clipboard Toggle word wrap
참고

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

3.6.5. 구성 변경 사항보기

JBoss EAP 7은 실행 중인 시스템의 구성 변경 사항을 추적할 수 있는 기능을 제공합니다. 이를 통해 관리자는 다른 인증된 사용자가 변경한 구성 변경 내역을 볼 수 있습니다.

중요

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

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

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

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

/subsystem=core-management/service=configuration-changes:add(max-history=20)
Copy to Clipboard Toggle word wrap
참고

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

/host=HOST_NAME/subsystem=core-management/service=configuration-changes:add(max-history=20)
Copy to Clipboard Toggle word wrap

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

/subsystem=core-management/service=configuration-changes:list-changes
Copy to Clipboard Toggle word wrap
참고

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

/host=HOST_NAME/subsystem=core-management/service=configuration-changes:list-changes
Copy to Clipboard Toggle word wrap

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

/host=HOST_NAME/server=SERVER_NAME/subsystem=core-management/service=configuration-changes:list-changes
Copy to Clipboard Toggle word wrap

그러면 날짜, 원점, 결과 및 작업 세부 정보와 함께 수행된 각 구성 변경 사항이 나열됩니다. 예를 들어 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"}
            }]
        }
    ]
}
Copy to Clipboard Toggle word wrap

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

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

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

이 페이지의 테이블에는 날짜, 원점, 결과 및 운영 세부 정보와 함께 각 구성 변경 사항이 나열됩니다.

3.6.6. 속성 교체

JBoss EAP를 사용하면 표현식을 사용하여 구성에서 리터럴 값 대신 교체 가능한 속성을 정의할 수 있습니다. 표현식은 ${PARAMETER:DEFAULT_VALUE} 형식을 사용합니다. 지정된 매개 변수가 설정되면 매개 변수의 값이 사용됩니다. 그렇지 않으면 제공된 기본값이 사용됩니다.

표현식을 해결하는 데 지원되는 소스는 시스템 속성, 환경 변수 및 자격 증명 모음입니다. 배포 전용의 경우 소스는 배포 아카이브의 META-INF/jboss.properties 파일에 나열된 속성이 될 수 있습니다. 하위 배포를 지원하는 배포 유형의 경우 속성 파일이 외부 배포에 있는 경우(예: EAR) 모든 하위 배포로 해결 범위가 지정됩니다. 속성 파일이 하위 배포에 있는 경우 해결 범위는 해당 하위 배포로만 지정됩니다.

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

<interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
</interface>
Copy to Clipboard Toggle word wrap

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

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
Copy to Clipboard Toggle word wrap
중첩 표현식

표현식을 중첩하여 고정 값 대신 고급 표현식을 사용할 수 있습니다. 중첩된 식의 형식은 일반 표현식의 형식과 같지만 하나의 표현식은 다른 표현식에 포함됩니다. 예를 들면 다음과 같습니다.

${SYSTEM_VALUE_1${SYSTEM_VALUE_2}}
Copy to Clipboard Toggle word wrap

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

중첩 표현식을 사용할 수 있는 예제는 데이터 소스 정의에 사용된 암호가 마스킹되는 경우입니다. 데이터 소스의 구성에는 다음 행이 있을 수 있습니다.

<password>${VAULT::ds_ExampleDS::password::1}</password>
Copy to Clipboard Toggle word wrap

ds_ExampleDS 값은 중첩된 표현식을 사용하여 시스템 속성(datasource_name)으로 바꿀 수 있습니다. 데이터 소스에 대한 구성은 대신 다음 행을 가질 수 있습니다.

<password>${VAULT::${datasource_name}::password::1}</password>
Copy to Clipboard Toggle word wrap

JBoss EAP는 먼저 표현식 ${datasource_name} 을 평가한 다음 이를 더 큰 표현식에 입력하고 결과 표현식을 평가합니다. 이 구성의 이점은 데이터 소스 이름이 고정 구성에서 추상화된다는 것입니다.

설명자 기반 속성 교체

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

설명자 기반 속성 교체는 설명자를 기반으로 하는 속성을 대체하여 애플리케이션 및 빌드 체인에서 환경에 대한 가정을 제거할 수 있습니다. 환경별 구성은 주석 또는 빌드 시스템 스크립트가 아닌 배포 설명자에 지정할 수 있습니다. 명령줄에서 파일 또는 매개 변수로 구성을 제공할 수 있습니다.

the ee 하위 시스템에는 속성 교체가 적용되는지 여부를 제어하는 여러 플래그가 있습니다.

JBoss 특정 설명자 교체는 jboss-descriptor-property-replacement 플래그로 제어되며 기본적으로 활성화되어 있습니다. 활성화된 경우 다음 배포 설명자에서 속성을 바꿀 수 있습니다.

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

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

/subsystem=ee:write-attribute(name="jboss-descriptor-property-replacement",value=VALUE)
Copy to Clipboard Toggle word wrap

Jakarta EE 설명자 교체는 spec-descriptor-property-replacement 플래그로 제어되며 기본적으로 비활성화되어 있습니다. 활성화된 경우 다음 배포 설명자에서 속성을 바꿀 수 있습니다.

  • 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)
Copy to Clipboard Toggle word wrap

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

JBoss EAP 7.3에서는 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 리포지토리에 인증이 필요한 경우 필요합니다. 이 인수는 로컬 리포지토리와 함께 사용되지 않습니다.

로컬 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
Copy to Clipboard Toggle word wrap

로컬 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 인수로 서버를 시작합니다. 인수 값은 URL 또는 로컬 Git 구성에 수동으로 추가한 원격 별칭일 수 있습니다.

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

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

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <authentication-client xmlns="urn:elytron:client:1.2">
    <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>
Copy to Clipboard Toggle word wrap

다음은 원격 eap-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
Copy to Clipboard Toggle word wrap

원격 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: 서버 시작을 시도할 때 리포지토리 GIT_REPO_NAME 을 가져오지 못했습니다. 이는 JBoss EAP가 현재 jboss.server.base.dir 디렉터리에 구성된 것과 다른 리포지토리 및 분기에서 구성 데이터를 가져오고 Git 가져오기 결과가 충돌하기 때문입니다.

원격 Git SSH 리포지토리 사용

SSH 인증의 경우 SSH 자격 증명을 지정하여 elytron 구성 파일을 구성할 수 있습니다. 이 파일에서 SSH 자격 증명을 지정한 후 독립 실행형 서버 인스턴스를 시작할 수 있으며 원격 Git SSH 리포지토리에서 서버 구성 파일 기록을 관리할 수 있습니다.

elytron-tool.sh 스크립트를 사용하여 액세스할 수 있는 WildFly Elytron 툴을 사용하여 SSH 키 쌍을 생성하고 자격 증명 저장소에 저장할 수도 있습니다. WildFly Elytron 툴은 이전에 서버에 대한 SSH 자격 증명을 지정하지 않은 경우 사용하는 데 유용합니다.

elytron 구성 파일에 자격 증명을 추가하면 원격 Git SSH 리포지토리에 연결할 수 있습니다.

사전 요구 사항

절차

  • 터미널에서 다음 명령을 실행하여 원격 git SSH 리포지토리에 연결합니다.

    $ <eap_home_path>/bin/standalone.sh --git-repo=<git_repository_url> --git-auth=<elytron_configuration_file_url>
    Copy to Clipboard Toggle word wrap

    독립 실행형 서버가 시작되고 서버의 구성 파일 기록이 이제 원격 Git SSH 리포지토리에서 관리합니다.

추가 리소스

elytron 구성 파일에서 OpenSSH 키 사용

elytron 하위 시스템은 OpenSSH 명령줄 도구를 사용하여 생성된 SSH 키 쌍을 지원합니다. 이 툴은 RSA, DSA 및 ECDSA 알고리즘을 사용합니다.

ssh-keygen 명령을 사용하여 SSH 키 쌍을 생성할 수 있습니다.

또한 세 가지 요소 유형 중 하나를 사용하여 암호를 지정할 수 있습니다.

  • clear-password
  • masked-password
  • credential-store-reference

사전 요구 사항

  • SSH 키 쌍이 생성되었습니다. 다음 예제에서는 크기가 256 메가바이트의 ECDSA 키 생성을 보여줍니다. 암호는 시크릿 으로 설정됩니다.

    [~/.ssh]$ ssh-keygen -t ecdsa -b 256
    
    Generating public/private ecdsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_ecdsa):
    Enter passphrase (empty for no passphrase): secret
    Enter same passphrase again: secret
    Your identification has been saved in /home/user/.ssh/id_ecdsa.
    Your public key has been saved in /home/user/.ssh/id_ecdsa.pub.
    Copy to Clipboard Toggle word wrap

절차

  • 다음 두 방법 중 하나를 선택하여 elytron 구성 파일에 키 쌍을 지정합니다.

    • 키 쌍 인증 정보를 사용하여 구성 파일에서 키 쌍을 지정합니다. 예를 들면 다음과 같습니다.

      <authentication-configurations>
          <configuration name="example">
              <credentials>
                  <key-pair>
                      <openssh-private-key pem="-----BEGIN OPENSSH PRIVATE KEY-----
                                                                  b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDaZzGpGV
                                                                  922xmrL+bMHioPAAAAEAAAAAEAAABoAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlz
                                                                  dHAyNTYAAABBBIMTU1m6pmpnSTZ2k/cbKnxXkRpXUmWwqN1SSNLpRswGsUhmLG2H21br1Z
                                                                  lEHRiRn6zQmA4YCtCw2hLuz8M8WVoAAADAQk+bMNWFfaI4Ej1AQdlLl6v4RDa2HGjDS3V4
                                                                  39h0pOx4Ix7YZKydTN4SPkYRt78CNK0AhhtKsWo2lVNwyfh8/6SeqowhgCG9MJYW8yRR1R
                                                                  3DX/eQTx6MV/gSSRLDTpcVWUY0jrBGpMaEvylKoNcabiEo44flkIYlG6E/YtFXsmXsoBsj
                                                                  nFcjvmfE7Lzyin5Fowwpbqj9f0XOARu9wsUzeyJVAwT7+YCU3mWJ3dnO1bOxK4TuLsxD6j
                                                                  RB7bJemsfr
                                                                  -----END OPENSSH PRIVATE KEY-----">
                         <clear-password password="secret"/>
                      </openssh-private-key>
                  </key-pair>
              </credentials>
          </configuration>
      </authentication-configurations>
      Copy to Clipboard Toggle word wrap

      예에서는 OpenSSH 형식의 키 쌍을 보여줍니다. 보안의 암호는 명확한 암호 유형으로 설정되며 개인 키의 암호를 해독해야 합니다.

      중요

      elytron 하위 시스템은 PKCS8 형식의 키 쌍을 지원합니다. 그러나 키 쌍을 원래 형식으로 다시 해독해야 할 때 문제가 발생할 수 있으므로 PKCS8 형식의 키 쌍을 암호화해서는 안 됩니다.

    • 구성 파일의 <ssh-credential> 요소에 개인 키가 포함된 파일의 위치를 지정합니다. 예를 들면 다음과 같습니다.

      <authentication-configurations>
          <configuration name="example">
              <credentials>
                  <ssh-credential ssh-directory="/user/home/example/.ssh" private-key-file="id_test_ecdsa" known-hosts-file="known_hosts_test"> 
      1
       
      2
       
      3
      
                      <clear-password password="secret"/>
                  </ssh-credential>
               </credentials>
          </configuration>
      </authentication-configurations>
      Copy to Clipboard Toggle word wrap
      1
      ssh-directory 속성은 키의 위치와 알려진 호스트 파일을 지정합니다.
      2
      private-key-file 속성은 개인 키가 포함된 파일의 이름을 지정합니다.
      3
      known-hosts-file 속성은 알려진 SSH 호스트가 포함된 파일의 이름을 지정합니다.
Git을 사용할 때 원격 구성 데이터 게시

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

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

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

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

Git을 사용할 때 스냅샷 찍기

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

다음 관리 CLI 작업은 스냅샷을 찍고 태그 이름을 "snapshot-01"로 지정합니다.

:take-snapshot(name="snapshot-01", comment="1st snapshot")
{
    "outcome" => "success",
    "result" => "1st snapshot"
}
Copy to Clipboard Toggle word wrap
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"
        ]
    }
}
Copy to Clipboard Toggle word wrap
Git을 사용할 때 스냅샷 삭제

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

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

:delete-snapshot(name="snapshot-01")
{"outcome" => "success"}
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat