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

CentOS8でPuppetマスターとエージェントをセットアップする方法

Puppetは、オープンソースの構成管理ツールおよびサーバー自動化フレームワークです。 Puppetは、UnixライクなオペレーティングシステムとMicrosoftWindowsシステムで実行できます。 1台のマスターサーバーから数百のシステムの管理タスクと構成を管理および実行できます。

このチュートリアルでは、CentOS 8にPuppetをインストールする方法を説明します。CentOS8サーバーをPuppetの「マスター」としてインストールし、もう1つのサーバーを「エージェント」として構成します。

前提条件

  • 2台以上のCentOS8サーバー
  • root権限

私たちが行うこと:

  • 人形の事前インストール
  • Puppetサーバーのインストールと構成
  • PuppetAgentのインストールと構成
  • Puppetエージェントの構成を確認する
  • 最初の人形マニフェストを作成する
ステップ1-Puppetの事前インストール

この最初のステップでは、パペットをインストールするためにマスターサーバーとエージェントサーバーの両方を準備します。サーバーのホストとFQDNを設定し、NTPサーバーを設定し、CentOS8サーバーのpuppetリポジトリを追加します。

ホスト名の設定

まず、両方のサーバーのホストとFQDNを設定します。パペットマスターには、FQDN「master.hakase-labs.io」を持つホスト名「master」があり、エージェントには、FQDN「agent01.hakase-labs.io」を持つホスト名「agent01」があります。

以下の「hostnamectl」コマンドを使用してホスト名を設定します。

hostnamectl set-hostname hostname

その後、「/ etc/hosts」ファイルを編集してFQDNサーバーを構成します。

vim /etc/hosts

IPアドレスとドメイン名を自分のものに変更して貼り付けます。

10.5.5.21   master.hakase-labs.io   master
10.5.5.22   agent01.hakase-labs.io  agent01

保存して閉じます。

次に、hostnamedサービスを再起動して、新しいホスト名とFQDNを適用します。

systemctl restart systemd-hostnamed

その後、次のコマンドを使用してホスト名とFQDNを確認します。

hostname
hostname -f

そして、新しいホスト名を取得し、FQDNが構成されてシステムに適用されます。

NTPサーバーのセットアップ

NTPサーバーの場合、サーバーには「chrony」を使用します。

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

dnf install chrony

その後、vimエディターを使用してchrony構成'/etc/chrony.conf'を編集します。

vim /etc/chrony.conf

次に、プールサーバーをお住まいの国で最も近いプールに変更します。 「https://www.pool.ntp.org/zone/COUNTRYID」を使用して、利用可能なプールNTPを確認できます。

お住まいの国で利用可能なすべてのNTPサーバーをコピーし、以下のように「chrony.conf」ファイルに貼り付けます。

server 0.id.pool.ntp.org iburst
server 1.id.pool.ntp.org iburst
server 2.id.pool.ntp.org iburst
server 3.id.pool.ntp.org iburst

保存して閉じます。

次に、chronydサービスを開始し、起動ブート時間に追加します。

systemctl start chronyd
systemctl enable chronyd

NTPサーバーの構成が完了しました。

CentOS8のPuppetリポジトリを追加

puppetリポジトリCentOS8サーバーの場合、以下のようにrpmコマンドを使用して手動でインストールできます。

sudo rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm

その後、以下のdnfコマンドを使用して、システムで使用可能なすべてのリポジトリを確認します。

dnf repolist

そして、パペットリポジトリがCentOS8システムに追加されていることがわかります。

SELinuxを無効にする

SELinuxを無効にするには、vimエディターを使用して「/ etc / sysconfig/selinux」構成を編集できます。

vim /etc/sysconfig/selinux

次に、「SELINUX」値の構成を「無効」に変更します。

SELINUX=disabled

保存して閉じてから、サーバーを再起動します。

sudo reboot

再度ログインしたら、次のコマンドを使用してSELinuxのステータスを確認します。

sestatus

そして、SELinuxが無効な状態になります。

ステップ2-Puppetserverをインストールして構成する

このステップでは、マスターノードにpuppetserverをインストールして構成します。

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

sudo dnf install puppetserver

その後、puppetserverの「initsettings」を編集し、使用しているRAMに応じてメモリ割り当てを変更する必要があります。

vimエディターを使用して「/etc/ sysconfig/puppetserver」にあるpuppetserverinit設定を編集します。

vim /etc/sysconfig/puppetserver

次に、RAMに応じてメモリ割り当ての「JAVA_ARGS」構成を変更します。

JAVA_ARGS="-Xms1g -Xmx1g ...."

保存して閉じます。

次に、「/ etc / puppetlabs」ディレクトリに移動し、puppet構成ファイル「puppet.conf」を編集します。

cd /etc/puppetlabs/
vim puppet/puppet.conf

マスター構成で、マスターサーバーのFQDNを使用してDNS代替名を定義します。

[master]
....
dns_alt_names=master.hakase-labs.io,puppet
....

その後、パペットのメインサーバー構成を以下のように定義します。

[main]
certname = master.hakase-labs.io
server = master.hakase-labs.io
environment = production
runinterval = 1h

保存して閉じます。

次に、puppetserverサービスを起動ブート時間に追加し、サービスを開始します。

systemctl enable puppetserver
systemctl start puppetserver

puppetserverは、デフォルトのTCPポート「8140」を使用してCentOS8サーバーで稼働しています。

次のコマンドを使用して、puppetserverポート「8140」をfirewalldに追加します。

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

その結果、パペットマスターのインストールと構成は正常に完了しました。

ステップ3-PuppetAgentのインストールと構成

Puppetマスターサーバー「master.hakase-labs.io」をインストールした後、「agent01」サーバーにPuppetエージェントをインストールします。

'agent01'サーバーにログインし、以下のdnfコマンドを使用してpuppet-agentパッケージをインストールします。

sudo dnf install puppet-agent

その後、「/ etc / puppetlabs」ディレクトリに移動し、vimエディターを使用して構成ファイル「puppet.conf」を編集します。

cd /etc/puppetlabs/
vim puppet/puppet.conf

「certname」と「server」の構成を独自の構成に変更し、構成に貼り付けます。

[main]
certname = agent01.hakase-labs.io
server = master.hakase-labs.io
environment = production
runinterval = 1h

保存して閉じます。

次に、puppetサービスを開始し、次のコマンドを使用してPuppetエージェントをマスターサーバーに登録します。

/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

そして、以下のような結果が得られます。

これで、パペットエージェントが稼働し、パペットマスターサーバーに登録しようとしています。

ここで、Puppetマスターサーバーに戻り、保留中の証明書要求を確認します。

/opt/puppetlabs/bin/puppetserver ca list

そして、リストにある「agent01.hakase-labs.io」証明書を取得します。

次に、以下のコマンドを使用して「agent01」証明書に署名します。

/opt/puppetlabs/bin/puppetserver ca sign --certname agent01.hakase-labs.io

これで、パペットエージェントがマスターサーバーに登録されました。

ステップ4-PuppetAgentの構成を確認する

次に、Puppetエージェントの構成を確認し、次のコマンドを使用してPuppetエージェントとマスター間の接続をテストします。

/opt/puppetlabs/bin/puppet agent --test

そして、以下のような結果が得られます。

その結果、PuppetエージェントはPuppetマスターから構成をプルし、エラーなしでサーバーに適用しました。

ステップ5-最初のマニフェストを作成する

この段階で、マスターとエージェント用のPuppetのインストールと構成が完了しました。

このステップでは、httpdパッケージをインストールするための最初のパペットマニフェストを作成して、セットアップをテストします。

'/etc/puppetlabs/code/environments/production/manifests'ディレクトリに移動し、最初のpuppetマニフェストファイル'httpd.pp'を作成します。

cd /etc/puppetlabs/code/
cd environments/production/manifests

vim httpd.pp

次の構成を貼り付けます。

node 'agent01.hakase-labs.io' {
    package { 'httpd':
        ensure  => "installed",
    }
    service { 'httpd':
        ensure => running,
    enable => true
    }
}

保存して閉じます。

次に、Puppetエージェントノード「agento01」に移動し、次のコマンドを実行します。

/opt/puppetlabs/bin/puppet agent --test

そして、以下のような結果が表示されます。

Puppetエージェントは、httpdパッケージをインストールしてhttpdサービスを開始するために、Puppetマスターから新しい構成をプルしました。

'agent01'ノードで、httpdサービスのステータスを確認し、HTTPポート'80'を確認します

systemctl status httpd
netstat -plntu

そして、デフォルトのHTTPポート「80」を使用して「agent01」サーバーでhttpdサービスが稼働していることを確認します。 httpdパッケージは、上部に作成したpuppetマニフェストを介してインストールされています。

その結果、CentOS8サーバーでのPuppetマスターとエージェントのインストールと構成が正常に完了しました。


Cent OS
  1. CentOSでSFTPサーバーをセットアップする方法

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

  3. CentOSでMySQLレプリケーションを設定する方法

  1. CentOS 7 /RHEL7でSysLogサーバーをセットアップする方法

  2. CentOS 7 /RHEL7でNFSサーバーをセットアップする方法

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

  1. CentOS7にVNCをインストールして設定する方法

  2. CentOS7でVSFTPDを使用してFTPサーバーをセットアップする方法

  3. CentOSでNTPサーバーをセットアップする方法は?