Puppetは、オープンソースの構成管理ツールおよびサーバー自動化フレームワークです。 Puppetは、UnixライクなオペレーティングシステムとMicrosoftWindowsシステムで実行できます。 1台のマスターサーバーから数百のシステムの管理タスクと構成を管理および実行できます。
このチュートリアルでは、CentOS 7にPuppetをインストールする方法を説明します。CentOS7サーバーをPuppetの「マスター」としてインストールし、もう1つのサーバーを「エージェント」として構成します。
- 2台のCentOS7サーバー
- 10.0.15.10master.hakase.io2GBメモリ
- 10.0.15.11 agent.hakase.io
- root権限
私たちが行うこと:
- 人形の事前インストール
- Puppetサーバーのインストールと構成
- PuppetAgentのインストールと構成
- Puppetエージェントの構成を確認する
- 最初の人形マニフェストを作成する
このステップでは、サーバーpuppetmasterとpuppetagentの両方でのインストールと構成を含むいくつかのタスクを実行します。ホストのファイルを構成し、NTPサーバーを使用して時刻を同期し、SELinuxを無効にして、システムにpuppetリポジトリを追加します。
rootユーザーを使用してパペットマスターとエージェントに接続します。
ssh [email protected]
ssh [email protected]
次に、vimエディターを使用してホストを編集します。
vim /etc/hosts
次の構成を行の最後に追加します。
10.0.15.10 master.hakase.io
10.0.15.11 agent.hakase.io
保存して終了します。
次に、pingコマンドを使用してテストします。
ping master.hakase.io
ping agent.hakase.io
また、サーバーのIPアドレスが10.0.15.10と10.0.15.11であることを確認してください。
-NTPサーバーを構成する
マスターサーバーとエージェントサーバーの間の時刻を同期させることが非常に重要です。
yumコマンドを使用して両方のサーバーにNTPパッケージをインストールします。
yum -y install ntp ntpdate
インストールが完了したら、以下のコマンドを実行して、必要に応じてNTPプールを選択します。
sudo ntpdate 0.centos.pool.ntp.org
次に、NTPサービスを開始し、システムの起動時に毎回起動できるようにします。
sudo systemctl start ntpd
sudo systemctl enable ntpd
NTPのインストールと構成が完了しました。
-SELinuxを無効にする
vimを使用してSELinux構成を編集します。
vim /etc/sysconfig/selinux
SELINUXの値を「無効」に変更します。
SELINUX=disabled
保存して終了します。
-Puppetリポジトリを追加
次に、以下のrpmコマンドを使用して、puppetリポジトリをシステムに追加します。
rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
完了したら、両方のサーバーを再起動します。
reboot
これで、パペットのインストールと構成の準備が整いました。
このステップでは、puppetserverをmaster.hakase.ioサーバーにインストールします。以下のyumコマンドを使用してpuppetserverをインストールします。
sudo yum -y install puppetserver
インストールが完了したら、puppetserverのメモリ割り当てを構成する必要があります。 puppetserverの最大メモリ割り当てを1GBに設定します。
vimを使用して「puppetserver」構成を編集します。
vim /etc/sysconfig/puppetserver
次に、次のように行を変更します。
JAVA_ARGS="-Xms1g -Xmx1g ...."
保存して終了します。
次に、puppet構成ディレクトリに移動し、「puppet.conf」ファイルを編集します。
cd /etc/puppetlabs/puppet
vim puppet.conf
次の構成を追加します。
[master]
dns_alt_names=master.hakase.io,puppet
[main]
certname = master.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
保存して終了します。
次に、puppetserverを起動し、起動時に毎回起動できるようにします。
systemctl start puppetserver
systemctl enable puppetserver
Puppetserverのインストールと構成が正常に完了しました。
システムでfirewalldを使用している場合は、以下のfirewall-cmdコマンドを使用してpuppetserverポートをリストに追加してください。
firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload
puppetエージェントを「agent.hakase.io」サーバーにインストールします。
以下のyumコマンドを使用してpuppetエージェントをインストールします。
yum install -y puppet-agent
インストールが完了したら、puppet構成ディレクトリに移動し、puppet.confファイルを編集します。
cd /etc/puppetlabs/puppet
vim puppet.conf
次の構成を貼り付けます。
[main]
certname = agent.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h
保存して終了します。
次に、パペットエージェントをパペットマスターに登録します。
puppetエージェントシェルで以下のコマンドを実行します。
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
これで、パペットエージェントがサーバー上で実行され、パペットマスターに登録しようとしています。
ここで、パペットマスターシェルに戻り、以下のコマンドを実行します。
/opt/puppetlabs/bin/puppet cert list
また、パペットエージェントサーバー「agent.hakase.io」から保留中の証明書署名要求(CSR)を取得します。
以下のコマンドを使用して証明書に署名します。
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
結果は次のようになります。
これで、パペットエージェントがシステムで実行され、エージェントの証明書がパペットマスターによって署名されました。
パペットマスターがエージェントの証明書ファイルに署名した後、パペットエージェントで以下のコマンドを実行して構成を確認します。
/opt/puppetlabs/bin/puppet agent --test
そして、以下のような結果が得られます。
Puppetエージェントは、Puppetマスターから構成をプルし、エラーなしでサーバーに適用しました。
パペットマスターとエージェントのインストールと構成が完了しました。このステップでは、テスト用の簡単なマニフェストを作成します。
ApachehttpdWebサーバーインストールのマニフェストを作成します。
puppetマスターサーバーで、「/ etc / puppetlabs / code /」ディレクトリに移動し、vimを使用して新しいマニフェストファイル「site.pp」を作成します。
cd /etc/puppetlabs/code/
cd environments/production/manifests
新しいマニフェストファイルを作成します。
vim site.pp
次の構成を貼り付けます。
node 'agent.hakase.io' {
package { 'httpd':
ensure => "installed",
}
service { 'httpd':
ensure => running,
enable => true
}
}
保存して終了します。
次に、パペットエージェントサーバーシェルを開き、以下のコマンドを実行します。
/opt/puppetlabs/bin/puppet agent --test
このコマンドは、パペットマスターから新しいマニフェスト構成ファイルを取得し、それをエージェントサーバーに適用します。
結果は次のとおりです。
Webブラウザーを開き、パペットエージェントのIPアドレスを入力します。
http://10.0.15.11/
そして、以下のようなデフォルトのHTTPページが表示されます。
httpdWebサーバーはpuppetマニフェストを使用してインストールされています。
CentOS7でのPuppetマスターとPuppetエージェントのインストールと構成が正常に完了しました。