type
Post
status
Published
date
Nov 16, 2024
slug
summary
tags
DO285
Redhat
EX280
学習ノート
category
民間資格勉強
icon
password

インストール準備

この演習では、OpenShift Container Platform のインストールに向けて、マスターノード のホストを準備します。

成果物

OpenShift Container Platform のインストール準備を行うために、Ansible Playbook をカスタマイズして実行できるようになります。

はじめに

  1. マスター、node1、node2 の VM が起動していることを確認し、この演習に必要なファイルをダウンロードします。
    1. ターミナルを開き、次のコマンドを実行します:
  1. 次に、作業ディレクトリに移動します:

    インストールプレイブックの準備

    1. 現在の時点で、インストール用のプレイブックは 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-storagedocker-registry-certopenshift-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 必要なパッケージが各ノードにインストールされていることを確認

    次に、各ノードに必要なパッケージがインストールされているか確認します。以下のコマンドを実行して、必要なパッケージがインストールされていることを確認しました:
    出力例:
    これで、インストールに必要なパッケージが各ノードにインストールされていることが確認できました。

    これにて、ガイド付き演習は終了です。
     
    23- 第7章:OpenShiftインストール-1:Ansibleの用意の説明01- 第1章:Introduction
    Loading...
    minami
    minami
    みなみの成長 🐝
    Announcement

    🎉 ブログへようこそ 🎉

    名前: みなみ一人会社
    性別:
    国籍: China 🇨🇳
    政治スタンス: 民主主義支持者
    完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
    現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
    独学で合格できる学習法や勉強法、試験対策を発信中!

    📚 発信内容

    • 💻 IT・システム開発
    • 🏠 不動産 × 宅建士
    • 🎓 MBA 学習記録