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で簡単に管理できるようになりました。 広告