nginx
初心者
openshift
creatus

OpenShiftOnline+NginxでWebサーバー構築

More than 1 year has passed since last update.


はじめに

OpneShiftOnlineでNginxを使ってWebサーバーを立てるまでの手順をまとめました。

使い方が全く分からず苦労したのでこれから使おうという人の参考になれば。


OpenShiftのプロジェクトを作成

右上の"Create Project"を選択し、プロジェクト名・表示名・説明を入力しプロジェクトを作成。

openshift1.jpg


プロジェクトにアプリケーションを追加

プロジェクトを選択し、右上の"Add to Project"から"Browse Catalog"を選択。

openshift2.jpg


アプリケーション選択

表示されたアプリケーション一覧からNginxを選択・・・しようとするが

openshift3.jpg

Nginxが無い!


docker imageを探してみる

用意されたカテゴリに無いので仕方なく"Deploy Image"からNginxのdocker imageを検索。

openshift4.jpg

openshift5.jpg


Nginxのイメージを発見

openshift6.jpg

Nginx公式が公開しているdocker imageのようですが何やら注意書きがあります。

どうやらこのNginxのイメージはクラスタが許可してないかもしれないルートユーザ権限で起動しますよと言っているらしい。なんのことやら。


イメージを追加

なんだか分からないがとにかく追加してみよう、ということで右下の"Deploy"からアプリケーションを追加する。

すると

openshift8.jpg

勝手に構築が始まっているようだ。いけそうかな?と見ていると

openshift9.jpg

失敗。なにか良からぬことが起きたようだ。


構築失敗の原因

エラーメッセージの"view log"から何が起きたのか見てみる。

openshift10.jpg

"Crash loop back off"と出ているがどうもmkdirコマンドが権限エラーで弾かれている模様。何故だ。

色々と調べてみると、OpneShiftはルート権限でのコンテナ操作を禁止しているようだ。

さっきの注意文言のルート権限で動かすよ、というのはこのための注意か・・・


解決方法

という訳で、発見したdocker imageは残念ながら使えなかったので別の方法を探してみる。

すると、RedHatが公開しているNginxのdocker imageがOpenShiftでも使えるらしい。

早速試してみる。


ようやく構築完了

さっきの"deploy image"から検索しても出てこないのでOpenShiftを操作するOCツールというのを使う。

上部メニューにある"Command Line Tool"から落としてきます。

openshift11.jpg

落としてきたら、解凍してコマンドプロンプトから解凍フォルダに移動して下記のコマンドをコピーして叩く。これで自分のプロジェクトにログイン出来た状態になる。

openshift12.jpg

その後にアプリケーション追加の下記コマンドを入力。

>oc new-app registry.access.redhat.com/rhscl/nginx-112-rhel7~[gitリポジトリ]

gitリポジトリにはWebサーバに乗せたい資産が入ったリポジトリを入れてください。

そしてOpneShiftOnlineで確認すると・・・

openshift13.jpg

構築出来てる!

あとはルートディレクトリを指定すれば

openshift14.jpg

gitリポジトリにあるページが表示できました。長かった・・・


まとめ

なんとか構築出来ましたがよく分からんままになってるところが多い(PODって何?Nginxコンフィグはどこ?)のでまだまだ調べ足りない。。

また、docker imageは自分でルート権限じゃなくても起動出来るような設定にして作れば自作のimageでも構築は出来るようです。

参考記事:

How to run nginx on openshift and deploy website?