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

MCollective 에서 제어하기 위해 각 노드에 설치하는 소프트웨어는 mcollectived 라고 부르는 대몬이다. mcollectived 는 애플리케이션 서버로서 기능을 하기 때문에 서버로 부른다. 노드에 어떤 제어를 하기 위해서는 agent plugins 를 설치해야 사용을 할 수 있다.

Connector Plugins

mcollectived 서비스가 작동하기 위해서는 connector plugin, security plugin 이 필요하다. 두 플러그인에 대해서는 앞에서 설명을 했기 때문에 생략을 함.

패키지를 통해서 Agensts 설치하기

Puppet Lab 에서 일반적으로 많이 사용하는 작업에 대해서 각종 agent 를 제공한다. 이미 Puppet Labs yum repo를 설정했다면 yum 으로 바로 설치가 가능하다.

새로운 agent 를 설치하였으면 mcollectived 를 재시작하여 mcollective 가 agent 를 읽어들이도록 해야 한다. mco inventory 명령을 이용하여 설치한 agent 를 확인할 수 있다.

mco find 명령을 이용하여 특정한 agent 를 설치한 모든 서버의 목록을 찾을 수 있다.

agent 설치 작업은 모든 서버에 동일하게 해야 한다. 또한 client 노드에서 agent 에 해당하는 client 패키지를 설치해야 한다.

소스에서 설치하기

Copy to Plugins Directory

생략

Disabling Agents

특정 agent 를 비활성화하려면 어떻게 해야 할까?

첫 번째는 server.cfg 에서 비활성화할 agent 를 지정한다.

두 번째는 특정 agent 에 대해서 설정 파일을 만드는 방법이다.

이러한 값을 변경한 경우 mcollectived 를 reload 해 주어야 한다.

Client Plugins 사용하기

Client plugins 은 해당하는 agents 에 명령을 보낼 수 있는 애플리케이션이다. 서버에 해당하는 agent 를 설치한 경우에만 유효하다.

client plugins 을 설치한 후 doc 명령어로 사용 가능한 애플리케이션 목록을 볼 수 있다.

각 애플리케이션은 mco client 에 subcommands (faces 라고 부름)을 추가하며 각 client plugin 에서 제공하는 명령에 쉽게 접근할 수 있도록 해 준다. (The applications add custom subcommands (called faces) to the mco client, allowing easy access to the commands provided by each client plugin. ) 각 플러그인에 대해서는 help 명령을 통해 문서를 볼 수 있다.

https://github.com/puppetlabs/mcollective-package-agent package agent 참고.

help 명령을 통해서 해당 명령에 대한 간단한 syntax 를 볼 수 있지만 input, output 에 대한 상세한 내용은 오직 plugin 문서에서만 볼 수있다.

 

참고로 puppet 을 설치하지 않으면 client 실행시 여러가지 에러가 났다. 아래에서 node1.example.net 에는 puppet 을 실행하지 않은 경우이다.

 

플러그인 찾기

새로운 플러그인이 필요하면 먼저 기존에 만든 agent 가 있는지 확인을 한다. plugin agent와 clients를 찾을 첫번째 위치는 Puppet Labs 이다.

mcollective plugins 은 다음을 통해서 확인할 수 있다.

http://projects.puppetlabs.com/projects/mcollective-plugins/wiki

https://github.com/search?utf8=%E2%9C%93&q=mcollective

불 행하게도 GitHub에 있는 많은 모듈들은 MCollective 의 예전 버전을 위해서 만들어졌다. 2014년 기준 최근 2년간 플러그인에 대한 요구사항이 매우 많이 바뀌었기 때문에 Learning MCollective 의 저자는 2013년 이후로 업데이트 되지 않은 플러그인은 피할 것을 추천하고 있다.

mco plugin package 명령으로 플러그인 패키지를 만들 수 있으면 가장 좋다. 서버에는 -agent 패키지를 설치하고 클라이언트에는 -client 패키지를 설치한다. 그러고 나서 새로운 에이전트를 위해서 mcollectived 를 재시작 해야 한다.plugin 에 대한 패키지를 빌드할 수 없으면 소스에서 플거르인을 설치하는 프로세스는 P25 의 "Installing from Source"에 문서가 있다.

추천하는 플러그인

Plugin 이름설명
Puppet Labs Plugins https://github.com/puppetlabs/mcollective-pluginsAgents for mongodb-registration, NRPE, and many others
mcollective-test https://github.com/ripienaar/mcollective-testA set of helpers to assist in writing unit and integration tests for MCollective agents and applications
iptables agent https://github.com/puppetlabs/mcollective-iptables-agentPuppet Labs agent for controlling iptables
Shell Agents (https://github.com/cegeka/mcollective-shell-agent)shell 명령을 날릴 수 있는 에이전트
PuppetDB Discovery https://github.com/ploubser/mcollective-puppetdb-discoveryDiscovery plugin that uses PuppetDB as the source
Nadeau's Plugins https://github.com/nadeau/mcollective-pluginsAgents for procfs , lvm , lxc , drbd

OMRY's Agents https://github.com/omry/mcollective-plugins

Agents for grep , monit , status files , uptime , reboot ...
Zcollective https://github.com/scalefactory/zcollectiveConfigure Zabbix using data discovered using MCollective
Logstash Audit https://github.com/puppetlabs/mcollective-logstash-auditAn audit plugin that produces logs suitable for Logstash

GitHub에서 매우 많은 플러그인을 찾을 수 있다. https://github.com/search?q=mcollective 를 살펴보자.

Labels
  • No labels