Puppetのインストールと動作確認、トラブル対処法:新人インフラ技術者のためのサーバー構築/運用自動化入門(3)(2/4 ページ)
サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。今回は、agent/master型のPuppetのセットアップ方法を順に解説。インターネットに接続できない環境や証明書の不整合の解決法も。
補足:インターネットに接続できない環境の場合
インターネットに接続できない閉じた環境の場合は、前述の【手順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側のインストールは以下の手順になります。
以下の手順です。
- OSのYumリポジトリ設定
- Puppet Labsのリポジトリ追加
- 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
Copyright © ITmedia, Inc. All Rights Reserved.