Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

Learning Mcollective 책의 내용을 이용하여 제작한 Puppet module

https://github.com/jorhett/puppet-mcollective 모듈을 fork 하여 https://github.com/taejoonmoon/puppet-mcollective 에 모듈을 만들었음.

vagrant 에서 테스팅을 할 경우는 아래와 같이 하면 https://github.com/taejoonmoon/puppet-mcollective 모듈을 이용하여 설치를 함. 기본은 activemq로 되어 있음

ActiveMQ 이용하여 mcollective 설정하기

  • https://github.com/taejoonmoon/puppet-mcollective 모듈을 이용할 경우 작업해야 할 부분임. activemq 기준임
  • SSL middleware security (Learning Mcollective 127 page)
    • 노드에서 브로커에 접속할 수 있는지, 암호화된 통신을 하는지를 제어함.

    • 현재는 Anonymous TLS 가 아닌 CA-Verified TLS 설정을 하여 암호화된 user/password + Cerfiticate 체크를 함께 하도록 구성을 하였음.

    • CA는 따로 구성하지 않고 Puppet CA를 이용함.

    • CA-Verified TLS Clients 세팅하기 P140

    • Create a Puppet keypair on the client node : mcollective client 를 설치한 해당 user로 명령어 실행함. 아래에서는 mcollective client 에서 Puppet CA를 이용하여 vagrant user 의 인증서를 요청함

    • Puppet CA 에서 해당 user 에 대해서 sign을 함. (Puppet CA 서버에서 인증을 해야 함)

    • Puppet CA 서버에서 /var/lib/puppet/ssl/ca/signed/vagrant.pem 파일을 mcollect client 를 설치한 서버의 /home/vagrant/.puppet/ssl/certs 로 자동 복사를 함. PuppetCA서버에서 해당 파일을 수동으로 복사할 필요는 없음

  • mcollective security ((Learning Mcollective 153 page)
    • Pre-Shared key authentication 은 사용하지 않고 SSL Authentication을 사용함. data 와 SSL-signed hash 가 TLS를 통해 암호화되어 통신을 하도록 구성을 함.

    • 아래에서는 SSL Authentication 설정하는 방법입니다.

    • p154 openssl로 private.pem, public.pem 만들어서 아래 puppet module 에 두면 mcollective 서버의 /etc/mcollective/ssl/server/ 에 복사를 함. 초기에 한번만 하면 됨.

    • Client 설정을 위해서는 client key 에 대한 디렉토리 설정을 client user 의 .mcollective.d 에 함. mcollective/manifests/userconfig.pp 를 통해서 자동으로 설정을 하며 수동으로 하지 않아도 됩니다.

    • client user 의 public_key 는 mcollective 서버의 /etc/mcollective/ssl/clients에 배포가 되어야 하며 puppet 모듈의 /etc/puppet/modules/mcollective/files/ssl/clients/ 디렉토리에 복사를 하면 배포를 할 수 있음.

    • modules/profiles/manifests/mcollective_client.pp 에 해당 user 를 추가해 주면 해당 user 의 home directory 에 .mcollective 파일이 생깁니다. 이제 해당 user 로 mco ping 등 명령어를 테스팅 해 보면 됩니다.

    • 이렇게 작업을 하고 나서는 puppet 을 실행해야 합니다.
    • 이렇게 구성을 한 경우 다음과 같이 설정이 됩니다.
      • 모든 server는 동일한 public, private key를 가짐

      • 모든 server는 모든 client 의 public key를 가짐

      • 모든 client 는 서버의 공유 public ey를 가짐.

주의사항

위 에서 만든 vagrant 이미지로 실행을 했을 때 ssl 부문에 문제가 있는 듯 하다. ssl 을 사용하지 않고 security_provider 로 psk 를 사용하면 일단 작동은 한다. 예전에는 작동을 했을 건데 재확인이 필요하다.

Labels
  • No labels