Ubuntu 20.04にPuppetマスターとエージェントをインストールする

Puppetは、Linux、Unix、およびWindowsオペレーティングシステム用の無料のオープンソース自動管理エンジンです。サーバーの展開、構成、および管理に使用され、ユーザーの追加、パッケージのインストールなどの管理タスクを実行します。システム管理者が数千の物理マシンと仮想マシンでタスクを自動化することにより、時間と精神的なスペースを解放するのに役立ちます。クライアントサーバーモデルを使用します。 PuppetエージェントがPuppetマスターと通信し、Puppetマスターから構成プロファイルをプルダウンする間、PuppetマスターはPuppetエージェントの構成情報を制御します。

このチュートリアルでは、Ubuntu 20.04サーバーにPuppetサーバーとエージェントをインストールする方法を説明します。

前提条件

  • Ubuntu 20.04を実行する2台のサーバー。
  • rootパスワードは両方のサーバーで構成されます。

入門

まず、PuppetマスターシステムとPuppetクライアントシステムのすべてのパッケージを更新する必要があります。次のコマンドを実行して更新できます。

apt-get update -y

すべてのパッケージが最新の状態になったら、次のステップに進むことができます。

ホスト名解決の設定

次に、両方のノードでホスト名を設定する必要があります。したがって、各ノードはホスト名で相互に通信できます。これは、両方のノードで/ etc / hostsファイルを編集することで実行できます。

nano /etc/hosts

両方のノードに次の行を追加します。

puppet-master-ip puppetmaster puppet
puppet-client-ip puppetclient

終了したら、ファイルを保存して閉じます。その後、次のステップに進むことができます。

Puppetサーバーのインストール

最初に、マスターノードにPuppetサーバーをインストールする必要があります。デフォルトでは、PuppetパッケージはUbuntu 20.04のデフォルトリポジトリでは使用できません。そのため、サーバーにPuppetリポジトリをインストールする必要があります。

まず、次のコマンドで最新バージョンのPuppetをダウンロードします。

wget https://apt.puppetlabs.com/puppet6-release-focal.deb

パッケージがダウンロードされたら、次のコマンドを実行してインストールします。

dpkg -i puppet6-release-focal.deb

インストールが完了したら、次のコマンドを実行してリポジトリを更新し、Puppetサーバーをインストールします。

apt-get update -y 
 apt-get install puppetserver -y

Puppetサーバーをインストールした後、Puppet Javaプロセスのメモリ割り当てサイズを変更する必要があります。 / etc / default / puppetserverファイルを編集することでそれを行うことができます:

nano /etc/default/puppetserver

次に示すように、メモリサイズを1gに変更します。

JAVA_ARGS="-Xms1g -Xmx1g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

終了したら、ファイルを保存して閉じます。次に、Puppetサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。

systemctl start puppetserver 
 systemctl enable puppetserver

次に、次のコマンドを使用してPuppetサービスのステータスを確認できます。

systemctl status puppetserver

次のコマンドが表示されます。

? puppetserver.service - puppetserver Service
     Loaded: loaded (/lib/systemd/system/puppetserver.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:33:55 UTC; 3s ago
    Process: 3673 ExecStart=/opt/puppetlabs/server/apps/puppetserver/bin/puppetserver start (code=exited, status=0/SUCCESS)
   Main PID: 3715 (java)
      Tasks: 42 (limit: 4915)
     Memory: 962.3M
     CGroup: /system.slice/puppetserver.service
             ??3715 /usr/bin/java -Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger -XX:OnOutOfMemoryError="kill>

Sep 05 09:33:08 puppetmaster systemd[1]: Starting puppetserver Service...
Sep 05 09:33:55 puppetmaster systemd[1]: Started puppetserver Service.

完了したら、次のステップに進むことができます。

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

この時点で、Puppetサーバーがインストールされ、構成されます。ここで、クライアントノードにPuppetエージェントをインストールする必要があります。

まず、次のコマンドでPuppetリポジトリをダウンロードしてインストールします。

wget https://apt.puppetlabs.com/puppet6-release-focal.deb 
 dpkg -i puppet6-release-focal.deb

次に、次のコマンドを実行して、リポジトリを更新し、Puppetエージェントをインストールします。

apt-get update -y 
 apt-get install puppet-agent -y

Puppetエージェントをインストールしたら、Puppet構成ファイルを編集して、Puppetマスター情報を定義する必要があります。

nano /etc/puppetlabs/puppet/puppet.conf

次の行を追加します。

[main]
certname = puppetclient
server = puppetmaster

終了したら、ファイルを保存して閉じます。次に、Puppetエージェントサービスを開始し、次のコマンドで起動時に開始できるようにします。

systemctl start puppet 
 systemctl enable puppet

次に、次のコマンドを使用してPuppetのステータスを確認します。

systemctl status puppet

次の出力が表示されます。 広告

? puppet.service - Puppet agent
     Loaded: loaded (/lib/systemd/system/puppet.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 09:43:15 UTC; 22s ago
   Main PID: 1435 (puppet)
      Tasks: 2 (limit: 2353)
     Memory: 52.8M
     CGroup: /system.slice/puppet.service
             ??1435 /opt/puppetlabs/puppet/bin/ruby /opt/puppetlabs/puppet/bin/puppet agent --no-daemonize

Sep 05 09:43:15 puppetagent systemd[1]: Started Puppet agent.

この時点で、Puppetエージェントがインストールおよび構成されました。これで、次のステップに進むことができます。

Puppet Agent証明書に署名

Puppetはクライアント/サーバーアーキテクチャを使用しているため、構成する前に、各エージェントノードの証明書リクエストを承認する必要があります。

Puppetマスターノードで、次のコマンドを実行してすべての証明書を一覧表示します。

/opt/puppetlabs/bin/puppetserver ca list

次の出力が表示されます。

Requested Certificates:
    puppetclient       (SHA256)  A4:9A:E9:87:8B:54:0A:4F:A0:78:65:1A:3C:99:B5:EC:31:9E:BB:4C:17:8A:50:16:E9:1E:3D:D6:27:74:89:85
    puppetmaster       (SHA256)  E9:25:4C:51:4E:47:D7:44:11:1F:C5:A9:4E:96:D9:E8:3A:EB:A0:01:48:06:B5:EF:3F:C4:09:03:90:3E:D8:2D

次のコマンドですべての証明書に署名します。

/opt/puppetlabs/bin/puppetserver ca sign --all

次の出力が表示されます。

Successfully signed certificate request for puppetclient
Successfully signed certificate request for puppetmaster

これで、Puppetマスターはエージェントノードと通信して制御できるようになります。

Puppetエージェントノードで、次のコマンドを使用してPuppetマスターとエージェントの通信をテストします。

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

すべて問題なければ、次の出力が得られるはずです。

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for puppetclient
Info: Applying configuration version '1599300398'
Notice: Applied catalog in 0.02 seconds

結論

おめでとう! Ubuntu 20.04サーバーにPuppetマスターとエージェントを正常にインストールして構成しました。複数のエージェントを簡単に追加して、Puppetで簡単に管理できるようになりました。 広告

Source