連載
» 2014年10月08日 18時00分 公開

新人インフラ技術者のためのサーバー構築/運用自動化入門(3):Puppetのインストールと動作確認、トラブル対処法 (2/4)

[菅原亮, 岡本隆史,NTT OSSセンタ]

補足:インターネットに接続できない環境の場合

 インターネットに接続できない閉じた環境の場合は、前述の【手順2】で登録するPuppet LabsのYumリポジトリの代わりとなるYumリポジトリをローカルに作成します。まずはインターネットに接続できる端末で、以下のRPMファイルをダウンロードしてください。

 なお、バージョンは執筆時の最新版である3.6.2になっていますので、適時読み替えて最新のものをダウンロードしてください(※32bit環境の場合はURLの「x86_64」を「i386」に読み替えてください)。

  • http://yum.puppetlabs.com/el/6/products/x86_64/
    • facter-2.1.0-1.el6.x86_64.rpm
    • hiera-1.3.4-1.el6.noarch.rpm
    • puppet-3.6.2-1.el6.noarch.rpm
    • puppet-server-3.6.2-1.el6.noarch.rpm
  • http://yum.puppetlabs.com/el/6/dependencies/x86_64/
    • ruby-augeas-0.4.1-3.el6.x86_64.rpm
    • ruby-rgen-0.6.5-2.el6.noarch.rpm
    • ruby-shadow-2.2.0-2.el6.x86_64.rpm
    • rubygem-json-1.5.5-1.el6.x86_64.rpm

 ダウンロードができましたら、パッケージを前回構築した自動構築サーバーに転送してPuppetのYumリポジトリを作成しましょう。YumリポジトリとするにはファイルにHTTPでアクセスできる必要があるので、Web公開用のディレクトリ(/var/www/html/)配下にディレクトリを作成してコピーします。ここではpuprepoディレクトリ(/var/www/html/puprepo/)に転送したものとします。

 転送ができましたら、自動構築サーバー上で以下のコマンドを実行してYumリポジトリのデータベースを作成しましょう。

# createrepo /var/www/html/puprepo
 
Spawning worker 0 with 8 pkgs
Workers Finished
Gathering worker results
 
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

 Yumリポジトリのデータベースを作成するコマンドがcreaterepoです。引数はRPMパッケージがあるディレクトリを指定します。実行後、指定したディレクトリ配下にrepodata/というディレクトリが作成され、その中にYumリポジトリのデータベースが入っています。

 今作成したYumリポジトリにアクセスしてみましょう。まずリポジトリ定義ファイルを作成しましょう。以下のような内容でディレクトリ(/etc/yum.repos.d/)配下に作成します。ここではファイル名をpuprepo.repo(/etc/yum.repos.d/puprepo.repo)とします。

 Yumの設定ファイル(/etc/yum.conf)にプロキシ設定がありますと、ローカルのYumリポジトリにアクセスできない場合があります。その場合はCentOSのインストール用DVDをYumリポジトリとして使う設定にして、プロキシ設定を使わないようにしてください。


[Puppet]
name=Puppet Repository
baseurl=file:///var/www/html/puprepo/
gpgcheck=0

 設定ができましたら、動作確認でpuppet-serverパッケージを検索してみましょう。以下のようになれば準備完了です。【手順3】に進んでください。

# yum search puppet-server
 
Puppet                                                   | 2.9 kB     00:00 ...
Puppet/primary_db                                        |  33 kB     00:00 ...
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
========================== N/S Matched: puppet-server ==========================
puppet-server.noarch : Server for the puppet system management tool
 
  Name and summary matches only, use "search all" for everything.

 なお【手順3】でパッケージが足りないとエラーが出た場合は、ファイルを追加後にcreaterepoを再実行し、以下の手順でYumコマンドがキャッシュしているデータベースをクリアしてください。

# yum clean all
 
Loaded plugins: fastestmirror
Cleaning repos: Puppet c6-media
Cleaning up Everything
Cleaning up list of fastest mirrors

Puppetインストール(agent側)

 agent側のインストールは以下の手順になります。

以下の手順です。

  1. OSのYumリポジトリ設定
  2. Puppet Labsのリポジトリ追加
  3. Puppet agentのインストール

 以下、順に紹介します。

【手順1】OSのYumリポジトリ設定

 master側の手順2と同様にリポジトリ設定してください。自動構築サーバー上のYumリポジトリを利用する場合は設定ファイル(/etc/yum.repos.d/CentOS-Media.repo)を以下のように変更し、Yumリポジトリに設定して実行してください。

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
        http://{自動構築サーバーのIPアドレス}/centos65/  ←追加
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 設定ができましたら、動作確認で適当なパッケージを検索してみましょう。試しにntpパッケージを検索してみます。以下のようになれば準備完了です。

# yum --disablerepo=\* --enablerepo=c6-media search ntp
Loaded plugins: fastestmirror, security
Determining fastest mirrors
 * c6-media:
=============================== N/S Matched: ntp ===============================
ntp.x86_64 : The NTP daemon and utilities
ntp-doc.noarch : NTP documentation
ntp-perl.x86_64 : NTP utilities written in perl
ntpdate.x86_64 : Utility to set the date and time via NTP
cyrus-imapd.x86_64 : A high-performance mail server with IMAP, POP3, NNTP and
                   : SIEVE support
fontpackages-devel.noarch : Templates and macros used to create font packages
fontpackages-filesystem.noarch : Directories used by font packages
fontpackages-tools.noarch : Tools used to check fonts and font packages
python-twisted-news.x86_64 : NNTP protocol implementation with client and server
  Name and summary matches only, use "search all" for everything.

【手順2】Puppet Labsのリポジトリ追加

 master側と同様の手順でリポジトリ設定してください。master側に作成したPuppetリポジトリを利用する場合は、以下のような内容でディレクトリ(/etc/yum.repos.d/)配下に作成します。ここではファイル名をpuprepo.repoとしています。

[Puppet]
name=Puppet Repository
baseurl=http://[自動構築サーバーのIPアドレス]/puprepo/
gpgcheck=0

 設定ができましたら、動作確認でmaster側で試したように、ここでもpuppet-serverパッケージを検索してみましょう。以下のようになれば準備完了です。

# yum --disablerepo=\* --enablerepo=c6-media,Puppet search puppet-server
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * c6-media:
========================== N/S Matched: puppet-server ==========================
puppet-server.noarch : Server for the puppet system management tool
  Name and summary matches only, use "search all" for everything.

【手順3】Puppet agentのインストール

 ここまでの作業でagent側でもPuppetがYumコマンドを使ってインストールできるようになっています。以下のコマンドでPuppet agentをインストールします。

設定が終わるまでは、puppetサービスを動かさないでください。


# yum install puppet -y
インターネットに接続できる環境の場合
# yum --disablerepo=\* --enablerepo=c6-media,Puppet install puppet -y
自動構築サーバーのPuppetリポジトリを利用する場合

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。