서버 PUPPET 중앙 집중식 관리 (1) 배포 및 노드 추가

6078 단어

하나.FAQ


Q:puppet이 뭐예요?


A:puppet 영어는 원래 인형을 뜻하는데 여기서pupet은 원본을 시작하는 관리 소프트웨어를 가리킨다.서버를 중앙 집중식으로 관리할 수 있습니다.이 소프트웨어는 서버를 관리하는 방식이 인형을 조종하는 것과 유사하기 때문에 소프트웨어의 이름은puppet이다.

Q:puppet은 나에게 유용합니까?


A:linux unixfreebsd나macos시스템 관리자라면puppet은 당신에게 매우 유용합니다. 만약 당신이 윈도우즈 사용자라면 당분간 당신에게 쓸모가 없습니다.만약 수백 수천 대의 서버를 관리하고 있지만, for 순환에 ssh나expect를 추가하는 방식으로 서버를 관리하고 있다면,puppet를 시도해 보아야 한다.하루 종일 다른 서버에서 로그아웃하고 싶지 않으면.시간을 내서 놀러 오거나 새로운 것을 배우는 것은 고려하지 않는다.

Q:puppet은 이미 생산 환경에 사용할 수 있습니까?


A:네, 전혀 문제가 없습니다. 구글도 6000대가 넘는 애플 데스크톱 시스템을 puppet으로 관리했습니다. 다음은 공식적인 puppet 사용자 목록입니다. who using puppet

Q:puppet 인증서 오류


A:puppet 클라이언트와 서버 측은 ssl 연결을 통해 안전성을 확보하고 ssl 연결에 사용되는 인증서는 x.509 인증서입니다.puppet는 인증서를 직접 생성합니다.클라이언트든 서버든ssl은 연결할 때 인증서의 CN 이름이 호스트 이름과 일치하는지 비교합니다. 일치하지 않으면 인증서 검증 오류가 발생합니다.이것은 가장 흔히 볼 수 있는 문제다.
이 문제를 해결하는 방법은 먼저 기계의 호스트 이름을 고정한 다음에puppet가 이미 자체적으로 생성한 ssl 디렉터리를 삭제하는 것이다. 예를 들어/etc/puppet/ssl이다.새 인증서를 생성하기 위해puppet을 다시 실행합니다.서로 다른 방법으로 설치된puppet, ssl의 경로가 다르고 debian 아래에는/var/lib/puppet/ssl
서버 측과 클라이언트에서 동시에 이렇게 조작한다.
고정된 기계의 호스트 이름이란 호스트 이름 설정 파일에 설정된 호스트 이름 (debian은/etc/hostname,centos는/etc/sysconfig/network의 HOSTNAME) 과 호스트name 명령을 실행하여 출력된 호스트 이름이 일치하도록 보장하는 것이다.
 

2.배포 만들기 배포 만들기


1. 설치 배포


표준 Puppet Enterprise 배포는 다음과 같습니다.
  • 많은 Puppet 관리로 구성된 가상/물리적 시스템 노드..
  • 하나 이상의 노드가 구성된 Puppet 관리 서비스..
  • 최소한 하나의 컨트롤러가 있다.PuppetDB 지원
  • 자신의 DNS 호스트를 요구하고, 정반대 해석을 요구한다..

  • 공식 문서는 쓸데없는 말이 너무 많다.열거하지 마라, 마른 물건을 말해라.
    두 개의 가상 머신을 준비합니다. 하나는 관리자이고 하나는 클라이언트입니다.
    이곳은 두 대의 centos6 가상 기기를 준비하여 실험을 한다.
    Rubu에 대한 Puppet 지원
    Ruby version    puppet2.6    puppet2.7    puppet3.0
    1.85 지원은 지원되지 않음
    1.8.7 지원
    1.9.3 지원되지 않음 지원되지 않음
    1.9.0/1/2 지원되지 않음 지원되지 않음
    1.8.1/6 지원되지 않음 지원되지 않음

    Puppet 설치 단계

  • Ruby Ruby-libs Ruby-shadow를 설치하여 사용자와 그룹 관리를 진행한다
  • Facter Puppet Pupper-server 설치
  • 호스트 이름, 도메인 이름 해석 또는 지정hosts를 설정합니다
  • 명령/etc/init를 통해.d/puppetmaster start에서 서버를 시작하거나 프로세스가 아닌 방식으로 서버를 시작합니다. 명령puppetmaster --no-daemonize --verbose를 통해 관련 로그와 출력을 보십시오
  • 클라이언트 프로필 Puppet.conf는 서버에서 터미널에서puppet 에이전트-test를 실행하거나puppet 에이전트--test--server를 직접 실행합니다.domain.com과 마스터가 상호작용하여 서명 인증을 완성합니다
  • 서버에 노드 정보를 설정하여 클라이언트에게 무엇을 해야 하는지 알려줍니다
  • 문법이 틀렸는지 확인하고puppetparservalidate 테스트를 사용합니다.pp
  • 클라이언트가 puppet 에이전트 --test를 다시 실행합니다

  • Linux에서 설치(Puppet3.x, RHEL5.X+, CentOS5.x+)


    패키지 관리자를 사용하여 설치


    puppet 공식 소스http://yum.puppetlabs.com
    원본을 사용할 때 시스템 버전을 확인하여baseurl을 변경합니다
    [root@localhost ~]# cat /etc/redhat-release
    CentOS release 6.4 (Final)
    [root@localhost ~]# vim /etc/yum.repos.d/puppet.repo
    [puppet-labs]
    name=puppet-labs-repo
    baseurl=http://yum.puppetlabs.com/el/6Server/products/x86_64/
    gpgcheck=0
    enabled=1
    [root@localhost ~]# yum list
    ...
    [root@localhost ~]# yum -y install ruby ruby-libs ruby-shadow
    ...
    [root@localhost ~]# ruby -v
    ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
     puppetlabs-release.noarch
    [root@localhost ~]# yum install puppetlabs-release.noarch
    ...
     
    [root@localhost ~]# yum install puppet-server
    ...
     
    [root@localhost ~]# yum install puppet
     hosts
    [root@localhost ~]# vim /etc/hosts
    192.168.181.42 puppet.domain.com
    192.168.181.43 agent.domain.com

    방화벽 구성
    iptables -A INPUT -p tcp --dport 8140 -j ACCEPT

    호스트 프로필 구성
     
    [root@localhost ~]# vim /etc/puppet/manifests/site.pp
    node default { file { "/tmp/puppettest1.txt": content => "hello,First Puppet test"; }}
    [root@localhost ~]# service puppetmaster start
     
    [root@agent ~]# service puppet start
     
    [root@agent ~]# puppet agent --server puppet.domain.com --test
    Info: Caching certificate for ca
    Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
    Info: Creating a new SSL certificate request for agent.domain.com
    Info: Certificate Request fingerprint (SHA256): 09:3C:54:13:5B:AF:00:3E:B3:6E:18:C6:79:84:EB:A8:70:2C:B2:B0:04:7E:42:23:5C:1B:1E:44:B0:5C:39:00
    Info: Caching certificate for ca
    Exiting; no certificate found and waitforcert is disabled
     
    [root@localhost ~]# puppet cert --list
      "agent.domain.com" (SHA256) 09:3C:54:13:5B:AF:00:3E:B3:6E:18:C6:79:84:EB:A8:70:2C:B2:B0:04:7E:42:23:5C:1B:1E:44:B0:5C:39:00
    [root@localhost manifests]# puppet cert sign agent.domain.com
    Notice: Signed certificate request for agent.domain.com
    Notice: Removing file Puppet::SSL::CertificateRequest agent.domain.com at '/var/lib/puppet/ssl/ca/requests/agent.domain.com.pem'
     
     
     
    [root@agent ~]# puppet agent --test --server puppet.domain.com
    Info: Caching certificate for agent.domain.com
    Info: Caching certificate_revocation_list for ca
    Info: Caching certificate for agent.domain.com
    Info: Retrieving plugin
    Info: Caching catalog for agent.domain.com
    Info: Applying configuration version '1386938219'
    Notice: /Stage[main]/Main/Node[default]/File[/tmp/puppettest1.txt]/ensure: defined content as '{md5}69edbc23ca13613a136d61fb4f662d5e'
    Info: Creating state file /var/lib/puppet/state/state.yaml
    Notice: Finished catalog run in 0.03 seconds
    [root@agent ~]# more /tmp/puppettest1.txt
    hello,First Puppet test

    기타 주의에 서명하다


    클라이언트가 다시 서명할 때'hostname'을 삭제해야 합니다.pem
    Find /var/lib/puppet/ssl/ -iname 'hostname'.pem -exec /bin/rm -rf {}

    서버도 서명 관련 파일을 삭제해야 합니다
    find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete

    클라이언트의 인증 정보를 삭제하고 명령을 사용합니다.
    puppet cert --clean {node certname}

    동시에
    Find /var/lib/puppet/ssl/ -iname 'hostname'.pem -exec /bin/rm -rf {}

    본인은 대변과 유반도 (데스크톱 linux) 에 싫증이 나기 때문에 스스로 깨닫도록 하세요.

    소스 설치 사용


    추가

    Windows에서 설치 사용


    추가

    좋은 웹페이지 즐겨찾기