2016年2月9日火曜日

「RHEL4/CentOS4」に Puppet Agentを入れる方法 (rpmコマンド版)


なのまるです。

やんごとなき理由により、RedHat Enterprise Linux 4系(RHEL4/CentOS4)にPuppet Agentを入れました。
その時のメモです。


もくじ



前提条件

  • Puppet Master と agent の構成
  • 例は「i386」版を利用

手順

Puppet Agent を 「RHEL4/CentOS4」 に入れる!?理由などは最後に書いておきましたので。
まずは、手順
  • RPM GPG キーの追加
  • Puppet Enterprise の Agent ダウンロード
  • Puppet Enterprise の Agent インストール
  • Puppet Agentの設定
  • Puppet Master との接続確認

RPM GPG キーの追加

最初に、パッケージの署名で使われる公開鍵を持って来ました!
wget https://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
gpg --import RPM-GPG-KEY-puppetlabs
うまくインポートされていれば
gpg --fingerprint puppetlabs.com
pub   4096R/4BD6EC30 2010-07-10 [expires: 2016-07-08]
      Key fingerprint = 47B3 20EB 4C7C 375A A9DA  E1A0 1054 B7A2 4BD6 EC30
uid                  Puppet Labs Release Key (Puppet Labs Release Key) info@puppetlabs.com

と、なるはず!

Puppet Enterprise の Agent ダウンロード

ここから、Puppet Masterにあったバージョンのagentをダウンロードしてきます!
Previous Releases
Puppet Enterpriseの方がバージョン進んでいるので、気を付けること。

  • バージョンが離れていると、以下のようなエラーメッセージが出ます!

Error: Could not request certificate: Error 400 on SERVER: The environment must be purely alphanumeric, not 'puppet-ca' Exiting; failed to retrieve certificate and waitforcert is disabled

例: i386版の『Puppet Enterprise 3.8.3 Simplified Agent Packages』を使います。
wget https://pm.puppetlabs.com/puppet-enterprise/3.8.3/puppet-enterprise-3.8.3-el-4-i386-agent.tar.gz.asc
wget https://pm.puppetlabs.com/puppet-enterprise/3.8.3/puppet-enterprise-3.8.3-el-4-i386-agent.tar.gz
gpg --verify puppet-enterprise-3.8.3-el-4-i386-agent.tar.gz.asc puppet-enterprise-3.8.3-el-4-i386-agent.tar.gz

最後のコマンドがうまくいけば、こんな表示になるはず。
gpg: Signature made Wed 28 Oct 2015 05:57:32 AM JST using RSA key ID 4BD6EC30
gpg: Good signature from "Puppet Labs Release Key (Puppet Labs Release Key) info@puppetlabs.com"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 47B3 20EB 4C7C 375A A9DA  E1A0 1054 B7A2 4BD6 EC30

気にならない人は「tar.gz」だけ持ってきて。

Puppet Enterprise の Agent インストール

rpmコマンドでインストールしていきます。
tar zxf puppet-enterprise-3.8.3-el-4-i386-agent.tar.gz
cd puppet-enterprise-3.8.3-el-4-i386-agent/agent_packages/el-4-i386
rpm -ivh pe-*.rpm
本当はyumのリポジトリとか作って効率化させたいんだけど、それは後日!

Puppet Agentの設定

/etc/puppetlabs/puppet/puppet.confを環境に合わせて編集します!
自分はマスターサーバーの設定をしました。


  • 修正箇所だけ抜粋

[agent]
    report = true
    classfile = $vardir/classes.txt
    localconfig = $vardir/localconfig
    graph = true
    pluginsync = true
    server = 「マスターサーバーのhost名 or IP」


Puppet Master との接続確認

最後にサーバーとの接続確認です!
puppet agent --test
ここで、エラーらしきものがなければ大丈夫でしょう!
sudo service pe-puppet start
sudo /sbin/chkconfig --list pe-puppet
などで、サービス起動自動起動を確認します。
設定はお好みで。

Puppet Agent を 「RHEL4/CentOS4」 に入れる!?

結論だけ書くと、「Puppet Enterprise」のAgentを入れることで解決させました。
Puppetには、
  • Puppet Enterprise(有償版)
  • Puppet OSS(無償版)
が存在していて、要件によって選べばいいと思います。
  • 追加の設定機能
  • グラフィカル・ユーザーインターフェース
  • サポート
が、Puppet Enterpriseには追加されているそうです。
通常は、Puppet OSS版はRHEL5/CentOS5から、しか対応していません。
なので、ちょっとグレーな作業になります。。。

と、思ったんですが。
日本語ドキュメントに「10ライセンスまで無料」って、書いてありました!
Puppet Enterprise — Puppetを強化したエンタープライズ・ソリューションで、追加の設定機能、グラフィカル・ユーザーインターフェース、サポートが備わっています。
Puppet Enterpriseは10ライセンスまで無料で利用可能です。
ダウンロードはこちら。追加のライセンスについては、sales@puppetlabs.comまでご連絡ください。
日本語ホーム — Documentation — Puppet Labsより

まとめ

特に、難しいところはなかったと思います。
サーバーが3台を超えたら、yumのリポジトリ作って効率化したくなります!

yumは後日対応します!


この本で、Puppet masterとagentの構成は勉強できませんが。
間違いなくPuppetの使い方がわかると思います!

Zenback