puppetでLAMP構成を構築する part2

今回から、LAMP構成の一要素であるphpのpuppetize(puppetで構成管理すること)を取り上げたいと思います。
今日の記事では、puppetize前の注意事項を取り上げます。

環境

phpインストールをpuppetizeする前に

シンプルにpuppetizeする場合、pacakgeリソースを使用すれば良いのは容易に想像がつくと思います。
っが、phpのバージョンによっては少しだけ工夫が必要になります。

例えば、CentOS6系にphp5.6をインストールしたいとします。
しかし、yum providesを実行するとphp 5.3系しかリポジトリから取得できない状態となっています。

$ cat /etc/redhat-release
CentOS release 6.8 (Final)
$ 
$ yum provides php
読み込んだプラグイン:fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.iij.ad.jp
 * remi-safe: repo1.sea.innoscale.net
 * updates: ftp.iij.ad.jp
extras                                                                                                                                                 | 3.4 kB     00:00
puppetlabs-deps                                                                                                                                        | 2.5 kB     00:00
puppetlabs-products                                                                                                                                    | 2.5 kB     00:00
remi-safe                                                                                                                                              | 2.9 kB     00:00
remi-safe/primary_db                                                                                                                                   | 705 kB     00:00
updates                                                                                                                                                | 3.4 kB     00:00
updates/primary_db                                                                                                                                     | 3.7 MB     00:00
php-5.3.3-47.el6.x86_64 : PHP scripting language for creating dynamic web sites
リポジトリー        : base
一致          :



php-5.3.3-48.el6_8.x86_64 : PHP scripting language for creating dynamic web sites
リポジトリー        : updates
一致          :

ですので、例えば以下のようにpuppetizeすると、php5.3系がインストールされてしまいます。
仮にensure => latestとしても一緒です。

      package { 'php':
        ensure  => present,
      }

CentOS6系にphp5.6を入れるには、事前にremiをyumリポジトリに追加しておく必要があります。
remiとはリポジトリの一種で、これを追加しておくことで、CentOS標準のリポジトリだけでは提供されていないパッケージもインストールできるようになります。
似たものとしてepelやrpmforgeなどがあります。

Remi's RPM repository

php5.6はremiで提供されているので、/etc/yum.repo.d/にremiを追加しておくことでyumでインストールできるようになります。
puppetizeする際も、このことを考慮する必要があります。

次回の記事で、このことを踏まえてpuppetizeを始めたいと思います。