Red Hat Satellite で Puppet インテグレーションを使用した設定の管理
Puppet インテグレーションを使用したホスト設定の管理および Satellite へのホストシステムのステータスの報告
概要
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
Bugzilla でチケットを作成することでフィードバックを送信できます。
- Bugzilla のWeb サイトに移動します。
-
Component フィールドで、
Documentation
を使用します。 - Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- Submit Bug をクリックします。
第1章 Puppet を使用した設定管理の概要
Puppet を使用して、ホスト設定の管理および自動化を行うことができます。Puppet は宣言型言語を使用してマネージドホストの あるべき状態 を記述します。
複数のホストを同時に管理できるため、Puppet は生産性を高めます。同時に、Puppet を使用するとホストの状態を容易に確認し、場合によってはそれを修正できるため、設定に要する労力が軽減されます。
関連情報
- Open Source Puppet のドキュメント
- Puppet Forge — 事前にビルドされた Puppet モジュールのリポジトリー
1.1. Puppet と Satellite の統合方法
Puppet はサーバー/エージェントアーキテクチャーを使用します。Puppet サーバーは、設定定義を保存する中心的なコンポーネントです。Satellite Server または Capsule は通常 Puppet サーバーと共にデプロイされ、Satellite はそのような Puppet サーバーの External Node Classifier (ENC: 外部ノードの分類子) として機能します。マネージドホストは、Puppet サーバーと通信する Puppet エージェントを実行します。
Puppet エージェントはホストの ファクト を収集し、それらを実行ごとに Puppet サーバーに報告します。ホストで puppet facts
を実行して、Puppet ファクト を JSON 形式で表示できます。
Puppet サーバーは ファクト を Satellite に転送し、Satellite は後で使用できるようにファクトを保存します。ファクト およびその他の定義に基づいて、Satellite は Puppet サーバーへの ENC 応答を構築します。Puppet サーバーは、ENC 応答に基づいて カタログ をコンパイルし、カタログ を Puppet エージェントに送信します。
Puppet エージェントは、ホストのシステム状態を評価します。Puppet エージェントが、カタログ で定義されている あるべき状態 と実際の状態の間に ドリフト と呼ばれる違いを検出すると、ホストの状態の修正を適用します。Puppet エージェントは、修正結果を Puppet サーバーに報告し、Puppet サーバーはそれらを Satellite に報告します。
Puppet モジュール
ホストの あるべき状態 が カタログ で定義されます。カタログ は、ホストに割り当てられた 1 つまたは複数の Puppet モジュールの Puppet マニフェストからコンパイルされます。Puppet モジュールは、クラス、マニフェスト、リソース、ファイル、およびテンプレートのコレクションです。Puppet モジュールは、ホスト設定定義のコンポーネントとして機能します。
スマートクラスパラメーター
モジュールがスマートクラスパラメーターの使用に対応している場合、スマートクラスパラメーターを使用して Puppet モジュールのパラメーターを上書きできます。Satellite でパラメーターを キー/値 ペアとして定義できます。これは、ホストパラメーターや Ansible 変数と同様に動作します。
Puppet 環境
複数の Puppet 環境を作成して、設定定義のバージョンを制御したり定義のバリアントを管理したりすることや、実稼働環境にデプロイする前に定義をテストすることもできます。
インテグレーションステップの概要
Satellite と Puppet のインテグレーションには、以下の概略的な手順が含まれます。
- Puppet インテグレーションを有効化 します。
- Puppet エージェントパッケージを Satellite にインポートします。Puppet エージェントパッケージは、Red Hat リポジトリーを有効にし、アクティベーションキー と コンテンツビュー を使用して、Satellite の他のコンテンツと同様に管理できます。
- プロビジョニング 時、登録時、あるいは 手動で、またはリモートジョブの実行により、ホストに Puppet エージェントをインストールする。
関連情報
- コンテンツの管理
- ホストの管理 の ホストの登録
- ホストの管理ガイド の リモートジョブの設定およびセットアップ
次の手順では、Puppet モジュールを使用して ntp サービスをインストール、設定、および管理する方法を概説し、その例を示します。
1.2. サポート対象の Puppet バージョンおよびシステム要件
Puppet インテグレーションを開始する前に、サポートされている Puppet バージョンとシステム要件を確認してください。
- サポート対象の Puppet バージョン
Satellite は以下の Puppet バージョンをサポートします。
- Puppet 7
- システム要件
- Puppet と Satellite のインテグレーションを開始する前に、システム要件を満たしていることを確認してください。詳細は、Open Source Puppet ドキュメントの System Requirements for Puppet 7 を参照してください。
1.3. Satellite と Puppet のインテグレーションの有効化
デフォルトでは、Satellite には Puppet インテグレーションが設定されていません。状況に応じてインテグレーションを有効化する必要があります。これは、Satellite Server または Capsule で Puppet サーバーを管理およびデプロイするように Satellite を設定できることを意味します。さらに、Puppet サーバーを Satellite の外部にデプロイし、レポート、ファクト、External Node Classifier (ENC) のために Satellite と統合できます。
手順
Puppet インテグレーションを有効化し、Satellite Server に Puppet サーバーをインストールします。
satellite-installer --enable-foreman-plugin-puppet \ --enable-foreman-cli-puppet \ --foreman-proxy-puppet true \ --foreman-proxy-puppetca true \ --foreman-proxy-content-puppet true \ --enable-puppet \ --puppet-server true \ --puppet-server-foreman-ssl-ca /etc/pki/katello/puppet/puppet_client_ca.crt \ --puppet-server-foreman-ssl-cert /etc/pki/katello/puppet/puppet_client.crt \ --puppet-server-foreman-ssl-key /etc/pki/katello/puppet/puppet_client.key
# satellite-installer --enable-foreman-plugin-puppet \ --enable-foreman-cli-puppet \ --foreman-proxy-puppet true \ --foreman-proxy-puppetca true \ --foreman-proxy-content-puppet true \ --enable-puppet \ --puppet-server true \ --puppet-server-foreman-ssl-ca /etc/pki/katello/puppet/puppet_client_ca.crt \ --puppet-server-foreman-ssl-cert /etc/pki/katello/puppet/puppet_client.crt \ --puppet-server-foreman-ssl-key /etc/pki/katello/puppet/puppet_client.key
Copy to Clipboard Copied! Capsule で Puppet インテグレーションを使用する場合は、Puppet インテグレーションを有効化して、Capsule に Puppet サーバーをインストールします。
satellite-installer --foreman-proxy-puppet true \ --foreman-proxy-puppetca true \ --foreman-proxy-content-puppet true \ --enable-puppet \ --puppet-server true \ --puppet-server-foreman-ssl-ca /etc/pki/katello/puppet/puppet_client_ca.crt \ --puppet-server-foreman-ssl-cert /etc/pki/katello/puppet/puppet_client.crt \ --puppet-server-foreman-ssl-key /etc/pki/katello/puppet/puppet_client.key \ --puppet-server-foreman-url "https://satellite.example.com"
# satellite-installer --foreman-proxy-puppet true \ --foreman-proxy-puppetca true \ --foreman-proxy-content-puppet true \ --enable-puppet \ --puppet-server true \ --puppet-server-foreman-ssl-ca /etc/pki/katello/puppet/puppet_client_ca.crt \ --puppet-server-foreman-ssl-cert /etc/pki/katello/puppet/puppet_client.crt \ --puppet-server-foreman-ssl-key /etc/pki/katello/puppet/puppet_client.key \ --puppet-server-foreman-url "https://satellite.example.com"
Copy to Clipboard Copied! --puppet-server-foreman-url
引数の値として Satellite Server の URL を入力します。
1.4. ホストプロビジョニング中の Puppet エージェントのインストール
ホストのプロビジョニングプロセス時に Puppet エージェントをインストールします。
手順
- Hosts > Provisioning Templates の順に移動します。
- ホストのプロビジョニング方法に応じて、プロビジョニングテンプレートを選択します。詳細は、プロビジョニングガイド の プロビジョニングテンプレートのタイプ を参照してください。
puppet_setup
スニペットが以下のように含まれていることを確認します。<%= snippet 'puppet_setup' %>
<%= snippet 'puppet_setup' %>
Copy to Clipboard Copied! 単一ホストまたはホストグループのホストパラメーターを使用して Puppet を有効にします。
タイプブール値を
true
に設定し、Puppet 7 のenable-puppet7
という名前のホストパラメーターを追加します。-
オプション:yum.puppet.com から直接 Puppet エージェントをインストールするには、タイプブール値を
true
に設定し、Puppet 7 のenable-puppetlabs-puppet7-repo
という名前のホストパラメーターを追加します。アクティベーションキーを使ってホストに Puppet エージェントを提供しない場合にのみこれを使用します。
1.5. 手動によるホストでの Puppet エージェントのインストールおよび設定
Puppet エージェントを手動でホストにインストールし、設定します。
前提条件
- ホストに Puppet 環境が割り当てられている。
- Satellite Client 6 リポジトリーを有効化して Satellite Server に同期し、ホスト上で有効化している必要がある。詳細は コンテンツの管理 のコンテンツのインポート を参照してください。
手順
-
root
ユーザーで、ホストにログインします。 Puppet エージェントパッケージをインストールします。
Red Hat Enterprise Linux 8 以降を実行しているホストの場合:
dnf install puppet-agent
# dnf install puppet-agent
Copy to Clipboard Copied! Red Hat Enterprise Linux 7 以前を実行しているホストの場合:
yum install puppet-agent
# yum install puppet-agent
Copy to Clipboard Copied!
次のスクリプトを使用して、Puppet エージェントを現在のシェルの
PATH
に追加します。. /etc/profile.d/puppet-agent.sh
. /etc/profile.d/puppet-agent.sh
Copy to Clipboard Copied! Puppet エージェントを設定します。ホストの所属先の Puppet 環境名に
environment
パラメーターを設定します。puppet config set server satellite.example.com --section agent puppet config set environment My_Puppet_Environment --section agent
# puppet config set server satellite.example.com --section agent # puppet config set environment My_Puppet_Environment --section agent
Copy to Clipboard Copied! Puppet エージェントサービスを開始します。
puppet resource service puppet ensure=running enable=true
# puppet resource service puppet ensure=running enable=true
Copy to Clipboard Copied! ホストの証明書を作成します。
puppet ssl bootstrap
# puppet ssl bootstrap
Copy to Clipboard Copied! - Satellite Web UI で、Infrastructure > Capsules に移動します。
- 必要な Capsule Server の Actions コラムの一覧から、Certificates を選択します。
- 必要なホストの右にある Sign をクリックして、Puppet エージェントの SSL 証明書に署名します。
ホスト上で、Puppet エージェントを再度実行します。
puppet ssl bootstrap
# puppet ssl bootstrap
Copy to Clipboard Copied!
1.6. 設定管理の実施
ホストに Puppet エージェントをデプロイしたら、Puppet を使用して設定管理を開始できます。その概略的な手順は以下のとおりです。
- Puppet モジュールを Puppet サーバーで管理する (インストールおよび更新)。
- Puppet クラスおよび環境を Puppet モジュールから Satellite にインポートする。
- オプション: Puppet クラスから設定グループを作成する。
- さまざまなレベルでスマートクラスパラメーターのオーバーライドを設定する。
- ホストグループまたは個別ホストに Puppet クラスまたは設定グループを割り当てる。
- ホストで Puppet エージェントを実行する間隔および Puppet サーバーの設定を適用する間隔を設定する。
- Satellite Web UI でレポートを使用して設定管理を監視する。詳細は、Red Hat Satellite の管理 の リソースの監視 を参照してください。
- メール通知を設定する。詳細は、Red Hat Satellite の管理 の 電子メール通知の設定 を参照してください。
Puppet クラスまたは設定グループの割り当て後、Satellite は設定された間隔で設定管理を自動的に実行してマネージドホストに Puppet 設定を適用します。あるいは、Run Puppet Once 機能を使用して必要に応じて手動で開始できます。詳細は、「SSH を使用した 1 回の Puppet 実行」 を参照してください。
1.7. Satellite と Puppet のインテグレーションの無効化
Satellite で Puppet の使用を停止するには、以下の手順に従います。
コマンドで --remove-all-data
引数を指定しないと、Satellite データベース内のすべての Puppet 関連データが削除されることに注意してください。--remove-all-data
引数を指定すると、このコマンドは Puppet 環境を含む Puppet サーバーデータファイルをさらに削除します。
--remove-all-data
引数を使用して Puppet を無効にすると、後で Puppet を再度有効にすることはできなくなります。これは既知の問題です。Bug 2087067 を参照してください。
前提条件
- Puppet が Satellite で有効化されている。
手順
いずれかの Capsule で Puppet サーバーを使用している場合は、すべての Capsule で Puppet サーバーを無効化します。
satellite-maintain plugin purge-puppet --remove-all-data
# satellite-maintain plugin purge-puppet --remove-all-data
Copy to Clipboard Copied! Satellite Server で Puppet サーバーを無効化します。
satellite-maintain plugin purge-puppet --remove-all-data
# satellite-maintain plugin purge-puppet --remove-all-data
Copy to Clipboard Copied!
第2章 Puppet モジュールの管理
2.1. Satellite Server への Puppet モジュールのインストール
事前にビルドされた Puppet モジュールを Puppet Forge からインストールできます。Puppet Forge は、コミュニティーが提供する Puppet モジュールを提供するリポジトリーです。サポート対象 のフラグが付いた Puppet モジュールは、Puppet Inc によって正式にサポートされ、テストされています。
この例は、ntp モジュール をマネージドホストに追加する方法を示しています。
手順
-
forge.puppet.com に移動し、
ntp
を検索します。最初のモジュールの 1 つは puppetlabs/ntp です。 SSH を使用して Satellite Server に接続し、Puppet モジュールをインストールします。
puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/environments/production/modules
# puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/environments/production/modules
Copy to Clipboard Copied! -i
パラメーターを使用してパスおよび Puppet 環境を指定します (例:production
)。インストールが完了すると、出力は以下のようになります。
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ... Notice: Created target directory /etc/puppetlabs/code/environments/production/modules Notice: Downloading from https://forgeapi.puppet.com ... Notice: Installing -- do not interrupt ... /etc/puppetlabs/code/environments/production/modules |-| puppetlabs-ntp (v8.3.0) |-- puppetlabs-stdlib (v4.25.1) [/etc/puppetlabs/code/environments/production/modules]
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ... Notice: Created target directory /etc/puppetlabs/code/environments/production/modules Notice: Downloading from https://forgeapi.puppet.com ... Notice: Installing -- do not interrupt ... /etc/puppetlabs/code/environments/production/modules |-| puppetlabs-ntp (v8.3.0) |-- puppetlabs-stdlib (v4.25.1) [/etc/puppetlabs/code/environments/production/modules]
Copy to Clipboard Copied!
Puppet モジュールをインストールする別の方法は、Puppet モジュールを含むディレクトリーを上記のモジュールパスにコピーすることです。依存関係を手動で解決してください。
2.2. Puppet モジュールの更新
puppet
コマンドを使用して、既存の Puppet モジュールを更新できます。
手順
SSH を使用して Puppet サーバーに接続し、Puppet モジュールの場所を探します。
puppet config print modulepath
# puppet config print modulepath
Copy to Clipboard Copied! これにより、以下のような出力が返されます。
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/environments/common:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules:/usr/share/puppet/modules
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/environments/common:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules:/usr/share/puppet/modules
Copy to Clipboard Copied! モジュールが上記のパスにある場合、以下のコマンドによりモジュールが更新されます。
puppet module upgrade module name
# puppet module upgrade module name
Copy to Clipboard Copied!
第3章 Puppet クラスおよび環境の Satellite へのインポート
マネージドホストにクラスを割り当てる前に、インストール済みの Puppet モジュールから Satellite Server またはアタッチされた Capsule Server に Puppet クラスおよび環境をインポートします。
前提条件
- Any Organization および Any Location をコンテキストとして選択してください。そうでないと、インポートが失敗する可能性があります。
手順
- Satellite Web UI で、Configure > Classes または Configure > Environments に移動します。
- 右上隅の Import ボタンをクリックし、モジュールのインポート元となる Capsule を選択します。通常、Satellite Server またはアタッチされている Capsule Server のいずれかを選択できます。
- 左側のチェックボックスを使用して、インポートする Puppet 環境を選択します。
- Update ボタンをクリックして、Puppet 環境とクラスを Satellite にインポートします。
インポートにより、以下のように通知が表示されます。
Successfully updated environments and Puppet classes from the on-disk Puppet installation
Successfully updated environments and Puppet classes from the on-disk Puppet installation
Copy to Clipboard Copied!
第4章 カスタム Puppet 環境の作成
Satellite 内に Puppet 環境を作成できます。
手順
- Satellite Web UI で、Configure > Puppet Environments に移動します。
- Create Puppet Environment をクリックして Puppet 環境を作成します。
-
Name を入力します。
example_environment
のように、英数字とアンダースコアを使用できます。 - オプション: ロケーションのコンテキストを設定します。
- オプション: 組織のコンテキストを設定します。
- Submit をクリックして、Puppet 環境を作成します。
Puppet モジュールの Satellite へのインポートを実行する前に、環境が Puppet サーバーの /etc/puppetlabs/code/environments/example_environment
フォルダーとしてすでに存在し、インストール済みの Puppet モジュールが含まれている必要があります。
第5章 Puppet 設定グループの作成
Puppet 設定グループは Puppet クラスの名前付きリストで、その機能を組み合わせて、簡単にマネージドホストに割り当てることができます。これは、純粋な Puppet のプロファイルの概念と同じです。
手順
- Satellite Web UI で、Configure > Config Groups に移動します。
- Create Config Group ボタンをクリックします。
設定グループに追加するクラスを選択します。
- Puppet 設定グループに意味のある 名前 を選択します。
- 選択した Puppet クラスを Included Classes フィールドに追加します。
- Submit をクリックして変更を保存します。
第6章 Puppet スマートクラスパラメーターの設定
6.1. Puppet パラメーターの階層
Puppet パラメーターは階層的に設定されます。下位レベルのパラメーターは、上位レベルのパラメーターを上書きします。
- グローバルパラメーター
- 組織パラメーター
- ロケーションパラメーター
- ホストグループパラメーター
- ホストパラメーター
たとえば、ホスト固有のパラメーターはすべての上位レベルのパラメーターを上書きし、ロケーションパラメーターは組織またはグローバルレベルのパラメーターのみを上書きします。この機能は、ロケーションまたは組織を使用してホストをグループ化する場合に特に便利です。
6.2. スマートクラスパラメーターのグローバルな上書き
Puppet クラスは、Satellite Server にインポートした後で設定できます。この例では、ntp サーバーのデフォルトリストを上書きします。
手順
- Satellite Web UI で、Configure > Classes に移動します。
- 設定を変更するntp Puppet クラスを選択します。
- Smart Class Parameter タブを選択し、servers を検索します。
- Override チェックボックスが選択されていることを確認します。
- Parameter Type ドロップダウンメニューを array に設定します。
Default Value として ntp サーバーのリストを挿入します。
["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]
["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]
Copy to Clipboard Copied! 配列を記述する別の方法は、
yaml
構文です。- 0.de.pool.ntp.org - 1.de.pool.ntp.org - 2.de.pool.ntp.org - 3.de.pool.ntp.org
- 0.de.pool.ntp.org - 1.de.pool.ntp.org - 2.de.pool.ntp.org - 3.de.pool.ntp.org
Copy to Clipboard Copied! -
値を追加した後に Submit ボタンをクリックします。これにより、Puppet モジュール
ntp
のデフォルト設定が変更されます。
6.3. 組織のスマートクラスパラメーターの上書き
ホストのグループを使用して、一度に複数のホストの Puppet パラメーターを上書きできます。以下の例では、組織 コンテキストを選択して、コンテキストベースのパラメーターの設定を説明します。
組織 レベルの Puppet パラメーターは、ロケーションレベルの Puppet パラメーターで上書きされる点に注意してください。
手順
- Satellite Web UI で、Configure > Classes に移動します。
- クラス名をクリックしてクラスを選択します。
- Smart Class Parameter タブで、パラメーターを選択します。
-
Order リストを使用して Puppet パラメーターの階層を定義します。個々のホスト (
fqdn
) は最も関連性が強いとマークし、組織コンテキスト (organization
) は最も関連性が弱いとマークします。 - 最初のマッチが検索された後、それ以降のマッチするパラメーターをすべて追加する場合は、Merge Overrides をチェックします。
- より具体的な値が定義されている場合でもデフォルト値も含める場合は、Merge Default をオンにします。
- 選択したパラメーターの一意の値のリストを作成する場合は、Avoid Duplicates をオンにします。
- matcher フィールドには、order リストからの attribute タイプ が必要です。
- Add Matcher ボタンを使用して、マッチャーをさらに追加します。
- Submit をクリックして変更を保存します。
6.4. ロケーションのスマートクラスパラメーターの上書き
ホストのグループを使用して、一度に複数のホストの Puppet パラメーターを上書きできます。以下の例では、ロケーション コンテキストを選択して、コンテキストベースのパラメーターの設定を説明します。
手順
- Satellite Web UI で、Configure > Classes に移動します。
- クラス名をクリックしてクラスを選択します。
- Smart Class Parameter タブで、パラメーターを選択します。
-
Order リストを使用して Puppet パラメーターの階層を定義します。個々のホスト (
fqdn
) は最も関連性が強いとマークし、ロケーションコンテキスト (location
) は最も関連性が弱いとマークします。 - 最初のマッチが検索された後、それ以降のマッチするパラメーターをすべて追加する場合は、Merge Overrides をチェックします。
- より具体的な値が定義されている場合でもデフォルト値も含める場合は、Merge Default をオンにします。
- 選択したパラメーターの一意の値のリストを作成する場合は、Avoid Duplicates をオンにします。
-
matcher フィールドには、order リストからの attribute タイプ が必要です。たとえば、場所 のコンテキストとして
Paris
を選択し、値をフランスの ntp サーバーに設定できます。 - Add Matcher ボタンを使用して、マッチャーをさらに追加します。
- Submit をクリックして変更を保存します。
6.5. 個々のホストでのスマートクラスパラメーターの上書き
個々のホストのパラメーターを上書きできます。これは、複数のホストがあり、1 つのホストのみに変更を加えたい場合に推奨されます。
手順
- Satellite Web UI で、Hosts > All Hosts に移動します。
- ホスト名をクリックしてホストを選択します。
- Edit をクリックします。
- Host タブで、Puppet 環境 を選択します。
- Puppet ENC タブを選択します。
- Override ボタンをクリックして Puppet パラメーターを編集します。
- Submit をクリックして変更を保存します。
第7章 ホストグループへの Puppet クラスの割り当て
ホストグループを使用して、ntp Puppet クラスを一度に複数のホストに割り当てます。このホストグループに基づいてデプロイするすべてのホストには、この Puppet クラスがインストールされます。
手順
- Satellite Web UI で Configure > Host Groups に移動して、ホストグループを作成するか、既存のホストグループを編集します。
Host Group タブで、以下のパラメーターを設定します。
- Lifecycle Environment は、特定バージョンのコンテンツがホストで利用できるステージを説明しています。
- Content View は製品で設定され、コンテンツリポジトリーのバージョン管理ができます。
- Environment では、ホストのグループに独自の専用設定を提供できます。
- Puppet ENC タブに移動します。
- Puppet クラスを Included Classes に追加するか、Puppet 設定グループが設定されている場合は Included Config Groups に追加します。
- Submit をクリックして変更を保存します。
第8章 個別ホストへの Puppet クラスの割り当て
手順
- Satellite Web UI で、Hosts > All hosts に移動します。
-
ntp
Puppet クラスを追加するホストの Edit ボタンをクリックします。 - Puppet ENC タブを選択し、ntp クラスを探します。
-
ntp
の横にある + 記号をクリックして、included classes の一覧に ntp submodule を追加します。 下部の Submit ボタンをクリックして変更を保存します。
ヒント個々のホストの Puppet classes タブが空の場合は、適切な Puppet 環境に割り当てられているかどうかを確認します。
Puppet 設定を確認します。
- Hosts > All Hosts に移動し、ホストを選択します。
- 上部のオーバーフローメニューから Legacy UI を選択します。
Details セクションで、Puppet YAML ボタンをクリックします。これにより、以下のような出力が生成されます。
--- parameters: // shortened YAML output classes: ntp: servers: '["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]' environment: production ...
--- parameters: // shortened YAML output classes: ntp: servers: '["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]' environment: production ...
Copy to Clipboard Copied!
ntp 設定を確認します。
SSH を使用してホストに接続し、
/etc/ntp.conf
の内容を確認します。この例では、ホストが CentOS 7 を実行していることを前提としています。他のオペレーティングシステムでは、ntp 設定ファイルが別のパスに保存されている場合があります。
ヒント以下のコマンドを実行して、ホストで Puppet エージェントを実行しなければならない場合があります。
puppet agent -t
# puppet agent -t
Copy to Clipboard Copied! ホストで以下のコマンドを実行し、クロックの同期に使用される ntp サーバーを確認します。
cat /etc/ntp.conf
# cat /etc/ntp.conf
Copy to Clipboard Copied! これにより、以下のような出力が返されます。
ntp.conf: Managed by puppet.
# ntp.conf: Managed by puppet. server 0.de.pool.ntp.org server 1.de.pool.ntp.org server 2.de.pool.ntp.org server 3.de.pool.ntp.org
Copy to Clipboard Copied!
これで、ntp モジュールが機能し、ホストまたはホストのグループに追加して、ntp 設定を自動的にロールアウトできます。
第9章 管理対象ホストでの Puppet 設定の強制
オンデマンドで手動で (run once)、または設定可能な間隔で自動的に、Satellite からの設定を適用することができます。
9.1. SSH を使用した 1 回の Puppet 実行
マネージドホストで Puppet を実行するには、適切なジョブテンプレートを Run Puppet Once 機能に割り当てます。
手順
- Satellite Web UI で、Administer > Remote Execution Features に移動します。
-
puppet_run_host
リモート実行機能を選択します。 -
Run Puppet Once - SSH Default
ジョブテンプレートを割り当てます。
ジョブを実行し、カテゴリー Puppet
およびテンプレート Run Puppet Once - SSH Default
を選択して、マネージドホストで Puppet を実行します。あるいは、ホストの詳細ページの Schedule Remote Job ドロップダウンメニューで、Run Puppet Once ボタンをクリックします。
9.2. 自動適用の間隔について
最後の Puppet レポートが、分単位で設定された outofsync_interval
と puppet_interval
を組み合わせた値より古い場合に、Satellite はホストが同期されていないと見なします。デフォルトでは、マネージドホストの Puppet エージェントは 30 分ごとに実行され、puppet_interval
は 35 分に設定され、グローバルの outofsync_interval
は 30 分に設定されます。
ホストが同期されていないと見なされるまでの実質的な時間は、outofsync_interval
と puppet_interval
の合計です。たとえば、グローバルの outofsync_interval
を 30 に設定し、puppet_interval
を 60 に設定すると、合計の 90 分が経過するとホストのステータスが out of sync
に変わります。
9.3. ホストでの Puppet エージェント実行間隔の設定
Puppet エージェントを実行してレポートを Satellite に送信する間隔を設定します。
手順
- SSH を使用してマネージドホストに接続します。
-
Puppet エージェントの実行間隔を
/etc/puppetlabs/puppet/puppet.conf
に追加します (例:runinterval = 1h
)。
9.4. グローバルの非同期間隔の設定
9.5. Puppet の非同期間隔の設定
手順
- Satellite Web UI で、Administer > Settings に移動して、Config Management タブをクリックします。
- Puppet interval フィールドで、Puppet を使用して報告するホストが同期されていないと見なされるまでの期間に分単位の値を設定します。
9.6. ホストグループの非同期間隔の上書き
手順
- Satellite Web UI で、Configure > Host Groups に移動します。
- ホストグループを選択します。
- Parameters タブで Add Parameter をクリックします。
-
Name フィールドに
outofsync_interval
を入力します。 -
Type ドロップダウンメニューから、
integer
を選択します。 - Value フィールドに新しい間隔を分単位で入力します。
- Submit ボタンをクリックします。
9.7. 個々のホストの非同期間隔の上書き
手順
- Satellite Web UI で、Hosts > All Hosts に移動します。
- 選択したホストの Edit をクリックします。
- Parameters タブで Add Parameter をクリックします。
-
Name フィールドに
outofsync_interval
を入力します。 -
Type ドロップダウンメニューから、
integer
を選択します。 - Value フィールドに新しい間隔を分単位で入力します。
- Submit ボタンをクリックします。