type
status
date
slug
summary
tags
category
icon
password
书籍
インストール準備
この演習では、OpenShift Container Platform のインストールに向けて、マスター と ノード のホストを準備します。
成果物
OpenShift Container Platform のインストール準備を行うために、Ansible Playbook をカスタマイズして実行できるようになります。
はじめに
- マスター、node1、node2 の VM が起動していることを確認し、この演習に必要なファイルをダウンロードします。
ターミナルを開き、次のコマンドを実行します:
- 次に、作業ディレクトリに移動します:
インストールプレイブックの準備
- 現在の時点で、インストール用のプレイブックは Ansible v2.4 と互換性があることを確認します。Ansible v2.4 がインストールされていることを確認してください。
1.1 ansible パッケージをインストール
1.2 ansible コマンドが正しく動作するか確認
同じターミナルウィンドウで、次のコマンドを実行して確認します:
出力には Ansible v2.4 がインストールされていることが表示されます。また、
ansible.cfg
ファイルが /home/student/DO285/labs/install-prepare/ansible.cfg
にあることも確認できます。1.3 ansible.cfg ファイルを簡単に確認
このコマンドの出力には以下の内容が表示されます:
特権昇格設定
デフォルトでは、Ansible は SSH を使ってリモートマシンに接続し、student ユーザーとして接続します。
すべての Ansible コマンドのデフォルトのインベントリファイルは
./inventory
ファイルです。Playbook の出力は
./ansible.log
ファイルに記録されます。Ansible は指定されたパスを使用して roles にアクセスします。
デフォルトで、Ansible はリモートマシンに接続後、sudo コマンドを使用して root ユーザーになります。
インベントリファイルの内容
インベントリファイルには、OpenShift のインストールを構成するための VM と変数が含まれています。
インベントリファイルの内容を簡単に確認しましょう。
以下のような内容が表示されます:
このインベントリファイルには、OpenShift の各コンポーネント(ワークステーション、NFS、マスター、etcd、ノード)に対応するホストと、それらの設定に必要な変数が含まれています。
インベントリファイルの定義について
インベントリファイルには6つのホストグループが定義されています:
- workstations: 開発者用のワークステーションが含まれるグループです。プレイブックはこのマシンから実行されます。OpenShiftの高度なインストールプレイブックでは、このホストグループは使用されません。このグループは、クラスルーム環境内のすべてのVMセットを代表するために含まれています。
- nfs: クラスターストレージ用のNFSサービスを提供するVMのグループです。
- masters: OpenShiftクラスタのマスターホストとして使用されるVMのグループです。
- etcd: OpenShiftクラスタのetcdサービス用に使用されるVMのグループです。クラスルーム環境では、etcdサービスはマスターVMと同じホストに配置されるように設計されています。
- nodes: OpenShiftクラスタのノードホストとして使用されるVMのグループです。
- OSEv3: OpenShiftクラスタを構成するVMのグループです。masters、etcd、nodes、またはnfsグループのいずれかに属するマシンは、OSEv3グループのメンバーでもあります。
Docker設定について
デフォルトでは、Dockerはオンラインのレジストリを使用してコンテナイメージをダウンロードします。しかし、クラスルーム環境ではインターネット接続がないため、Dockerは安全なプライベートレジストリを使用するように設定されています。このカスタムプレイブック
prepare_install.yml
は、nodes:vars
セクションで定義された変数を使用してDockerを設定します。また、インストールは各ホスト上でDockerデーモンを設定し、
overlay2
グラフドライバーを使用してコンテナイメージを格納するように構成します。Dockerはさまざまなグラフドライバー構成をサポートしており、特定のグラフドライバーの利点と欠点については、ドキュメントで確認できます。インストールプロセスの前確認
インストールプロセスを開始する前に、Ansibleがインベントリ内のすべてのVMに接続できるかを確認します。
3.1 カスタムプレイブック ping.yml
の確認
このプレイブックは、Ansibleがインベントリ内のすべてのマシンに接続できるかを確認するためのものです。
出力は次のようになります:
このプレイブックは、Ansibleが各マシンにSSHで接続できるかをテストし、接続後にrootユーザーに昇格できることを確認します。
3.2 プレイブックの実行
ping.yml
プレイブックを実行し、-v
オプションを使って詳細な出力を確認します。期待される出力は次のようになります:
whoami
コマンドの出力が root
であることが期待されます。これは、Ansibleが接続後に sudo コマンドを使用して特権昇格できることを示しています。4. OpenShiftインストールのためにクラスルームマシンを準備するカスタムプレイブック
次に、
prepare_install.yml
というカスタムプレイブックを確認します。このプレイブックは、
nodes
グループ内の各VMに3つのロール(docker-storage
、docker-registry-cert
、openshift-node
)を適用します。- docker-storage ロールは、Dockerをインストールし、Dockerデーモンのストレージを設定します。
- docker-registry-cert ロールは、各ノードのDockerデーモンがプライベートDockerレジストリの証明書を信頼するようにします。
- openshift-node ロールは、必要な基本パッケージをインストールします。
特定のロールのタスクリストを見るには、ロールの
tasks/main.yml
ファイルを確認します。ロールが適用された後、各ノードで
student
ユーザーに docker
グループが追加されます。これにより、student
ユーザーは sudo
を使わずに Docker コマンドを実行できるようになります。5. OpenShiftの準備のためにカスタムプレイブックを実行
次に、
prepare_install.yml
プレイブックを実行して、VMをOpenShiftのインストールに備えます。ワークステーションVMから、以下のコマンドを実行します:
実行後、以下のような出力が表示されるはずです。
注意
プレイブックの実行中に、システムによって出力されるカウントは異なる場合があります。プレイブック実行中に失敗したタスクがないことを確認してください。
6. プレイブックは以下のことを保証します:
- 各ノードにDockerがインストールされ、実行中であること。
- 各ノードでDockerが論理ボリュームを使用してストレージを構成していること。
- 各ノードがプライベートDockerレジストリの自己署名証明書を信頼していること。
- 各ノードに必要な基本パッケージがインストールされていること。
各ノードが正しく構成されていることを確認します。
6.1. 各ノードでdockerサービスが開始され、起動時に自動的に有効になっていることを確認します。
以下のコマンドを実行して確認します:
出力は以下のようになります:
6.2. Dockerデーモンが、docker-vg
ボリュームグループから docker-pool
という論理ボリュームを使用していることを確認します。
以下のコマンドを使って、各ホストの論理ボリュームをリストします。また、
df -h
コマンドで、/var/lib/docker
ディレクトリに論理ボリュームがマウントされていることを確認します:出力は以下のようになります:
6.3 Dockerイメージのプル確認
次に、
docker pull
コマンドを使用して、ローカルのプライベートレジストリからイメージが正しくプルされるか確認します。これにより、プライベートレジストリの証明書が各ノードで信頼されていることも確認できます。以下のコマンドを実行しました:
出力例:
これにより、各ノードで
docker
サービスが正常に動作しており、プライベートレジストリからイメージが正しくダウンロードされることが確認できました。1.
rhel7:latest
イメージは、registry.lab.example.com
からプルされ、registry.access.redhat.com
からではありません。2.コンテナイメージのダウンロードが成功したため、プライベートレジストリの証明書が各ノードで信頼されていることが確認されました。
6.4 必要なパッケージが各ノードにインストールされていることを確認
次に、各ノードに必要なパッケージがインストールされているか確認します。以下のコマンドを実行して、必要なパッケージがインストールされていることを確認しました:
出力例:
これで、インストールに必要なパッケージが各ノードにインストールされていることが確認できました。
これにて、ガイド付き演習は終了です。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/19fd7ae8-88e2-8059-8cb8-faaa0f037268
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章