このチュートリアルでは、コマンドターミナルを使用してPuppetServerをAlmaLinuxまたはRockyLinux8ディストリビューションにインストールする手順を学習します。
Puppetは、エンタープライズサポートを備えたオープンソースプロジェクトであり、管理者は単一のサーバーまたはコンピューターの大規模なシステムネットワークへの構成を自動化できます。 AnsibleとForemanはその選択肢のいくつかです。
開発者と管理者が同じような構成で一度に複数のサーバーを構成する必要がある場合、各システムで同じタスクを1つずつ繰り返す代わりに、Puppetなどの特別な構成マネージャーを使用します。理想的には、さまざまなデバイスやオペレーティングシステムで使用できるPuppetのドメイン固有言語(DSL)(Puppetコード)を使用して、多くのタスクを自動化できます。 2005年にオレゴン州ポートランドのPuppetLabsによって開発されました。 Rubyで書かれ、クロスプラットフォームになるように設計されています。 OracleLinux、RedHat、SuSE、Ubuntu、Debian AlmaLinux、Rocky Linuxなど、任意のログイン用語のエンタープライズオペレーティングシステムを使用してPuppetサーバーをホストできます。 Windowsを実行しているシステムは、Puppetを使用して構成および管理することもできますが、いくつかの制限があります。
クライアントサーバーの原則を使用します
リモートシステムの監視と管理に使用されるほとんどのツールと同様に、Puppetもクライアントサーバーアーキテクチャを使用します。そのサーバー部分は「PuppetMaster」として知られています 」は、ネットワーク内のコンピューターのすべての構成をアクティブに保ちます。これにより、管理者はエージェントの助けを借りて、ネットワークに接続されているすべてのコンピューターを一元管理できます。 。はい、エージェントはクライアント部分であり、 PuppetAgentとして知られています。 構成が必要なすべてのシステムにインストールされます。これは、Puppetアーキテクチャの快適さに大きく貢献します。これは、構成するすべてのシステムでマスターによって実行されます。ターゲット状態としてカタログに保存されている構成設定が基本となります。エージェントとマスター間の通信は、HTTPSを介して行われます。両側の証明書は、双方向通信プロセスを保護するのに役立ちます。
エディションについて話すとき、オープンソースとは別に、Puppet Enterprise(PE)も提供します。これは、オープンソースのPuppetプラットフォーム上に構築されたPuppetの商用バージョンです。どちらの製品でも、数千のノードの構成を管理できます。オープンソースのPuppetは、必要な状態管理でこれを実行します。 PEは、インフラストラクチャの自動化に対する必須のアプローチと宣言型のアプローチを提供します。したがって、開発者の公式声明によると、人が複数のチームによって運営および管理されている複雑または大規模なインフラストラクチャを持っている場合、グラフィカルユーザーインターフェイス、ポイントアンドクリックコードの展開のために、エンタープライズバージョンのPuppetを選択する必要があります戦略、継続的テスト、統合、および展開前にコード変更の影響を予測する機能。
RockyLinuxにPuppetサーバーとクライアントをインストールする手順| AlmaLinux 8
1。要件
• 少なくとも1,000ノードにサービスを提供するために少なくとも1GBのRAMを備えた最小2コアプロセッサまたは少なくとも4GBのRAMを備えた4コア。
• Oracle、Rocky、AlmaLinuxなどの新しいRedHatベースのLinux
• 少なくともroot以外のsudoユーザーアクセス
• ターミナルアクセス
• インターネット接続
2。 DnfUpdateコマンドを実行します
まず、system update and upgradeコマンドを実行して、Linuxシステムですべてが最新の状態になっていることを確認します。
sudo dnf update && upgrade
また、セットアップ中に必要ないくつかのツールをインストールします。
sudo dnf install wget curl nano
EPELリポジトリとPowerToolsを有効にする:
sudo dnf install epel-release
sudo dnf config-manager --set-enabled powertools
sudo dnf update
3。 FQDNをシステムホスト名として設定します
Puppetへのアクセスに使用するFQDN。以下のコマンドを使用してサーバーのホスト名として設定します。
sudo hostnamectl set-hostname puppetmaster.how2shout.com
注 : puppetmaster.how2shout.comを置き換えます 設定したいものを何でも使用し、/etc/hosts
にも同じものを追加します ファイルとPuppetサーバーのIPアドレス。
sudo nano /etc/hosts/
たとえば、サーバーのIPアドレスとともにホスト名を追加します
192.168.1.45 puppetmaster.how2shout.com puppetmaster puppetserver
192.168.1.45は、puppetmaster.how2shout.comFDQNがIPに割り当てたいくつかの代替名とともにpuppetのサーバーIPアドレスです。
サーバーを再起動します:
sudo reboot
4。 RockyまたはAlmalinux8にPuppetリポジトリを追加する
最新のパッケージは、RockyLinuxおよびAlmaLinuxにPuppetの公式Yumリポジトリを追加することで簡単にダウンロードできます。そのためには、与えられたコマンドに従ってください:
sudo dnf -y install https://yum.puppet.com/puppet-release-el-8.noarch.rpm
sudo dnf update -y
5。 Puppet MasterAlmalinux8をインストールする| RockyLinux8サーバー
リポジトリを追加すると、デフォルトのDNFパッケージマネージャーを使用してサーバーにPuppetMasterをインストールするのは非常に簡単です。
sudo dnf install puppetserver -y
6。 Puppetマスターサーバーを構成する
これで、Puppetのサーバー部分がシステムに正常にインストールされました。次に、構成ファイルを編集して変更を加えましょう。
sudo nano /etc/puppetlabs/puppet/puppet.conf
サーバーに設定したFQDNを、構成ファイルなどに追加します。」
dns_alt_names=puppetmaster.how2shout.com,puppetmaster,puppetserver,puppet
一方、証明書とサーバー名については、次の行を追加してください。
[main] certname = puppetmaster.how2shout.com server = puppetmaster.hwo2shout.com environment = production runinterval = 1h
CtrL + Oを使用してファイルを保存します 、 Enterを押します キーを押してから、 Ctrl + Xを使用してファイルを終了します 。
パペット設定の構成について詳しく知るには 次のリンクにアクセスできるファイル:
#– https://puppet.com/docs/puppet/latest/config_important_settings.html
#– https://puppet.com/docs/puppet/latest/config_about_settings.html
#– https: //puppet.com/docs/puppet/latest/config_file_main.html
#– https://puppet.com/docs/puppet/latest/configuration.html
7。 JVMメモリ割り当て(オプション)
デフォルトでは、Puppetマスターサーバーに割り当てられるJAVAメモリは2 GBですが、システムでそれほど多くのメモリを割り当てることができない場合、またはそれ以上のメモリを許可する場合は、Puppetサーバーの構成ファイルを編集することでそれを行うことができます。
sudo nano /etc/sysconfig/puppetserver
ファイルで、2つの引数-Xms 2gを見つけます。 -Xmx 2g 2gを1g(1GBを意味する)または4g(4GBの場合)に変更します。その後、ファイルを保存します: Ctrl + Xを使用します 、 Yを押します 、 Enterを押します キー。
8。ファイアウォールでPuppetサービスを許可する
システムのファイアウォールでPuppetサービスを開き、ネットワークを介してエージェントと簡単に通信できるようにします。
sudo firewall-cmd --add-service=puppetmaster --permanent
sudo firewall-cmd --reload
9。 RockyでPuppetサーバーを起動する| AlmaLinux 8
これで、サーバーを起動するために必要なすべての設定が完了しました。デフォルトでは、Puppetマスターサービスは実行されません。開始して有効にします。
sudo systemctl start puppetserver sudo systemctl enable puppetserver
サービスの使用状況を確認するには:
sudo systemctl status puppetserver
再起動するには、次を使用できます:
sudo systemctl restart puppetserver
10。 Puppetをシステムパスに追加します
現在のディレクトリに関係なく、このツールのコマンドラインを使用するには:
echo 'export PATH=$PATH:/opt/puppetlabs/bin' | tee -a ~/.bashrc
bashをリロード:
source ~/.bashrc
使用できることを確認するには:
puppet --version
ルートに切り替える:
sudo su -
証明書を発行する
puppetserver ca setup
リストへ:
puppetserver ca list --all
ローカルにインストールされたPuppetクライアントでサーバーを使用して、サーバーが正常に動作していることを確認しましょう。
puppent agent -t
または
puppet agent --test --ca_server=puppetmaster.how2shout.com
Puppetマスターノードで使用可能なすべての証明書を一覧表示します。
puppetserver ca list --all
次のコマンドを実行して、保留中のすべての証明書に署名できます:
puppetserver ca sign --all
このようにして、RockyLinuxまたはAlmalinuxにマスターとエージェントの両方をインストールできます。リモートまたはネットワーク内のサーバーにエージェントが必要な場合は、さらに手順に従ってください。
—————————————————————————————————
11。リモートシステムまたはノードでのPuppetAgentのセットアップ
これで、リモートのLinuxまたはWindowsサーバーにPuppetエージェントをインストールする場合は、簡単にインストールできます。
#Redhat、CentOS、Rocky、Oracle Linux、AlmalinuxなどのRPMシステムの場合…次のコマンドを使用します。
sudo dnf -y install https://yum.puppet.com/puppet-release-el-8.noarch.rpm
sudo dnf update
#UbuntuおよびDebianシステムの場合:
https://apt.puppet.comにアクセスし、Debianシステムに従ってrepo-packageのリンクをコピーします。
例-
Ubuntu 20.04
wget https://apt.puppet.com/puppet7-release-focal.deb
Debian Bullseyeの場合:
wget https://apt.puppet.com/puppet7-release-bullseye.deb
インストールするには
sudo dpkg -i puppet7-release-focal.deb
システムアップデートの実行:
sudo apt update
PuppetAgentをインストールする
sudo apt install puppet-agent
サービスの開始:
sudo systemctl enable --now puppet
12。 PuppetAgentの構成
エージェントファイルの編集:
sudo nano /etc/puppetlabs/puppet/puppet.conf
追加 :
[main] ssldir = /var/lib/puppet/ssl vardir = /var/lib/puppet cadir = /var/lib/puppet/ssl/ca dns_alt_names = puppet [agent] server=puppetmaster-ipadress ca_server=puppetmaster-ipadress
ファイルを保存します。
次に、ホストを編集し、puppetmasterのDNSを定義します
sudo nano /etc/hosts
たとえば、次のようになります。
192.168.1.45 puppet-master-server fqdn 192.168.1.16 your-node-01-hostname
同様に、PuppetMaster / etc / hostsファイルを編集し、IPアドレスとノードのホスト名を定義します
sudo nano /etc/hosts
192.168.1.16 your-node-01-hostname
取得時にCA証明書を要求するには、次の手順に従います。
sudo su - puppet agent -t