ansibleでwordpressサーバー構築する際にphpのバージョンを指定する
ansibleのgithubからwordpressのplaybookをクローンし何も考えずに実行するとPHPのバージョンが古いままだったのでPHPのバージョンを挙げるようにplaybookを書き換えた。そのときのメモです。
ベストプラクティスやクローンしたものを見るとyumのリポジトリすらホストマシンからcopyモジュールを使ってマネージドマシンにコピーしている。
ってことでPHPの様々なバージョンをインストールできるremiリポジトリをマネージドマシンに登録する。ってのが一番の目的です。
まずremi.repoをホストマシンに準備します。
[remi] name=Remi's RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/remi/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/remi/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php55] name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/php55/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/php55/mirror # NOTICE: common dependencies are in "remi-safe" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php56] name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/php56/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/php56/mirror # NOTICE: common dependencies are in "remi-safe" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-test] name=Remi's test RPM repository for Enterprise Linux 6 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/6/test/$basearch/ mirrorlist=http://rpms.remirepo.net/enterprise/6/test/mirror # WARNING: If you enable this repository, you must also enable "remi" enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-debuginfo] name=Remi's RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-remi/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php55-debuginfo] name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-php55/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-php56-debuginfo] name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-php56/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [remi-test-debuginfo] name=Remi's test RPM repository for Enterprise Linux 6 - $basearch - debuginfo baseurl=http://rpms.remirepo.net/enterprise/6/debug-test/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
をremi.repoとしてroles/common/filesに保存します。
RPM-GPG-KEY-remiも同じく
filesの配下に保存します。
もう一つ必要なものがあります。
remi.repoでPHPをインストールしようとしたときに[libzip.4.so]が存在しないということでインストールできないです。
ですのでlibzip.4.soもyumでインストールするようにします。
playbookの記述
roles/common/のplaybookに
- name: Import rpm package libzip yum: name=http://rpmfind.net/linux/remi/enterprise/6/remi/x86_64/libzip-last-1.1.2-1.el6.remi.x86_64.rpm state=present - name: Copy the REMI repository from files copy: src=remi.repo dest=/etc/yum.repos.d/remi.repo - name: Import remi gpg-key copy: src=RPM-GPG-KEY-remi dest=/etc/pki/rpm-gpg
phpをインストールするplaybookに
yum: name=php state=present enablerepo=remi-php56
を追加しましょう。タスクの名前は何でもいいです。
この方法を知っていれば、ansibleで自由にリポジトリの選択ができるのではないでしょうか。