ども。 久しぶりの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
ここで、情報まとめておけば何とかなるかなー?って。
現場からは以上でーす!