Ubuntu14.04にPuppetマスターとクライアントをインストールする方法
このドキュメントでは、Ubuntu 14.04サーバーにPuppetをインストールして構成する方法について説明します。また、PuppetクライアントをUbuntu14.04デスクトップに接続します。 Puppetは、ITインフラストラクチャの状態を定義し、正しい状態を自動的に適用できる構成管理システムです。数台のサーバーを管理している場合でも、数千台の物理マシンと仮想マシンを管理している場合でも、Puppetは、システム管理者が手動で行うことが多いタスクを自動化し、時間と精神的なスペースを解放して、システム管理者がより大きなビジネス価値をもたらすプロジェクトに取り組むことができるようにします。
ベンダー提供のアプリケーションを展開する場合でも、社内のソフトウェア開発者のチームと協力する場合でも、Puppetは、物理マシンと仮想マシンのプロビジョニングからオーケストレーションとレポートまで、ソフトウェア配信プロセスのすべてのステップを自動化します。初期段階のコード開発からテスト、製品リリース、アップデートまで。 Puppetは、一貫性、信頼性、安定性を保証します。また、システム管理者と開発者の間の緊密なコラボレーションを促進し、よりクリーンでより適切に設計されたコードをより効率的に配信できるようにします。
1予備メモ
このチュートリアルはUbuntu14.04サーバーとUbuntu14.04デスクトップに基づいているため、このチュートリアルを続行する前に、基本的なUbuntu14.04サーバーとデスクトップのインストールをセットアップする必要があります。システムには静的IPアドレスが必要です。このチュートリアルでは、UbuntuサーバーのIPアドレスとして192.168.0.100を使用し、UbuntuデスクトップのIPとして192.168.0.101を使用し、Ubuntuサーバーのホスト名としてserver1.example.comを使用し、Ubuntuデスクトップのホスト名としてdesktop1.example.comを使用します。
UbuntuサーバーとUbuntuデスクトップでは、このエントリが/ etc/hostsファイルに存在する必要があります。これらのエントリは、サーバーとクライアントの両方で共通になります。
nano / etc / hosts
[...]
192.168.0.100 server1.example.com server1 192.268.0.101 desktop1.example.com desktop1
サーバーとデスクトップの両方に時刻同期が必要であることに加えて、サーバーとデスクトップの両方のマシンで次のように処理されます。
ntpdate pool.ntp.org; apt-get update &&sudo apt-get -y install ntp; service ntp restart
2 UbuntuServer14.04でのPuppetマスターのインストール
Puppetマスターをインストールするには、最新のリポジトリを作成し、次のようにPuppetをインストールします。
cd / tmp
wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
dpkg -i puppetlabs-release-trusty.deb
apt-get update
apt-get install puppetmaster
人形のバージョンを次のように確認します:
人形-V
[email protected]:/ tmp#puppet -V
3.7.1
[email protected]:/ tmp#
人形のバージョンは3.7.1です。ここで、パペットのバージョン更新をロックする必要があります。これにより、パペットの更新中に構成が妨げられます。これは、次のようにファイルを編集することによって行われます。
nano /etc/apt/preferences.d/00-puppet.pref
新しく作成したファイルに次のようにエントリを追加します:
# /etc/apt/preferences.d/00-puppet.pref Package: puppet puppet-common puppetmaster-passenger Pin: version 3.7* Pin-Priority: 501
システムで更新を実行している間は、Puppetは更新されません。
次に、構成ファイルを次のように変更します。
nano /etc/puppet/puppet.conf
[main] logdir=/var/log/puppet vardir=/var/lib/puppet ssldir=/var/lib/puppet/ssl rundir=/var/run/puppet factpath=$vardir/lib/facter #templatedir=$confdir/templates [master] # These are needed when the puppetmaster is run by passenger # and can safely be removed if webrick is used. ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY
templatedir =$ confdir / templatesの行にコメントを付けて、ファイルを保存するだけです。
次に、サービスを停止してから開始します。
service puppetmaster stop
service puppetmaster start
これで、マスターパペットサーバーの準備が整いました。
3 UbuntuDesktop14.04でのPuppetクライアントのインストール
ここでの目的は、UbuntuデスクトップをPuppetマスターUbuntuサーバーのPuppetクライアントとしてインストールおよび構成することです。上記の第1章で説明したように、Ubuntuデスクトップが時間同期ファイルであることに加えて、クライアントを/ etc / hosts用に構成する必要があります。次に、次のようにPuppetをインストールします。
cd / tmp
wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
dpkg -i puppetlabs-release-trusty.deb
apt-get update
apt-get install puppet
人形のバージョンを次のように確認します:
人形-V
[email protected]:/ tmp#puppet -V3.7.1
[email protected]:/tmp#
人形のバージョンは3.7.1です。ここで、パペットのバージョン更新をロックする必要があります。これにより、パペットの更新中に構成が妨げられます。これは、次のようにファイルを編集することによって行われます。
nano /etc/apt/preferences.d/00-puppet.pref
新しく作成したファイルに次のようにエントリを追加します:
# /etc/apt/preferences.d/00-puppet.pref Package: puppet puppet-common puppetmaster-passenger Pin: version 3.7* Pin-Priority: 501
システムで更新を実行している間は、Puppetは更新されません。
次に、構成ファイルを次のように変更します。
nano /etc/puppet/puppet.conf
[main] logdir=/var/log/puppet vardir=/var/lib/puppet ssldir=/var/lib/puppet/ssl rundir=/var/run/puppet factpath=$vardir/lib/facter #templatedir=$confdir/templates #[master] ## These are needed when the puppetmaster is run by passenger ## and can safely be removed if webrick is used. #ssl_client_header = SSL_CLIENT_S_DN #ssl_client_verify_header = SSL_CLIENT_VERIFY [agent] server = server1.example.com
上記のように行にコメントを付け、エージェントエントリを追加して、ファイルを保存するだけです。
次に、ファイルvi / etc / default / puppetを編集し、show beloのようにnoからyesに変更する必要があります:
nano / etc / default / puppet
[...]
START=yes
[...]
これで、パペットサービスを開始する準備が整いました。次のように実行されます。
サービスパペットスタート
これで、クライアントマシンはPuppetマスターサーバーと通信する準備が整いました。
4パペットマスターからパペットクライアントへの証明書交換
構成が成功すると、PuppetクライアントUbuntu DesktopはPuppetマスターサーバーを検索し、マスターpuppetサーバーからの管理指示を受け入れる前に証明書要求を要求します。
このような証明書リクエストを表示するには、PuppetMasterUbuntuサーバーでコマンドを実行します。
人形証明書リスト
[email protected]:〜#puppet cert list
"desktop1.example.com"(SHA256)BD:F7:7C:76:48:09:C5:FE:0C:A8:CD:81:92 :1D:A4:1F:15:1C:1A:6E:DE:C1:3C:B4:CA:FC:C6:2F:B4:9A:91:74
[email protected]:~#
これは、dekstop1.example.comという名前のマシンが存在し、証明書の要求を要求していることを意味します。ここで、パペットマスターサーバーは、パペットクライアントから要求された証明書に署名する必要があります。次のように実行できます:
puppet cert sign desktop1.example.com
出力は次のようになります:
[email protected]:〜#puppet cert sign desktop1.example.com注意:desktop1.example.comの署名付き証明書リクエスト
注意:ファイルPuppet ::SSL ::CertificateRequestdesktop1.exampleを削除しています。 com at'/var/lib/puppet/ssl/ca/requests/desktop1.example.com.pem'
[email protected]:〜#
これは、デスクトップマシンからの要求がPuppetマスターマシンで受け入れられることを意味します。コマンドでも確認できます:
puppet cert list -all
[email protected]:〜#puppet cert list -all+ "desktop1.example.com"(SHA256)7A:B7:CE:C4:A0:05:99:E7:E2:53:AD: D2:7F:6E:B5:38:CA:87:E0:8D:C7:0E:71:89:82:E1:17:FA:9D:B1:01:6D
+ "server1.server1 .example.com "(SHA256)FF:E2:49:B9:2F:B4:D1:79:21:E9:1A:83:22:FA:DB:E8:5D:9B:9A:1C:E1: 4D:83:B9:16:9D:FD:8B:72:FD:62:5F(代替名: "DNS:puppet"、 "DNS:puppet.server1.example.com"、 "DNS:server1.server1。 example.com ")
[email protected]:〜#
上記の出力の+記号は、PuppetマスターUbuntuサーバーでの証明書署名が成功したことを示しています。
Puppet Client Ubuntuデスクトップでクライアント証明書のフィンガープリントを表示するには、次のコマンドを実行します。
人形エージェント--fingerprint
[email protected]:〜#puppet agent --fingerprint
(SHA256)7A:B7:CE:C4:A0:05:99:E7:E2:53:AD:D2:7F:6E:B5: 38:CA:87:E0:8D:C7:0E:71:89:82:E1:17:FA:9D:B1:01:6D
[email protected]:~#
同様に、PuppetマスターUbuntu Serverを使用して任意の数のクライアントを追加し、クライアントからの証明書要求に署名できます。管理上の要件について、PuppetマスターUbuntuサーバーから証明書を取り消す場合は、次のコマンドを実行できます。
puppet cert clean desktop1.example.com
[email protected]:〜#puppet cert clean desktop1.example.com
注意:シリアル3で証明書が取り消されました
注意:ファイルPuppet ::SSL ::Certificate desktop1.example.comat'/を削除していますvar / lib / puppet / ssl / ca / signed / desktop1.example.com.pem'
注意:ファイルPuppet ::SSL ::Certificate desktop1.example.com(' / var / lib / puppet / ssl)を削除しています/certs/desktop1.example.com.pem'
[email protected]:〜#
Puppet Master Ubuntuサーバーで証明書が完全に削除されていることを確認するために、明示的に再度クリーンアップしました
puppet cert -c
注上記で、証明書を取り消してデスクトップをPuppetマスターサーバーから切断する方法について説明しました。
上記のように、N個のデスクトップを接続し、Puppetマスターサーバーを介して一元的に管理を行うことができます。おめでとう!これで、Ubuntu14.04に完全に機能するPuppetインスタンスができました:)
5つのリンク
- 人形:http://puppetlabs.com/
- Ubuntu:http://www.ubuntu.com/