このチュートリアルでは、RHEL 8 /CentOS8にPuppetをインストールする方法を紹介します。
はじめに
人形 は、システム構成を記述するための独自の宣言型言語を含むソフトウェア構成管理ツールです。これは、使用するために限られたプログラミング知識を必要とするモデル駆動型ソリューションです。
Puppetは、Linux、Mac、BSD、Solaris、およびWindowsオペレーティングシステムで使用できます。 「Ruby」言語で記述され、Apacheライセンスの下でリリースされています。
puppet-serverのインストール
開始するには以下の手順に従ってください
- パペットリポジトリを追加する
rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm
- Puppetサーバーをインストールする
dnf install -y puppetserver
- 接続されているノードの数に基づいてメモリ割り当て値を変更します。たとえば、512MBのメモリを割り当てます。
- puppetserver構成ファイルを次のように編集します。
vim /etc/sysconfig/puppetserver
値を変更します。
差出人:
JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
宛先:
JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"
- Puppetサーバーを構成する
Puppetの構成ファイルは、Pupperサーバーとエージェントの[master]と[main]という名前の2つのセクションで構成されています。
vim /etc/puppetlabs/puppet/puppet.conf
- 環境に応じてファイルを変更します。 Puppetエージェントは、 dns_alt_namesに記載されている任意のホスト名を使用できます。 Puppetサーバーに接続します。
# Pupper Server Configuration
[master]
dns_alt_names = puppetserver,puppetserver.unixcop.com
# Puppet Agent Configuration
[main]
certname = puppetserver.unixcop.com
server = puppetserver.unixcop.com
runinterval = 30m
上記から、サーバーはpuppetserver.unixcop.comであり、certnameは私のクライアントホスト名(client.unixcop.com)です。
- PuppetServerのルートと署名CAを生成します。
puppetserver ca setup
Output:
Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
注 :puppetserver:コマンドが見つからない場合は、 source /etc/profile.d/puppet-agent.shを実行します。 ターミナルにログインするか、現在のセッションからログアウトして再度ログインします。
- Puppetサーバーを起動して有効にします。
systemctl start puppetserver
systemctl enable puppetserver
- エージェントがパペットマスターに接続できるようにファイアウォールを構成します。 puppetサーバーのリッスンポートは8140であるため
firewall-cmd --permanent --add-port=8140/tcp
firewall-cmd --reload
Puppetエージェントをインストール
開始するには以下の手順に従ってください
- すべてのノードにpuppetリポジトリを追加します。
rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm
- 以下のコマンドを使用して、クライアントにpuppetエージェントをインストールします。COPY
dnf install -y puppet-agent
- puppet構成ファイルを編集し、Puppetサーバー情報を設定します。
vim /etc/puppetlabs/puppet/puppet.conf
以下のように設定します。
[main]
server = puppetserver.unixcop.com
certname = client.unixcop.com
runinterval = 20m
- ノードでpuppetエージェントを起動し、システムの起動時に自動的に起動するようにします。
puppet resource service puppet ensure=running enable=true
Output:
Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
service { 'puppet':
ensure => 'running',
enable => 'true',
provider => 'systemd',
}
注 :puppet:コマンドが見つからない場合は、source /etc/profile.d/puppet-agent.shを実行します。 ターミナルにログインするか、現在のセッションからログアウトして再度ログインします。
- エージェントノードは、実行しようとすると初めて証明書を要求します。
- エージェントノードで以下のコマンドを実行して、初期接続を確立します。
puppet agent -t
- Pupperサーバーにログインし、 puppetserver ca listを実行します 未処理のリクエストを表示するコマンド。
puppetserver ca list
- puppetcertsignコマンドを実行してリクエストに署名します。
puppetserver ca sign --certname client.unixcop.com
Output:
Successfully signed certificate request for client.unixcop.com
これで、Puppetサーバーはクライアントマシンと通信してノードを制御できるようになりました。
- ノードからの署名リクエストが複数ある場合は、1つのコマンドですべてのリクエストに署名できます。
puppetserver ca sign --all
- 署名されたリクエストと署名されていないリクエストをすべて一覧表示します。
puppetserver ca list --all
- クライアントマシンで次のコマンドを実行して、サーバーをテストします
puppet agent --test
Output:
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for client.unixcop.com
Info: Applying configuration version '3599283484'
Notice: Applied catalog in 0.03 seconds
結論
それだけです。
このガイドでは、CentOS 8 /RHEL8にPuppetをインストールする方法を説明しました。
ありがとう