Puppet: 간단한 토큰화 + 에이전트 필요

Puppet: 간단한 토큰화 + 에이전트 필요

여러분

우리는 현재 직장에서 사용자 정의 배포 도구를 보유하고 있으며 이를 Puppet과 같은 비독점 도구로 교체하는 것을 평가하고 있습니다.

현재 우리가 수행하는 주요 작업 중 하나는 토큰화입니다. 예를 들어 Tomcat 배포의 server.xml 파일에서 server.xml.tokenzenized아래와 같은 줄로 호출되는 파일을 배포할 수 있습니다.

<Ajp12Connector port="@@TOMCAT.AJP.PORT@@" ajpidFile="conf/ajp12_2.id" />

그런 다음 tokens.xml다음과 같은 줄이 있는 파일이 있습니다.

<TOKEN NAME='TOMCAT.AJP.PORT' value = '8080/>

그러면 배포 프로세스에서 server.xml.tokenized를 스캔하고 토큰을 대체하여 파일을 server.xml에 기록합니다.

Puppet이 임의의 파일이나 Tomcat과 같은 파일에 대해 이 작업을 수행할 수 있습니까? Tomcat의 작동 방식을 이해하는 플러그인을 다운로드해야 합니까?

둘째, 내가 지금까지 읽은 내용에 따르면 대부분의 사람들은 마스터에서 파일을 검색하기 위해 puppet 에이전트를 사용하는 것 같습니다. 이것이 사실이어야 합니까? puppet 모델링 및 인프라를 사용하는 스크립트를 가질 수 있습니까? 그런 다음 호스트에 로그인하여 소프트웨어를 배포하시겠습니까? - 그 근거는 다양한 이유로 우리 환경의 에이전트에 대한 편견이 있다는 것입니다.

건배

답변1

첫 번째 질문에: 네,puppet다음을 사용하여 그렇게 할 수 있습니다템플릿결합hiera및/또는facter. 이 프로세스는 템플릿 파일을 사용하여 소프트웨어에서 완전히 추상화됩니다.

server.xml예를 들어 다음과 같은 섹션이 포함된 템플릿을 가질 수 있습니다 .

<Connector address="<%= @ipaddress_eth0 %>"
           executor="tomcatThreadPool"
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

<%= @ipaddress_eth0 %>부분은 현재 '토큰'이라고 부르는 부분이며, Puppet은 다음을 사용하여 특정 호스트에 대해 이를 교체하는 방법을 알고 있습니다 facter.

# facter ipaddress_eth0
10.0.0.2

당신은 가질 수 있습니다맞춤 사실당신도 필요하다면.

계층적 데이터 주제는 좀 더 복잡하며 배포에 어떻게 도움이 되는지 확인하려면 일부 설명서를 읽어야 합니다.이것그 가능성에 대한 아주 좋은 프레젠테이션입니다. 기본적으로 그 목적은 코드와 데이터('토큰')를 분리하는 수단을 제공하고 해당 데이터를 친숙하고 유지 관리하기 쉬운 형식(YAML 또는 JSON)으로 저장하는 것입니다. 위에서 설명한 사용 사례( 에 대한 사용자 정의 포트 정의 tomcat)는 다음의 일반적인 사용 패턴입니다 hiera.

모듈 에는 tomcat다음과 같은 내용이 있습니다.

class tomcat (
    $port
    ){
    #rest of the module
}

템플릿(예: server.xml.erb)에서:

<Ajp12Connector port="<%= port %>" ajpidFile="conf/ajp12_2.id" />

해당 코드와 일치하는 계층적 데이터 부분은 다음과 같습니다.

tomcat::port = 8080

두 번째 질문에 대한 대답도 어느 정도 '예'입니다. 당신이 사용할 수있는마리오네트 집단(실제로 puppetlabs 제공의 일부) 에이전트 없는 서버 팜에 변경 사항을 적용합니다. 하지만 클라이언트를 설치해야 합니다(정확히 동일하지는 않습니다. 이러한 클라이언트는 puppet클라이언트를 요청하는 데 적극적으로 참여하는 에이전트 와 달리 수동적이기 때문입니다).카탈로그puppetmaster). 다시 한 번 말씀드리지만,문서를 읽어보세요기능의 세부 사항을 더 잘 이해합니다.

관련 정보