GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS 8 /RHEL8にPuppetをインストールする方法

Puppetは、プロビジョニング、構成管理、中央の場所からの数百のクライアントシステムへのパッチ適用など、ITインフラストラクチャの自動化に役立つオープンソースの構成管理ツールです。

Puppetは、Linux、Mac、BSD、Solaris、およびWindowsオペレーティングシステムで使用できます。 「Ruby」言語で記述され、Apacheライセンスの下でリリースされています

このガイドは、CentOS 8 /RHEL8にPuppetをインストールするのに役立ちます。

アーキテクチャ

Pupperは、エージェントマスターアーキテクチャで構成されます。このアーキテクチャでは、管理対象ノードはバックグラウンドサービスとしてパペットエージェントソフトウェアを実行します。一方、1つ以上のサーバーがマスターアプリケーションを実行します。 Puppetサーバー。

人形エージェントは定期的に事実を人形マスターに送信し、カタログを要求します。マスターは、アクセスできる情報のソースを使用して、その特定のノードのカタログをコンパイルして返します。

環境

ここでは、サーバー/エージェントアーキテクチャでパペットを構成します。

操り人形マスター

ホスト名: puppet server.itzgeek.local

IPアドレス: 192.168.0.10

オペレーティングシステム: CentOS 8

人形クライアント

ホスト名: client.itzgeek.local

IPアドレス: 192.168.0.20

オペレーティングシステム: CentOS 8

前提条件

NTPをインストールする

Puppetサーバーが認証局として機能するため、マスターノードとクライアントノードのタイミングはNTPサーバーと正確に同期している必要があります。

NTPサーバーを設定する必要がある場合は、次のようにします。

読む: Chronyを使用してNTPサーバーを構成する方法

NTPクライアントを設定する必要がある場合は、次のようにします。

読む: Chronyを使用してNTPクライアントを構成する方法

必要に応じて、システムのタイムゾーンも変更してください。

読む :CentOS 8 /RHEL8でタイムゾーンを変更する方法

DNS

Puppetエージェントは、ホスト名を使用してPuppetサーバーと通信します。したがって、エージェントノードが/ etc/hostsファイルまたはDNSサーバーを使用してPuppetサーバーのホスト名を解決できることを確認してください。

Puppetサーバーのインストールと構成

Puppet Serverは、マスターノードで実行されるサーバーソフトウェアです。 Puppet Serverは、管理対象ノード(puppet-agent)の構成を制御します。

リポジトリを追加

Puppetサーバーをインストールするには、リポジトリ構成パッケージをインストールしてpuppetリポジトリを追加する必要があります。

rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm
Puppetをインストール

以下のコマンドを使用してPuppetサーバーをインストールします。

yum install -y puppetserver
メモリ割り当て

デフォルトでは、Puppetサーバーは2GBのメモリを使用するように構成されています。接続されているノードの数に基づいて、メモリ割り当てを変更できます。

このデモでは、512MBのメモリを割り当てます。

メモリ割り当ての値を変更するには、以下のファイルを編集してください。

vi /etc/sysconfig/puppetserver

値を変更します。

差出人:

JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

宛先:

512MBの場合は、以下の設定を使用してください。

JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
Puppetサーバーを構成する

Puppetの構成ファイルは、Pupperサーバーとエージェント用にそれぞれ[master]と[main]という名前の2つのセクションで構成されています。

vi /etc/puppetlabs/puppet/puppet.conf

環境に応じてファイルを変更してください。 Pupperエージェントは、dns_alt_namesに記載されている任意のホスト名を使用して、Pupperサーバーに接続できます。

# Pupper Server Configuration
[master]
dns_alt_names = puppetserver,puppetserver.itzgeek.local

# Puppet Agent Configuration
[main]
certname = puppetserver.itzgeek.local
server = puppetserver.itzgeek.local
runinterval = 30m
Puppetサーバーを起動します

PuppetServerのルートおよび中間署名CAを生成します。

puppetserver ca setup
Output:

Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
puppetserver:コマンドが見つからない場合は、ターミナルでsource /etc/profile.d/puppet-agent.shを実行するか、現在のセッションからログアウトして再度ログインします。

Puppetサーバーを起動して有効にします。

systemctl start puppetserver

systemctl enable puppetserver
ファイアウォール

Puppetサーバーはポート8140でリッスンします。したがって、エージェントがマスターに接続できるようにファイアウォールを構成します。

firewall-cmd --permanent --add-port=8140/tcp

firewall-cmd --reload

Puppetエージェントのインストールと構成

リポジトリを追加

Puppetエージェントをインストールするには、すべてのノードにpuppetリポジトリを追加する必要があります。

rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm
エージェントのインストール

以下のコマンドを使用して、クライアントにpuppetエージェントをインストールします。

dnf install -y puppet-agent

puppet構成ファイルを編集し、Puppetサーバー情報を設定します。

Puppetサーバーのホスト名に従ってサーバー値を設定します。私の場合、サーバーはpuppetserver.itzgeek.localであり、certnameはクライアントのホスト名(client.itzgeek.local)です。

vi /etc/puppetlabs/puppet/puppet.conf

以下のように設定します。

[main]
server = puppetserver.itzgeek.local
certname = client.itzgeek.local
runinterval = 30m

runintervalの値は、要件に応じて変更できます。この設定は、エージェントが2つのカタログ要求間で待機する時間を制御します。値は、秒(10または10秒)、分(10分)、および時間(1時間)で設定できます。

ノードでパペットエージェントを起動し、システムの起動時に自動的に起動するようにします。

puppet resource service puppet ensure=running enable=true
Output:

Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
service { 'puppet':
  ensure   => 'running',
  enable   => 'true',
  provider => 'systemd',
}
puppet:コマンドが見つからない場合は、ターミナルでsource /etc/profile.d/puppet-agent.shを実行するか、現在のセッションからログアウトして再度ログインします。 マスターサーバーでエージェントノード証明書に署名する

各ノードからの証明書要求を承認する必要があります。エージェントノードは、実行しようとすると初めて証明書を要求します。

エージェントノードで以下のコマンドを実行して、初期接続を確立します。警告/エラーは無視してかまいません。

puppet agent -t

Pupperサーバーにログインし、以下のコマンドを実行して未処理のリクエストを表示します。

puppetserver ca list
Output:

Requested Certificates:
    client.itzgeek.local       (SHA256)  06:D8:8E:AE:CA:0B:B1:E7:90:B5:B9:1B:75:3C:95:69:D8:EF:27:0A:5D:CC:45:BB:15:34:64:D2:6B:2C:CA:98

puppetcertsignコマンドを実行してリクエストに署名します。

puppetserver ca sign --certname client.itzgeek.local
Output:

Successfully signed certificate request for client.itzgeek.local

これで、Puppetサーバーはクライアントマシンと通信してノードを制御できるようになりました。

ノードからの複数の署名要求がある場合は、1つのコマンドですべての要求に署名できます。

puppetserver ca sign --all

場合によっては、特定のノードの証明書を取り消して、それらを読み戻す必要があります。

をクライアントのホスト名に置き換えます。

puppetserver ca revoke --certname AGENT_NAME

以下のコマンドを使用して、署名されたリクエストと署名されていないリクエストをすべて一覧表示できます。

puppetserver ca list --all
Output:

Signed Certificates:
    puppetserver.itzgeek.local       (SHA256)  E6:2C:6C:1E:9B:C6:AA:D9:84:09:F3:67:45:1B:36:C6:1F:FB:46:5F:92:64:37:19:E3:74:0C:0D:29:D5:C5:F6  alt names: ["DNS:puppetserver.itzgeek.local", "DNS:puppetserver", "DNS:puppetserver.itzgeek.local"]  authorization extensions: [pp_cli_auth: true]
    client.itzgeek.local             (SHA256)  EF:D8:1A:F2:E9:56:A3:1F:DA:A9:8D:9B:71:02:D8:52:F1:44:98:92:A7:5F:DE:FC:5F:55:37:97:EC:9C:9A:96
パペットクライアントを確認する

Puppetサーバーがクライアント証明書に署名したら、クライアントマシンで次のコマンドを実行してテストします。

puppet agent --test
Output:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for client.itzgeek.local
Info: Applying configuration version '1591351483'
Notice: Applied catalog in 0.01 seconds
結論

それはアルです。 CentOS 8 / RHEL 8にPuppetをインストールする方法を学んだことを願っています。さらに読むと、クライアントノードにファイルとディレクトリを作成するための簡単なマニフェストファイルを作成する方法を学びます。コメントセクションでフィードバックを共有してください。


Cent OS
  1. RHEL 8 / CentOS8LinuxにDNSサーバーをインストールする方法

  2. CentOS 7 /RHEL7にPuppet6.xをインストールする方法

  3. RHEL 8 /CentOS8にPuppetをインストールする方法

  1. RHEL 8 /CentOS8にpostfixメールサーバーをインストールする方法

  2. RHEL 8 /CentOS8にvncサーバーをインストールする方法

  3. CentOS / RHEL 7 :GUI のインストール方法

  1. NextcloudをRHEL8/CentOS8サーバーにインストールする方法

  2. RHEL 8 /CentOS8サーバーにOwnCloudをインストールする方法

  3. RHEL 8 /CentOS8にPostgreSQLサーバーをインストールする方法