Contents
ここでは、Red HatのOpenShift(OSSのOpenShift Originではなく)をインストールして一先ず動く評価環境を作ってみます。
ライセンスは30日の評価版を使います。
必要な事前作業
- Red Hatのアカウントを作成
 
OpenShiftの必要要件
作業概要
- OpenShiftの評価版登録
 - Red Hatのコンテナイメージを使うため 
registry.redhat.ioのアカウント作成 - OpenShiftのインストール
 
環境
ここでは、試しに動かす環境を作ってみるので master node infra を1台ずつ用意しています。

| 項目 | 内容 | 
|---|---|
| OS | RHEL7.6 | 
| OpenShift | 3.11 | 
ホスト名は以下の通りです。
| ホスト名 | 
|---|
| master.local | 
| node01.local | 
| infra01.local | 
DNSレコード
DNS(bind)のコレードは以下の通りです。
ドメインは local を使います。
openshift_master_default_subdomain は設定しないのでデフォルトのドメインを設定しています。
| 
					 1 2 3 4 5 6 7  | 
						[root@localhost named]# vi local.db (snip) master  IN  A   192.168.0.30 node01  IN  A   192.168.0.31 infra01 IN  A   192.168.0.32 *.router.default.svc.cluster    IN  A   192.168.0.30  | 
					
OpenShift評価登録
ログイン
カスタマーポータルからログインします。
評価登録
ダウンロード をクリックします。
Red Hat OpenShift Container Platform の 評価をリクエスト をクリックします。
次に進む をクリックします。
AGREE AND GET STARTED をクリックします。
アクティブなサブスクリプション に表示されていることを確認します。
レジストリアカウント登録
Red Hat Container Catalog へアクセスし Service Accounts をクリックします。
New Service Account をクリックします。
Name にアカウント名を入力して CREATE をクリックします。
以下のコマンドを実行して認証が通りTokenが発行されるか確認します。
| 
					 1 2  | 
						[root@localhost ~]# curl -Lv -u <username>:<password> "https://sso.redhat.com/auth/realms/rhcc/protocol/redhat-docker-v2/auth?service=docker-registry&client_id=curl&scope=repository:rhel:pull"  | 
					
| 項目 | 説明 | 
|---|---|
| username | レジストリアカウント登録したユーザー | 
| password | Red Hatに登録したユーザーのパスワード | 
OpenShiftインストール
Red Hatの手順書にあることをやっていきます。
OS作業
master node01 infra01 で以下の作業を実施します。
サブスクリプションのアタッチ
まずは register でシステムを登録します。
| 
					 1 2 3 4 5 6 7  | 
						[root@master ~]# subscription-manager register 登録中: subscription.rhsm.redhat.com:443/subscription ユーザー名: *********** パスワード: このシステムは、次の ID で登録されました: *************** 登録したシステム名: master.local  | 
					
最新のサブスクリプションテーブルをプルします。
| 
					 1 2 3  | 
						[root@master ~]# subscription-manager refresh ローカルデータがすべて更新されました  | 
					
先ほど登録した評価版OpenShiftサブスクリプションの プール ID を確認します。
| 
					 1 2 3 4 5 6 7  | 
						[root@master ~]# subscription-manager list --available (snip) サブスクリプション名:     30 Day Self-Supported Red Hat OpenShift Container Platform, 2-Core Evaluation (snip) プール ID:                ******************** (snip)  | 
					
確認したプール IDにアタッチします。
| 
					 1 2 3  | 
						[root@master ~]# subscription-manager attach --pool=*************** サブスクリプションが正しく割り当てられました: 30 Day Self-Supported Red Hat OpenShift Container Platform, 2-Core Evaluation  | 
					
リポジトリーの有効化
以下のコマンドを実行してリポジトリを有効化します。
| 
					 1 2 3 4 5 6 7 8 9  | 
						[root@master ~]# subscription-manager repos --enable="rhel-7-server-rpms" \ >     --enable="rhel-7-server-extras-rpms" \ >     --enable="rhel-7-server-ose-3.11-rpms" \ >     --enable="rhel-7-server-ansible-2.6-rpms" リポジトリー 'rhel-7-server-rpms' は、このシステムに対して有効になりました。 リポジトリー 'rhel-7-server-extras-rpms' は、このシステムに対して有効になりました。 リポジトリー 'rhel-7-server-ansible-2.6-rpms' は、このシステムに対して有効になりました。 リポジトリー 'rhel-7-server-ose-3.11-rpms' は、このシステムに対して有効になりました。  | 
					
アップデート
必要であれば全ホストで yum update を実行して最新版にしておきます。
OpenShift Container Platformパッケージのインストール
master で以下の作業を実施します。
必要なパッケージのインストールおよびアップデート
必要なパッケージのインストールをします。
| 
					 1 2  | 
						[root@master ~]# yum -y install wget git net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct  | 
					
最新版にアップデートして再起動します。
| 
					 1 2 3  | 
						[root@master ~]# yum -y update [root@master ~]# reboot  | 
					
OpenShiftはAnsibleでインストールするので openshift-ansible をインストールします。
| 
					 1 2  | 
						[root@master ~]# yum -y install openshift-ansible  | 
					
コンテナーエンジンのインストール
ここでは Docker を使おうと思うので docker をインストールします。
| 
					 1 2  | 
						[root@master ~]# yum -y install docker  | 
					
SSHのキー作成
パスワードなしでログインできるようSSHのキーを作成します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  | 
						[root@master ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:tq94jFyMCPk8bmC8vemq9VEHjucfKYzFPpuouG0+0T8 root@master.local The key's randomart image is: +---[RSA 2048]----+ |                 | |                 | |   .  .          | |  o  + .         | | . =..*oS        | |  = *O.ooo       | | ..*o+*++        | | ++.++EBoo       | |+==**.+oo..      | +----[SHA256]-----+  | 
					
全ホストに公開鍵を配ります。
| 
					 1 2 3 4 5 6  | 
						for host in master.local \     node01.local \     infra01.local; \     do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \     done  | 
					
OpenShiftインストールPlaybook実行
インベントリ作成
以下のようにインベントリを作成します。
ここでは master と infra を分けていますが master+infra にする場合は node-config-master-infra を指定します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28  | 
						[root@master ~]# vi /etc/ansible/hosts [OSEv3:children] masters nodes etcd [OSEv3:vars] ansible_ssh_user=root openshift_deployment_type=openshift-enterprise # htpasswdでユーザーを追加できるようにする openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}] # registry.redhat.ioのアカウント oreg_auth_user=username oreg_auth_password=password [masters] master.local [etcd] master.local [nodes] master.local openshift_node_group_name='node-config-master' node01.local openshift_node_group_name='node-config-compute' infra01.local openshift_node_group_name='node-config-infra'  | 
					
インベントリ例は以下を参照ください。
インベントリの変数説明は以下を参照ください。
Playbook実行
まずは prerequisites.yml を実行します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14  | 
						[root@master ~]# cd /usr/share/ansible/openshift-ansible [root@master openshift-ansible]# ansible-playbook playbooks/prerequisites.yml (snip) PLAY RECAP ***************************************************************************************************************************************************************************************************** infra01.local              : ok=48   changed=21   unreachable=0    failed=0 localhost                  : ok=11   changed=0    unreachable=0    failed=0 master.local               : ok=69   changed=21   unreachable=0    failed=0 node01.local               : ok=48   changed=21   unreachable=0    failed=0 INSTALLER STATUS *********************************************************************************************************************************************************************************************** Initialization  : Complete (0:03:52) Sunday 24 February 2019  15:43:30 +0900 (0:00:00.119)       0:12:23.538 *******  | 
					
次に deploy_cluster.yml を実行します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25  | 
						[root@master openshift-ansible]# ansible-playbook playbooks/deploy_cluster.yml (snip) PLAY RECAP ***************************************************************************************************************************************************************************************************** infra01.local              : ok=111  changed=63   unreachable=0    failed=0 localhost                  : ok=11   changed=0    unreachable=0    failed=0 master.local               : ok=684  changed=324  unreachable=0    failed=0 node01.local               : ok=111  changed=63   unreachable=0    failed=0 INSTALLER STATUS *********************************************************************************************************************************************************************************************** Initialization               : Complete (0:00:26) Health Check                 : Complete (0:00:49) Node Bootstrap Preparation   : Complete (0:18:00) etcd Install                 : Complete (0:02:50) Master Install               : Complete (0:06:23) Master Additional Install    : Complete (0:06:57) Node Join                    : Complete (0:00:24) Hosted Install               : Complete (0:00:47) Cluster Monitoring Operator  : Complete (0:01:14) Web Console Install          : Complete (0:00:30) Console Install              : Complete (0:00:17) metrics-server Install       : Complete (0:00:00) Service Catalog Install      : Complete (0:03:44) Sunday 24 February 2019  16:27:50 +0900 (0:00:00.048)       0:42:50.852 *******  | 
					
状態確認
標準の system:admin でログインして状態を確認してみます。
| 
					 1 2 3 4 5 6 7  | 
						[root@master ~]# oc login -u system:admin [root@master ~]# oc get nodes NAME            STATUS    ROLES     AGE       VERSION infra01.local   Ready     infra     9m        v1.11.0+d4cacc0 master.local    Ready     master    19m       v1.11.0+d4cacc0 node01.local    Ready     compute   9m        v1.11.0+d4cacc0  | 
					
ユーザー追加
adminユーザーを追加してみます。
| 
					 1 2 3  | 
						[root@master ~]# htpasswd -b /etc/origin/master/htpasswd admin redhat Adding password for user admin  | 
					
OpenShiftを再起動します。
| 
					 1 2 3 4 5  | 
						[root@master ~]# master-restart api 2 [root@master ~]# master-restart controllers 2  | 
					
作成したadminに特権ロールを設定します。
| 
					 1 2 3 4  | 
						[root@master ~]# oc adm policy add-cluster-role-to-user cluster-admin admin Warning: User 'admin' not found cluster role "cluster-admin" added: "admin"  | 
					
adminでログインしてみます。
| 
					 1 2 3 4 5 6 7  | 
						[root@master ~]# oc login -u admin Authentication required for https://master.local:8443 (openshift) Username: admin Password: Login successful. (snip)  | 
					
OpenShiftルーターのデプロイ
デフォルトルーターを削除して新規に作成します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | 
						[root@master ~]# oc project default Already on project "default" on server "https://master.local:8443". [root@master ~]# oc delete all -l router=router pod "router-1-cdgnr" deleted replicationcontroller "router-1" deleted service "router" deleted deploymentconfig.apps.openshift.io "router" deleted [root@master ~]# oc adm router --replicas=1 --service-account=router info: password for stats user admin has been set to r2nm8SJdvY --> Creating router router ...     warning: serviceaccounts "router" already exists     warning: clusterrolebindings.authorization.openshift.io "router-router-role" already exists     deploymentconfig.apps.openshift.io "router" created     service "router" created --> Success  | 
					
WebUIアクセス
以下のURLでアクセスします。
| URL | 
|---|
https://master.local:8443 | 
adminユーザーでログインします。
ログインできることを確認します。









