【実務・中級編】【2026年最新】Puppet環境構築手順!Master/Agent構成のインストールから証明書発行まで – インフラ構成管理(IaC)活用バイブル

【2026年最新】Puppet Master/Agent構築の深淵:実務で「死なない」インフラを構築する極意

Puppetは古い?そんなことを言うのは、Ansibleの場当たり的な実行結果に疲弊したエンジニアだけだ。真のSREにとって、Puppetは「宣言的状態の最終防衛線」である。

今回は、2026年現在においても大規模環境で「安定と冪等性」を担保し続けるPuppet Master/Agent構成の構築手順を、現場で即戦力となるプロの知見と共に伝授する。

—

1. 前提条件:インフラの「背骨」を作る

Puppetはただの構成管理ツールではない。これは「システムの期待状態を維持するエージェント」だ。

  • 時刻同期: NTP/Chronyは必須。証明書の検証プロセスで時刻がズレていると、一生署名が通らない惨劇が待っている。
  • 名前解決: `/etc/hosts` または強固なDNS環境。Puppet MasterのFQDNは構築前に確定させること。
  • セキュリティ: 8140ポートの解放。ただし、信頼できるセグメント以外からのアクセスは即刻遮断する厳格なFW設定を。

—

2. インストール:リポジトリ管理のベストプラクティス

OSごとにバラバラのインストール手順を書くのはナンセンスだ。Puppet Labsが提供する公式リポジトリパッケージを利用し、`control-repo`で環境を抽象化する。

Puppet Labsの公式リポジトリを導入する(CentOS/RHEL系)
rpm -Uvh https://yum.puppet.com/puppet-release-el-9.noarch.rpm

Masterインストール
dnf install puppetserver -y

Agentインストール
dnf install puppet-agent -y

【プロの知見】神プラグインと開発スピードの向上

  • Puppet Language Support (VS Code): これがないと開発は始まらない。構文エラーをリアルタイムで検知する。
  • Puppet Lint: CIパイプラインに組み込み、「コードの臭い」を自動検知する。これを通さないコードは、私のチームではマージしない。

—

3. SSL証明書:Puppetの「心臓部」を管理する

Puppetの最大の特徴は、独自のCA(認証局)を持つことだ。

Masterでの署名承認プロセス

Agentから送られてくるCSR(証明書署名要求)を自動承認させる設定は、小規模環境では便利だが、大規模環境では「セキュリティホール」になる。

/etc/puppetlabs/puppet/puppet.conf (master側)
[master]
自動承認は原則オフ。ただしCI/CD環境なら限定的に許可する
autosign = false

実務では、`puppetserver ca sign –all` を安易に打つのではなく、特定のノードのみを署名する運用を徹底せよ。

—

4. 実用的:ベストプラクティス構成例

Puppetを扱う上で最も重要なのは、「PuppetコードをGit管理し、r10k/Code Managerでデプロイする」という設計思想だ。

Hieraによる設定の分離(YAML)

コードと設定データを分離せよ。ノードごとの特性は`hiera`で管理するのが2026年の鉄則だ。

/etc/puppetlabs/code/environments/production/data/nodes/web01.yaml
—
profile::webserver::package_name: ‘nginx’
profile::webserver::vhost_port: 80
センシティブな情報はHiera-eyamlで暗号化する(絶対のルール)
profile::webserver::api_key: ENC[PKCS7,MIIBiQYJKoZIh…]

—

5. チーム開発を加速させる「極限の知見」

1. コードの共有化ルール

  • Roles and Profilesパターン: これ以外の構成は認めない。Roleで「誰か」を定義し、Profileで「何を」するかを定義する。これを守らないと、半年後に誰も触れないスパゲッティコードが完成する。
  • 環境ブランチ: `production`, `staging`, `development` をGitのブランチと1対1で紐付ける。

2. 現場で役立つキーボードショートカット (VS Code)

  • `Ctrl + P`: Puppetファイルの高速検索。
  • `Alt + Shift + F`: 整形(Puppet-lintと連携して実行)。
  • `Ctrl + Shift + T`: テストコードの実行。

3. デバッグの秘伝

Agentの実行が詰まったら、サーバー側でログをリアルタイム監視せよ。

実行中に何が起きているか、即座に特定する
tail -f /var/log/puppetlabs/puppetserver/puppetserver.log

—

最後に:SREとしての心構え

Puppetは強力だが、使いこなすには「自分が何を望んでいるのか(Desired State)」を明確に記述する論理性が必要だ。コードを書き捨てにするな。冪等性を追求し、何度実行しても同じ結果が得られる「壊れないインフラ」を、君の手で作り上げてほしい。

質問があればいつでも歓迎する。だが、まずは自分の環境で `puppet agent -t` を成功させることから始めよう。そこから全てが始まる。

タイトルとURLをコピーしました