2.7. ホストグループの作成

多数のホストを作成する場合には、ホストの多くに、共通の設定と属性を指定できます。新規ホストすべてにこれらの設定および属性を追加するのは時間がかかります。ホストグループを使用する場合には、作成するホストに対して、共通の属性を適用できます。

ホストグループは、共通するホスト設定のテンプレートとして機能し、ホストに指定する同じ情報が多数含まれます。ホストグループを指定して、ホストを作成する場合には、このホストは、ホストグループで定義した設定を継承します。その後に、追加の情報を指定して、ホストを個別化できます。

Satellite Web UI の代わりに CLI を使用する場合は、CLI 手順 を参照してください。

ホストグループの階層

ホストグループには、階層を作成できます。組織内の全ホストを表すベースレベルのホストグループを設定し、汎用的な設定を行い、その中のネストされたグループを指定して、固有の設定を指定するようにします。たとえば、以下のように、オペレーティングシステムを定義する Base レベルのホストグループ 1 つおよび、Base レベルのホストグループを継承するネスト化されたホストグループ 2 つを設定できます。

  • Hostgroup: Base (Red Hat Enterprise Linux 7.6)

    • Hostgroup: Webserver (nginx Puppet クラスを適用)

      • Host: webserver1.example.com (Web サーバー)
      • Host: webserver2.example.com (Web サーバー)
    • Hostgroup: Storage (nfs Puppet クラスを適用)

      • Host: storage1.example.com (ストレージサーバー)
      • Host: storage2.example.com (ストレージサーバー)
    • Host: custom.example.com (カスタムホスト)

この例では、すべてのホストは Base ホストグループの継承により、Red Hat Enterprise Linux 7.6 をオペレーティングシステムとして使用します。2 つの Web サーバーホストは Webserver ホストグループからの設定を継承します。これには、nginx Puppet クラスおよび Base ホストグループの設定が含まれます。2 つのストレージサーバーは、Storage ホストグループからの設定を継承します。これには、nfs Puppet クラスおよび Base ホストグループからの設定が含まれます。カスタムホストは Base ホストグループからの設定のみを継承します。

手順

  1. Satellite Web UI で 設定 > ホストグループ に移動して、ホストグループの作成 をクリックします。
  2. 属性を継承する既存のホストグループがある場合には、 リストからホストグループを選択します。継承する属性がない場合には、このフィールドは空白のままにします。
  3. 新規ホストグループの 名前 を入力します。
  4. 新たに作成するホストに継承させる情報をさらに入力します。
  5. Ansible ロール タブをクリックして、Ansible ロール リストから、ホストに追加するロールを 1 つまたは複数選択します。矢印 アイコンを使用して、追加または削除するロールを管理します。
  6. 追加タブをクリックして、ホストグループに属性として指定する情報を追加します。

    注記

    Puppet は、Production 環境内に作成した Puppet 環境に関連付けられているホストグループにホストを登録すると、Puppet CA 証明書の取得に失敗します。

    ホストグループに関連付ける適切な Puppet 環境を作成するには、ディレクトリーを手動で作成します。

    # mkdir /etc/puppetlabs/code/environments/example_environment
  7. 送信 をクリックしてホストグループを保存します。

CLI 手順

  • hammer hostgroup create コマンドでホストグループを作成します。以下に例を示します。

    # hammer hostgroup create --name "Base" \
    --architecture "My_Architecture" \
    --content-source-id _My_Content_Source_ID_ \
    --content-view "_My_Content_View_" \
    --domain "_My_Domain_" \
    --lifecycle-environment "_My_Lifecycle_Environment_" \
    --locations "_My_Location_" \
    --medium-id _My_Installation_Medium_ID_ \
    --operatingsystem "_My_Operating_System_" \
    --organizations "_My_Organization_" \
    --partition-table "_My_Partition_Table_" \
    --puppet-ca-proxy-id _My_Puppet_CA_Proxy_ID_ \
    --puppet-environment "_My_Puppet_Environment_" \
    --puppet-proxy-id _My_Puppet_Proxy_ID_ \
    --root-pass "My_Password" \
    --subnet "_My_Subnet_"