Configure 레시피 - AWS OpsWorks

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Configure 레시피

중요

The AWS OpsWorks Stacks 서비스 수명이 2024년 5월 26일에 종료되었으며 신규 및 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 다음 연락처로 문의하십시오. AWS Support 팀 구성: AWS re:포스트 포스트 또는 스루 AWS 프리미엄 지원.

Configure 레시피는 계층의 Configure 수명 주기 이벤트에 할당됩니다. 이 이벤트는 특정 인스턴스가 온라인 상태로 전환되거나 해제될 때마다 스택의 모든 인스턴스에서 발생합니다. 변경 사항에 대응하여 적절히 인스턴스의 구성을 조정하려면 Configure 레시피를 사용합니다. Configure 레시피를 구현할 때 스택 구성 변경이 이 계층과 관계가 없는 인스턴스도 포함할 수 있다는 점을 염두에 두어야 합니다. 이 레시피는 적절히 대응할 수 있어야 합니다. 이는 경우에 따라 아무 작업도 하지 않음을 의미하기도 합니다.

tomcat::configure

tomcat::configure 레시피는 계층의 Configure 수명 주기 이벤트를 위한 것입니다.

include_recipe 'tomcat::context' # Optional: Trigger a Tomcat restart in case of a configure event, if relevant # settings in custom JSON have changed (e.g. java_opts/JAVA_OPTS): #include_recipe 'tomcat::container_config'

tomcat::configure 레시피는 기본적으로 두 개의 종속 레시피를 실행하는 메타 레시피입니다.

  1. tomcat::context 레시피는 웹 앱 컨텍스트 구성 파일을 생성합니다.

    이 파일은 애플리케이션이 My SQL 인스턴스와 통신하는 데 사용하는 JDBC 리소스를 구성합니다. 자세한 내용은 다음 섹션에서 설명합니다. Configure 이벤트에 대응하여 이 레시피를 실행할 경우 데이터베이스 계층이 변경되었을 때 웹 앱 컨텍스트 구성 파일을 업데이트할 수 있습니다.

  2. tomcat::container_config 설정 레시피가 다시 실행되어 컨테이너 구성 변경 사항을 캡처합니다.

이 예제에서는 includetomcat::container_config가 코멘트 아웃됩니다. 사용자 정의를 사용하여 Tomcat 설정을 JSON 수정하려는 경우 댓글을 제거하면 됩니다. 그런 다음 Configure 수명 주기 이벤트가 tomcat::container_config를 실행합니다. 이는 Tomcat 관련 구성 파일을 업데이트하고(tomcat::container_config 섹션 참조) Tomcat 서비스를 재시작합니다.

tomcat::context

Tomcat 쿡북을 사용하면 애플리케이션이 J2EE 객체를 사용하여 별도의 인스턴스에서 실행 가능한 내 SQL 데이터베이스 서버에 액세스할 수 있습니다. DataSource Tomcat에서는 각 애플리케이션에 대해 웹 엡 컨텍스트 구성 파일을 생성 및 설치하여 연결을 활성화할 수 있습니다. 이 파일은 애플리케이션과 애플리케이션이 데이터베이스와 통신하는 데 사용할 JDBC 리소스 간의 관계를 정의합니다. 자세한 정보는 The Context Container를 참조하세요.

tomcat::context 레시피의 주된 목적은 이 구성 파일을 생성하는 것입니다.

include_recipe 'tomcat::service' node[:deploy].each do |application, deploy| context_name = deploy[:document_root].blank? ? application : deploy[:document_root] template "context file for #{application} (context name: #{context_name})" do path ::File.join(node['tomcat']['catalina_base_dir'], 'Catalina', 'localhost', "#{context_name}.xml") source 'webapp_context.xml.erb' owner node['tomcat']['user'] group node['tomcat']['group'] mode 0640 backup false only_if { node['datasources'][context_name] } variables(:resource_name => node['datasources'][context_name], :webapp_name => application) notifies :restart, resources(:service => 'tomcat') end end

이 레시피는 Tomcat 쿡북 속성 외에도 다음과 같은 스택 구성 및 배포 속성을 사용합니다. AWS OpsWorks Configure 이벤트를 사용하여 설치를 스택합니다. The AWS OpsWorks Stacks 서비스는 레시피가 일반적으로 데이터 백을 사용하거나 검색을 통해 얻는 정보가 포함된 속성을 각 인스턴스의 노드 개체에 추가하고 각 인스턴스에 속성을 설치합니다. 이러한 속성에는 스택 구성, 배포된 앱, 사용자가 포함시키기 원하는 사용자 지정 데이터에 대한 세부 정보가 포함됩니다. 레시피는 표준 Chef 노드 구문을 사용하여 스택 구성 및 배포 속성에서 데이터를 가져옵니다. 자세한 내용은 스택 구성 및 배포 속성 섹션을 참조하세요. Chef 11.10 스택에서는 Chef 검색을 사용하여 스택 구성 및 배포 데이터를 가져올 수도 있습니다. 자세한 내용은 Chef 검색 사용 단원을 참조하십시오.

deploy속성이란 콘솔을 통해 정의되거나 콘솔에서 생성되는 배포 관련 속성을 포함하는 [:deploy] 네임스페이스를 말합니다. API AWS OpsWorks 스택 서비스. deploy 속성에는 배포된 각 앱마다 앱의 짧은 이름으로 명명된 속성이 하나씩 포함됩니다. 각각의 앱 속성에는 문서 루트([:deploy][:appname][:document_root])와 같이 앱의 특성을 정의하는 속성 세트가 포함됩니다.

context 레시피는 먼저 tomcat::service를 호출하여 서비스가 이 Chef 실행에 대해 정의되도록 합니다. 그런 다음 구성 파일의 이름(context_name 확장명 제외)을 표시하는 .xml 변수를 정의합니다. 기본 문서 루트를 사용하는 경우, context_name이 앱의 짧은 이름으로 설정됩니다. 그렇지 않은 경우 지정된 문서 루트로 설정됩니다. 에서 설명한 예제에서는 문서 루트를 로 스택 생성 및 애플리케이션 실행 "ROOT" 설정하므로 컨텍스트가 ROOT 지정되고 구성 파일의 이름이 ROOT.xml 지정됩니다.

이 레시피는 배포된 앱의 목록이 많은 부분을 차지하며, 각 앱에 대해 webapp_context.xml.erb 템플릿을 사용하여 컨텍스트 구성 파일을 생성합니다. 예제는 앱을 하나만 배포하지만 deploy 속성의 정의는 앱 수와 상관없이 이를 앱 목록으로 처리하도록 요구합니다.

webapp_context.xml.erb 템플릿은 운영 체제를 구별하지 않으므로 templates 디렉터리의 default 하위 디렉터리에 위치합니다.

이 레시피는 다음과 같이 구성 파일을 생성합니다.

  • 기본 속성 값을 사용할 경우 구성 파일 이름은 context_name.xml로 설정되고 /etc/tomcat6/Catalina/localhost/ 디렉터리에 설치됩니다.

    스택 구성 속성의 ['datasources'] 노드에는 하나 이상의 속성이 포함되며, 각 속성은 컨텍스트 이름을 관련 응용 프로그램이 데이터베이스와 통신하는 데 사용할 JDBC 데이터 리소스에 매핑합니다. 노드와 해당 내용은 스택을 생성할 JSON 때 사용자 정의를 사용하여 정의됩니다 (뒷부분 설명 참조)스택 생성 및 애플리케이션 실행. 이 예제에는 ROOT 컨텍스트 이름을 jdbc/mydb라는 JDBC 리소스와 연결하는 단일 속성이 있습니다.

  • 기본 속성 값을 사용하면 파일의 사용자 및 그룹 모두 Tomcat 패키지에 의해 설정됩니다. tomcat(Amazon Linux) 또는 tomcat6(Ubuntu).

  • template 리소스는 ['datasources'] 노드가 존재하고 context_name 속성을 포함하는 경우에만 구성 파일을 생성합니다.

  • template 리소스는 resource_namewebapp_name, 두 개의 변수를 정의합니다.

    resource_namecontext_name과 연결된 리소스 이름으로 설정되고, webapp_name은 앱의 짧은 이름으로 설정됩니다.

  • 템플릿 리소스는 Tomcat 서비스를 재시작하여 변경 사항을 로드하고 활성화합니다.

webapp_context.xml.erb 템플릿은 자체 속성 세트를 갖는 Context 요소를 포함하는 Resource 요소로 구성됩니다.

Resource 속성은 컨텍스트 구성의 특성을 정의합니다.

  • 이름 - 에 JDBC 정의된 값으로 설정된 리소스 이름입니다. resource_name tomcat::context

    예제에서는 리소스 이름이 jdbc/mydb로 설정됩니다.

  • 인증유형 - 연결을 위한 표준 설정입니다. JDBC DataSource

  • maxActive, maxIdle, maxWait—활성 및 유휴 연결의 최대 수와 연결이 반환될 때까지 걸리는 최대 대기 시간입니다.

  • usernamepassword - 데이터베이스의 사용자 이름 및 암호. deploy 속성에서 가져옵니다.

  • driverClassName—내 JDBC 드라이버로 설정된 드라이버의 클래스 이름 SQL

  • url — 연결. URL

    접두사는 데이터베이스에 따라 다릅니다. MySQL, jdbc:mysql Postgres의 경우, jdbc:postgresql 서버의 경우 로 설정해야 합니다. jdbc:sqlserver SQL 이 예제에서는 를 URL 로 설정합니다. 여기서 jdbc:mysql://host_IP_Address:3306:simplejsp simplejsp 앱의 약식 이름입니다.

  • 팩토리 - 내 SQL 데이터베이스에 필요한 DataSource 팩토리입니다.

이 구성 파일에 대한 자세한 내용은 Tomcat 위키의 사용 항목을 참조하십시오. DataSources