# はじめに

こんにちは、FundastA Inc.でインフラエンジニアをやっている まるちゃん です。

Puppet に興味を持って・・いざ調べてみると・・・日本語の記事がまったくない🤯🤯 ならば、自分で用意するしかない!と思い、書き始めました。

注意点としては、バージョン違いで、若干違うところがありますので気をつけてください。

いきなり、Puppet Server ではなく、コツコツと Puppet Agent から入門をオススメ致します。

# ストーリー

  1. VMware ESXi セットアップ
  2. Puppet 入門 準備編 01
  3. Puppet 入門 マニフェストの書き方編 02

# Puppet とは?!

Puppet(パペット)とは、オープンソースの構成管理ツールです。

「パッケージインストール」「サーバ構成更新」「ユーザー追加」などインフラストラクチャの管理を自動化するツールを提供します。

「Linux」「UNIX」「Windows」をサポートし、システムの自動管理エンジンとして一元化された仕様に基づいて管理タスクを実行します。

引用 : オープンソースの運用管理・運用自動化/Puppetとは

そして、今回から始めるストーリーとしては、OSS版 Puppet を使って環境を構築して実際に運用して行きたいと思います。

# Puppet Agent 環境

Puppet Agent 内で全て作業を行うためと VScode リモートで作業を行うため、スペックを少しだけ上げてます。

項目 メモ
Linux CentOS 7 Minimal
CPU 4 vCPUs 最低2コア以上
Memory 8 GB 最低4 GB以上
Storage 16 GB 最低 8GB以上
Domain test91.tabiya.local
IP 192.168.2.91
Puppet Agent
Version
4.10.12

Image from Gyazo

Memoryなどを上げていても重い。VScodeリモートは重い。

Image from Gyazo

# 画面について解説

項目 説明
# root ユーザーで作業
$ 一般 ユーザーで作業
=> 実行結果
# echo "Puppet"
=> Puppet

# OSS版 Puppet パッケージの導入

基本的な作業ユーザーは、 【root】ユーザーになります。

# rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
# yum install puppet-agent
# source /etc/profile
# puppet --version
=>  4.10.12
  1. 公式レポジトリから、ご利用の環境に合ったパッケージをインストール
  2. Puppet Agent の導入
  3. profile を有効
  4. 導入をした Puppet のバージョンを確認
    • 4.10.12

# Puppet 動作確認

動作確認として、 [puppet apply] というサブコマンドに対してオプションを付けて実行

# puppet apply --test -e 'notice("Hello Puppet World")'
=>  Notice: Scope(Class[main]): Hello Puppet World
=>  Notice: Compiled catalog for ?>test91.tabiya.local in environment production in 0.06 seconds
=>  Info: Applying configuration version '1584269418'
=>  Notice: Applied catalog in 0.01 seconds

# 最後に

実際のソース画面の一例として

package {'httpd':
  ensure  =>  installed,
}

file {'test.conf':
  # ensure  => file,
  path    =>  '/etc/httpd/conf/httpd.conf',
  owner   =>  root,
  group   =>  root,
  mode    =>  '644',
  source  =>  '/opt/httpd/test.conf',
  require =>  Package['httpd'],
}

service {'httpd':
  # ensure  => stopped,
  ensure  =>  running,
  enable  =>  true,
  subscribe =>  File['/etc/httpd/conf/httpd.conf'],
}

次回の更新をお楽しみにください。