nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

OpenShift Origin v1.1 開発Vagrant環境を構築する

この投稿はOpen PaaS Advent Calendar 2015の14日目の記事です。

以前OpenShift Origin v3の最新版を試す - Vagrantで構築編OpenShift Origin v3の最新版を試す - 利用編という2つの記事を書きましたが、7月時点のものでありバージョンはv1.0系でした。現時点ではv1.1系なので、内容をアップデートしておきます。

このエントリはOpenShiftをソースコードからビルドしてStandaloneモードで動作させる方法です。開発やデバッグなどの目的で動作させる方法ですので、通常の運用する形態のものを動作させたい場合はインストーラーでインストールするopenshift-ansibleとVagrantでOpenShift Origin v1.1のAll-in-one環境を構築するのほうを参照してください。

Fedora 23でのVagrant libvirtのセットアップまでのステップはVagrantで構築編から変更はありませんが、古いfedora_instイメージを持っている場合は一度削除して更新したほうが良いです。現時点でのイメージの最終更新日時は12/10になっています。

vagrant box remove fedora_inst

v1.1のコンパイルには前回記述した2GBのメモリでは足りなくなっています。4GBを割り当てましょう。vagrant sshすると、以前はホームディレクトリが/data/src/github.com/openshift/originになっていましたが、現在は/home/vagrantになっています。今回は前回は省略したルーターのセットアップ手順も入れておきました。

git clone https://github.com/openshift/origin/
cd origin
cat <<EOF >.vagrant-openshift.json 
{
    "cpus": "4",
    "memory": "4096"
}
EOF
vagrant up
vagrant ssh
cd /data/src/github.com/openshift/origin/
make clean build # hack/build-go.sh took 258 seconds on my laptop
sudo systemctl start openshift
cat ./examples/image-streams/image-streams-centos7.json | oc create -n openshift -f -
echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"registry"}}' | oc create -f -
echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f -
(oc get scc privileged -o yaml -n default; echo "- system:serviceaccount:default:registry"; echo "- system:serviceaccount:default:router") | oc replace -f -
sudo `which oadm` registry --config=/openshift.local.config/master/admin.kubeconfig --credentials=/openshift.local.config/master/openshift-registry.kubeconfig --service-account=registry
sudo `which oadm` router   --config=/openshift.local.config/master/admin.kubeconfig --credentials=/openshift.local.config/master/openshift-router.kubeconfig   --service-account=router

これで一通り動作するOpenShiftができあがります。