Puppetは、Linux、Unix、およびWindowsオペレーティングシステム用の無料のオープンソース自動管理エンジンです。サーバーの展開、構成、および管理に使用され、ユーザーの追加、パッケージのインストールなどの管理タスクを実行します。何千もの物理マシンと仮想マシンでタスクを自動化することにより、システム管理者が時間と精神的なスペースを解放するのに役立ちます。クライアントサーバーモデルを使用します。 PuppetマスターがPuppetエージェントの構成情報を制御し、PuppetエージェントがPuppetマスターと通信して構成プロファイルをプルダウンする場合。
このチュートリアルでは、Ubuntu20.04サーバーにPuppetサーバーとエージェントをインストールする方法を説明します。
- Ubuntu20.04を実行している2台のサーバー。
- ルートパスワードは両方のサーバーで構成されています。
まず、PuppetマスターシステムとPuppetクライアントシステムのすべてのパッケージを更新する必要があります。次のコマンドを実行して更新できます:
apt-get update -y
すべてのパッケージが最新になったら、次のステップに進むことができます。
次に、両方のノードでホスト名を設定する必要があります。したがって、各ノードはホスト名によって相互に通信できます。両方のノードで/etc/ hostsファイルを編集することでそれを行うことができます:
nano /etc/hosts
両方のノードに次の行を追加します。
puppet-master-ip puppetmaster puppet puppet-client-ip puppetclient
終了したら、ファイルを保存して閉じます。その後、次のステップに進むことができます。
まず、マスターノードにPuppetサーバーをインストールする必要があります。デフォルトでは、PuppetパッケージはUbuntu20.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サーバーをインストールした後、PuppetJavaプロセスのメモリ割り当てサイズを変更する必要があります。 / 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はクライアントサーバーアーキテクチャを使用しているため、エージェントノードを構成する前に各エージェントノードの証明書要求を承認する必要があります。
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
おめでとう!これで、Ubuntu20.04サーバーにPuppetマスターとエージェントが正常にインストールおよび構成されました。複数のエージェントを簡単に追加し、Puppetで簡単に管理できるようになりました。