
ども。 久しぶりのNagiosネタです!
今回は調子に乗って、build環境に [docker + mock]を使ってみました!
もくじ
環境
buildの環境です。| 項目 | 値 |
|---|---|
| docker host | CoreOS |
| docker image | centos:latest (CentOS7) |
| docker image | auchida/mock-rpmbuilder |
| SRPM | EPEL-7 |
Dockerホストで共有フォルダを作成
mkdir /tmp/rpmbuild chmod a+w /tmp/rpmbuild # ← あとで必要なので、誰でも書きこみ可能とする
Docker Image (centos:latest) をダウンロード
docker pull centos:latest参考:
User Feedback
Docker (centos:latest) で、 SRPMを取得、再構築
Docker (centos:latest) の起動
docker run -v /tmp/rpmbuild:/root/rpmbuild -i -t centos:latest /bin/bash
RPMBuild 用のパッケージをインストール
yum install gcc make gettext rpm-build epel-release -y
Nagios SRPMの取得(EPEL)
yumdownloader --source nagios
Nagios SRPMの展開
rpm -ivh nagios-4.2.4-2.el7.src.rpm
patchファイルのダウンロード
ももーいさんのパッチを利用させていただきました!curl -L -o rpmbuild/SOURCES/nagios-jp-4.2.4.patch.gz http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.2.4.patch.gz
SPECファイルの編集
Patchを提示しておきます。日本語JP SRPM を作成
rpmbuild -bs rpmbuild/SPECS/nagios-jp.spec
ここで、いったん centos:latest
の、出番は終了
Docker Image (auchida/mock-rpmbuilder) をダウンロード
docker pull auchida/mock-rpmbuilder参考:
Card
日本語JP SRPM をBuild
docker run -e MOCK_CONFIG=epel-7-x86_64 -e MOCK_TARGET=SRPMS -v /tmp/rpmbuild:/rpmbuild --privileged=true -i auchida/mock-rpmbuilder
build中・・・
INFO: mock.py version 1.2.18 starting (python version = 3.5.1)...
Start: init plugins
INFO: selinux disabled
Finish: init plugins
Start: run
INFO: Start(/rpmbuild/SRPMS/nagios-4.2.4-2.el7.centos.jp.src.rpm) Config(epel-7-x86_64)
Start: clean chroot
Finish: clean chroot
Start: chroot init
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
Mock Version: 1.2.18
INFO: Mock Version: 1.2.18
Start: yum install
Finish: yum install
Start: creating cache
Finish: creating cache
Finish: chroot init
INFO: Installed packages:
Start: build phase for nagios-4.2.4-2.el7.centos.jp.src.rpm
Start: build setup for nagios-4.2.4-2.el7.centos.jp.src.rpm
Finish: build setup for nagios-4.2.4-2.el7.centos.jp.src.rpm
Start: rpmbuild nagios-4.2.4-2.el7.centos.jp.src.rpm
Finish: rpmbuild nagios-4.2.4-2.el7.centos.jp.src.rpm
Finish: build phase for nagios-4.2.4-2.el7.centos.jp.src.rpm
INFO: Done(/rpmbuild/SRPMS/nagios-4.2.4-2.el7.centos.jp.src.rpm) Config(epel-7-x86_64) 2 minutes 6 seconds
INFO: Results and/or logs in: /rpmbuild/output
INFO: Cleaning up build root ('cleanup_on_success=True')
Start: clean chroot
Finish: clean chroot
Finish: run
出来上がり
出力Dir構造/tmp/rpmbuild/output/ |-- build.log |-- nagios-4.2.4-2.el7.centos.jp.src.rpm |-- nagios-4.2.4-2.el7.centos.jp.x86_64.rpm |-- nagios-common-4.2.4-2.el7.centos.jp.x86_64.rpm |-- nagios-debuginfo-4.2.4-2.el7.centos.jp.x86_64.rpm |-- nagios-devel-4.2.4-2.el7.centos.jp.x86_64.rpm |-- root.log `-- state.logとなりました!
まとめ
さらっとやっているように書きましたが、- Docker
- mock
ここで、情報まとめておけば何とかなるかなー?って。
現場からは以上でーす!
