퍼펫 마스터를 사용하여 모든 컴퓨터에 파일을 복사하는 방법은 무엇입니까?


12

우분투 11.04에 puppetmaster를 설치했으며 모든 클라이언트에 꼭두각시를 설치했습니다. 퍼펫 마스터와 함께 모든 퍼펫 클라이언트와 합류했습니다. 꼭두각시 마스터에서이 모든 퍼펫 클라이언트로 파일을 복사 할 수 있습니까?

예를 들면 다음과 같습니다.

내 데스크탑 (Puppet Master)에 datas.xls라는 파일이 있습니다. 이 파일을 다음 위치 (/ home / operator1 / Desktop / Backup /)의 모든 퍼펫 클라이언트에 어떻게 복사합니까?

최신 정보:

  • 여전히 파일이 공유되지 않습니다.
  • 이 줄을 수정하는 방법 puppet:///modules/module_name/datas.xls복사 할 파일이이 위치에 /etc/puppet/modules/mymodule/manifests/datas.xls있습니까?

클라이언트 오류 : (해결됨)

root@testing:~# puppetd --test 
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class sudo at /etc/puppet/manifests/site.pp:2 on node testing.chn.jd.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

클라이언트의 오류 2 :

root@tme13:~# puppetd --test
err: Could not run Puppet configuration client: Could not retrieve local facts: bad URI(is not URI?): http://169.254.169.254/2008-02-01/meta-data/<HTML><HEAD><TITLE>HTTP access denied</TITLE></HEAD><BODY><img src/

새로운 업데이트:

이 모듈을 모든 노드에 적용하는 방법은 무엇입니까? 파일이 모든 노드에 복사되도록합니다.


...하지만 이미이 질문을하지 않았습니까? askubuntu.com/questions/61080/…
fossfreedom

예.하지만 솔루션이 더 이상 작동하지 않습니다.
karthick87

또한 사용자가 일부 웹 사이트에서 콘텐츠를 복사 한 것은 분명하지 않습니다.
karthick87

아직도 새로운 질문을 할 이유는 없습니다 (?) btw 내가 호르헤가 준 링크에서 복사 한 것이 c / p라고; afaik 그 대답의 내용은 여전히 ​​작동합니다!?
Rinzwind

여기 또 다른 참조가 있습니다 : serverfault.com/questions/200101/…
Rinzwind

답변:


24

꼭두각시 (Puppet)는 여러분의 머리를 사로 잡는 괴물입니다. 아래에서는 모듈을 사용한다고 가정합니다. 모듈을 함께 사용하는 방법에 대한 자세한 내용이 필요하지 않은 경우 의견을 말하십시오.

이라는 새 모듈을 시작한다고 가정 해 보겠습니다 mymodule. /etc/puppet퍼펫 마스터 의 퍼펫 홈 디렉토리 (일반적으로 )에서 모듈 매니페스트 및 파일 디렉토리를 작성해야합니다.

mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files

그런 다음 해당 디렉토리에 파일을 작성하고 다음을 init.pp입력하십시오.

class myfile {
    file { '/home/operator1/Desktop/Backup':
        ensure => directory,
        mode => '0755',
        owner => 'operator1',
        group => 'operator1',
    }

    file { "/home/operator1/Desktop/Backup/datas.xls":
        mode => "0644",
        owner => 'operator1',
        group => 'operator1',
        source => 'puppet:///modules/module_name/datas.xls',
    }
}

그런 다음 datas.xls파일을 모듈의 files디렉토리에 넣 습니다 (이 예에서는) modules/mymodule/files/. ( 템플릿templates 디렉토리 도있을 수 있습니다 ).

에서 manifests/site.pp파일 당신은 같은 것을 수행하여 클래스 모듈을 수입하고 포함해야합니다 :

import 'mymodule'

node base {
    include myfile
}

node server1 inherits base {}
node server2 inherits base {
    # extra config here
}

모든 노드가 기본 노드에서 상속되는지 확인해야합니다. 퍼펫 0.25에서 다음과 같이 노드 이름에 정규식을 사용할 수 있습니다.

node server[0-9] inherits base {}

추가 설명이 필요한 경우 의견으로 알려주십시오.

꼭두각시 마스터와 대화하도록 클라이언트 설정

클라이언트에서 다음을 수행해야합니다.

sudo apt-get install puppet

그런 다음로 편집 /etc/default/puppet하고로 변경 START=no하십시오 START=yes.

또한 꼭두각시 마스터를 찾을 위치를 알려주 /etc/puppet/puppet.conf[main]섹션에 줄을 편집 하고 추가하십시오 .

server=puppet.mydomain.com

그런 다음로 테스트를 수행 할 수 있습니다 sudo puppetd --test. 키 오류가 발생하면 꼭두각시 마스터 서버로 이동하여 클라이언트 키에 서명해야합니다. 정확한 이름을 확인하기 위해 수행 sudo puppetca --list한 다음 sudo puppetca --sign server1.mydomain.com(또는 list 명령에서 서버 이름이 무엇이든) 할 수 있습니다 .

이제 꼭두각시 서비스를 시작하십시오 sudo service puppet start. 꼭두각시 서비스는 1 시간마다 실행되므로 꼭두각시 레시피를 업데이트하면 모든 클라이언트도 업데이트됩니다.

파일 삭제

원래 질문에서 파일을 삭제하는 방법을 알고 싶었습니다. 당신은 편집 manifests/init.pp할 것입니다

file { "/home/operator1/Desktop/Backup/datas.xls":
    ensure => absent,
}

다른 유용한 팁

문제가 발생하면 할 수있는 일이 몇 가지 있습니다. 퍼펫이 설치된 모든 컴퓨터에서 다음을 실행하여 구문을 확인할 수 있습니다.

puppet --parseonly --ignoreimport myfile.pp

또는 --ignoreimport플래그 를 가져 와서 전체를 확인하십시오 . 실제로 내가 찾은 오류가 아닌 재미있는 오류 메시지가 발생할 수 있습니다. 다음을 수행하여 퍼펫 클라이언트 시스템에서 퍼펫 라이브를 실행할 수도 있습니다.

sudo puppetd --test

다양한 색상으로 강조 표시된 오류 및 경고와 함께 다양한 유용한 출력을 보여줍니다. 더 자세한 정보를 원하면 다음을 실행할 수 있습니다.

sudo puppetd --test --debug

그러나 그것은 일반적으로 너무 많은 출력을 생성하여 넘어 가기가 어렵 기 때문에 이미 이전 단계를 시도하고 붙어 있고 모든 것이 완료된 것을 볼 필요가있는 경우에만 수행하십시오.

이것은 현재 직장에서 사용하는 꼭두각시 0.25.x를 기반으로하며 Ubuntu 10.04의 버전이기도합니다. 메인 섹션의 퍼펫 코드는 여전히 작동하지만 이후 버전의 퍼펫에는 출력 디버깅에 도움이되는 새로운 플래그가 있습니다.


오늘 밤이 솔루션을 사용 해보고 업데이트를 알려 드리겠습니다. 고마워 :)
karthick87

이 줄을 수정하는 방법 puppet:///modules/module_name/datas.xls복사 할 파일은이 위치에 있습니다/etc/puppet/modules/mymodule/manifests/datas.xls
karthick87

복사 할 파일을 넣어야 /etc/puppet/modules/mymodule/files/datas.xls합니다. 더 명확하게 답변을 업데이트하겠습니다.
Hamish Downer

감사합니다 매니페스트를 실행하는 방법?
karthick87

puppetmaster의 모든 노드에이 모듈을 적용하는 방법은 무엇입니까? 다음을 실행하여 모든 노드에 강제 적용하는 대신puppet agent --test
karthick87
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.