フォアマンを使用してUbuntu14.04でPuppetノードを管理する方法
序章
Foremanは、タスクとアプリケーションのデプロイを自動化するためにPuppet(またはChef)と対話する簡単な方法を提供することにより、サーバーの管理を支援できるオープンソースツールです。 Foremanは、サーバーのプロビジョニング、構成、および監視に使用できる堅牢なWebユーザーインターフェイス、API、およびCLIを提供します。 あらゆるサイズのインフラストラクチャに適しており、Linuxのほとんどのディストリビューションで動作します。
このチュートリアルでは、ForemanとPuppetをインストールし、それを使用してサーバーを管理する方法を説明します。 Puppetの管理を容易にするために、レポート機能と外部ノード分類子(ENC)機能にForemanを使用します。
前提条件
このチュートリアルでは、Foremanを新しいサーバーにインストールすることを前提としています。このサーバーはPuppetマスターサーバーとしても機能します。 すでにPuppetマスターサーバーをお持ちの場合は、Foremanをインストールできますが、デフォルトであることに注意してください。 site.pp
は上書きされ(既存のPuppetエージェントノードを unmanaged 状態のままにします)、既存のPuppetエージェントノードを管理するようにForemanを構成する必要があります。
Foremanはホストの構成管理をPuppetに依存しているため、Puppetエージェント/マスターのセットアップに必要なすべてのものが必要です。 次のリストは、このチュートリアルを開始する前に必要なものをカバーしています。
- ルートアクセス:
sudo
管理するすべてのサーバーへのアクセス - プライベートネットワークDNS:順方向および逆方向DNSを構成する必要があり、すべてのサーバーに一意のホスト名が必要です。 これは、独自のプライベートネットワークDNSサーバーを構成するためのチュートリアルです。 DNSが構成されていない場合は、名前解決にhostsファイルを使用する必要があります。 インフラストラクチャ内の通信にプライベートネットワークを使用することを前提としています。
- ファイアウォールオープンポート:Puppetマスターはポート8140で到達可能である必要があります。 ファイアウォールの制限が厳しすぎる場合は、この UFWチュートリアルで、ポート8140での着信リクエストを許可する方法を確認してください。
すべての前提条件を満たしたら、Foreman(およびPuppetマスター)サーバーの作成に移りましょう!
フォアマンサーバーを作成する
ホスト名として「foreman.nyc2.example.com 」を使用して、新しい Ubuntu 14.04x64サーバーを作成します。 次の詳細を使用して、プライベートネットワークをDNSに追加します。
ホスト名 | 役割 | プライベートFQDN |
---|---|---|
フォアマン | フォアマン/パペットマスター | foreman.nyc2.example.com |
DNSを設定したばかりで、ホストをDNSに追加する方法がわからない場合は、DNSチュートリアルのDNSレコードの保守セクションを参照してください。 基本的に、「A」および「PTR」レコードを追加し、新しいホストが再帰クエリを実行できるようにする必要があります。 また、サーバーが短いホスト名を使用して相互に検索できるように、検索ドメインを構成していることを確認してください。
ホスト名がFQDNに設定されていることを確認します
サーバーの完全なホスト名を確認するには、次のコマンドを入力します。
hostname -f
サーバー名の長いバージョンが表示されます。例: 「foreman.nyc2.example.com」。 ホスト名がFQDNに設定されている場合は、次のセクションに進むことができます。
それ以外の場合、短い名前が返される場合、たとえば 「フォアマン」、ホスト名をロングネームに設定する必要があります。 これを行うには、 hosts
ファイル:
sudo vi /etc/hosts
短いホスト名の最初のエントリを見つけて、その前にFQDNを追加します。 例えば:
127.0.1.1 foreman
次のように変更する必要があります。
127.0.1.1 foreman.nyc2.example.com foreman
次に、保存して終了します。
次に、 hostname
ファイル:
sudo vi /etc/hostname
ファイルのエントリをサーバーのFQDNに変更します。例: 「foreman.nyc2.example.com」。 次に、保存して終了します。
次に、次のコマンドを実行して、行った構成変更をすぐに読み込みます。
sudo hostname --file /etc/hostname
長いホスト名が設定されました。 フォアマンのインストールを続けてください!
Foremanをインストールする
Foremanをインストールする最も簡単な方法は、Foremanインストーラーを使用することです。 Foremanインストーラーは、Foremanを実行するために必要なすべてのコンポーネントをインストールして構成します。これには、次のものが含まれます。
- フォアマン
- 人形使いとエージェント
- SSLとPassengerモジュールを備えたApacheWebサーバー
次のコマンドを使用してForemanインストーラーをダウンロードします。
sudo sh -c 'echo "deb http://deb.theforeman.org/ trusty 1.5" > /etc/apt/sources.list.d/foreman.list'
sudo sh -c 'echo "deb http://deb.theforeman.org/ plugins 1.5" >> /etc/apt/sources.list.d/foreman.list'
wget -q http://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add -
sudo apt-get update && sudo apt-get install foreman-installer
次に、次のコマンドを使用してForemanインストーラーを実行します。
sudo foreman-installer
次の出力が表示されます。
Your puppet version does not support progress bar
Preparing installation Done
Success!
* Foreman is running at https://foreman.nyc2.example.com
Default credentials are 'admin:changeme'
* Foreman Proxy is running at https://foreman.nyc2.example.com:8443
* Puppetmaster is running at port 8140
The full log is at /var/log/foreman-installer/foreman-installer.log
出力が上記のように見える場合は、Foremanとその必要なコンポーネントがインストールされています。
差分を有効にする
続行する前に、「diff」を有効にするためにわずかな構成変更を行います。 この変更により、差分を表示できるようになり、Foremanのレポートビュー内から構成ファイルの変更を確認できるようになります。
編集 puppet.conf
:
sudo vi /etc/puppet/puppet.conf
設定する行を見つける show_diff
その値をに変更します true
:
show_diff = true
保存して終了。
フォアマンホストをフォアマンのデータベースに追加する
を実行してForemanホストをForemanのデータベースに追加するには puppet agent
そのようなコマンド:
sudo puppet agent --test
これにより、Foremanが管理する最初のPuppetエージェントノードとしてForemanホストが追加されます。
ForemanWebインターフェイスにログインします
フォアマンにログインし、管理者パスワードを変更します。 Foreman Webインターフェイスには、VPSのパブリックネットワークインターフェイス(パブリックFQDNまたはパブリックIPアドレスのいずれか)からアクセスできます。 インフラストラクチャ->スマートプロキシを見てください。 自動的に作成されます(使用可能な機能が表示されます)。
デフォルトでは、ForemanはPuppet証明書を使用しますが、これはおそらくブラウザによって信頼されていません。 証明書に関する警告を受け入れて続行します。 または、証明書をドメイン名と一致し、信頼できるCA機関によって署名された証明書に置き換えることもできます。 証明書を受け入れて続行すると、次のログインページが表示されます。
お気づきかもしれませんが、 foreman-installer
、これらはデフォルトのクレデンシャルです。
- ユーザー名:管理者
- パスワード:changeme
フォアマンダッシュボード
最初にログインすると、Puppet環境の概要を示すForemanダッシュボードが表示されます。 ここに、Puppetエージェントノードの数とそれぞれのステータスを示す「ホスト構成ステータス」の概要が表示されます。 Foremanを最初に起動すると、「適切なホスト」セクションに単一のサーバーが表示されます。
この下に、最近のイベントの概要と、過去30分以内にPuppetジョブを実行した「クライアント」の数のグラフが表示されます。 この情報は、Puppetの全体的なセットアップがどのように機能しているかを知るのに役立ちます。
管理者パスワードの変更
他のことをする前に、あなたはあなたを変えたいと思うでしょう admin
利用者パスワード。 これを行うには、右上隅にある管理者ユーザー項目にマウスを合わせ、マイアカウントをクリックします。
パスワードフォームを見つけます。 パスワードを安全なものに更新してから、[送信]をクリックします。
NTPモジュールをフォアマンに追加
Puppetは正確な時刻管理を必要とするため、Foremanを使用してForemanホスト(Puppetマスターでもある)でNTPサービスを管理します。
Webブラウザーで、https://forge.puppetlabs.com/にアクセスします。 NTPモジュールを検索します。 最初の結果は次のようになります puppetlabs/ntp
. モジュールをクリックして、モジュールの機能を確認してください。
次に、次のコマンドを使用して、PuppetマスターのProduction環境にインストールします。
sudo puppet module install -i /etc/puppet/environments/production/modules puppetlabs/ntp
次のような出力が表示されます。これは、モジュールが正しくインストールされたことを示しています。
Notice: Preparing to install into /etc/puppet/environments/production/modules ...
Notice: Downloading from https://forge.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/etc/puppet/environments/production/modules
└─┬ puppetlabs-ntp (v3.1.2)
└── puppetlabs-stdlib (v4.3.2)
モジュールはPuppetマスターにインストールされていますが、使用する前にForemanに追加する必要があります。
Foreman Web UIで、 Configure にマウスを合わせ、 Puppetclassesをクリックします。
foreman.nyc2.example.comからインポートボタンをクリックします。 次に、次のような画面が表示されます。
アイテムの横にあるチェックボックスをオンにして、更新ボタンをクリックします。 これで、ntpモジュールがForemanにインポートされ、ホストで使用できるようになります。
デフォルトのNTPプールを上書きする
ここで、NTPモジュールのデフォルト設定を上書きし、デフォルトでUSNTPプールを使用するようにNTPモジュールを構成します。 NTPプールプロジェクトでお好みのNTPプールをお気軽に検索してください。
「人形教室」画面が表示されます。 「ntp」クラスをクリックして、編集モードに入ります。 次に、「スマートクラスパラメータ」タブをクリックします。
下にスクロールして、左側のサイドバーで「サーバー」項目を見つけ、それを選択します。
「上書き」チェックボックスを見つけてチェックします。 パラメータタイプドロップダウンを「アレイ」に変更します。 次に、「デフォルト値」をデフォルトのNTPプールから選択したものに配列形式で変更します。 USNTPプールを使用します。
["0.us.pool.ntp.org","1.us.pool.ntp.org","2.us.pool.ntp.org","3.us.pool.ntp.org"]
一番下までスクロールして、緑色の[送信]ボタンをクリックします。 これで、このモジュールを使用するホストまたはホストグループは、デフォルトでUSNTPプールを使用します。
NTPモジュールを使用するようにForemanホストを構成する
これで、NTPモジュールを使用してForemanホストでNTPを管理する準備が整いました。
[ホスト]画面に移動します(ホストの上にマウスを置き、すべてのホストをクリックします)。 Foremanホストの右端にある[編集]ボタンをクリックします。
[パペットクラス]タブをクリックします。 Available Classes の下で、 ntp クラスをクリックして展開し、「ntp」の横のプラス記号をクリックします。
これにより、ntpクラスが含まれるクラスセクションに移動します。 これは、次にForemanホストのPuppetエージェントがチェックインするときに、このPuppetモジュールが適用されることを意味します。
送信ボタンをクリックして変更を適用します。
人形の構成を表示
Foremanホストの構成を編集すると、Foremanホストの概要ページに移動します。
エージェントノードがチェックインしたときにPuppetに提供される情報を表示するには、[YAML]ボタンをクリックします。
次のような出力のページが表示されます。
---
classes:
ntp:
server_list:
- 0.us.pool.ntp.org
- 1.us.pool.ntp.org
- 2.us.pool.ntp.org
- 3.us.pool.ntp.org
parameters:
puppetmaster: foreman.nyc2.example.com
root_pw:
foreman_env: production
owner_name: Admin User
owner_email: [email protected]
environment: production
PuppetAgentを実行する
この変更を今すぐ適用して、それが何をするかを見てみましょう。
Foremanサーバーで、Puppetエージェントを実行します。
sudo puppet agent --test
Web UIで、Foremanホストに戻り、レポートボタン( YAML ボタンの横)をクリックします。 いくつかの変更が適用され、サービスが再開されたことを示す新しいレポートエントリが表示されます。 レポートをクリックします。 ここに、NTPパッケージがインストール、構成、および再起動されたことを示すいくつかの通知が表示されます。
Foremanを使用してForemanサーバーを構成したことに注意してください。 他のホストの管理も同じように機能します。
必要に応じて、[差分の表示]リンクをクリックします。 ntp.conf/content
アイテム。 これは、Puppetが管理する構成ファイルをどのように変更しているかを確認する場合に役立ちます。
フォアマンに新しいホストを追加する
Foremanサーバーをセットアップしたので、Foremanサーバーで管理するホストをさらに追加することをお勧めします。 ホストを追加するプロセスは、マスターにPuppetエージェントノードを追加するのと同じです。 これを行うための詳細な手順は、このシリーズの最初のチュートリアルにあります。 Puppetマスター(フォアマン)サーバーを指すようにエージェントを構成してください。
エージェントをインストールして実行した後、Foremanサーバーでその証明書に署名する必要があります。 通常のPuppetセットアップと同様に、コマンドラインを介して証明書に署名するか、ForemanWebインターフェイスを使用できます。
Webインターフェイスを使用して証明書に署名するには、[インフラストラクチャ]に移動し、[スマートプロキシ]をクリックして、[証明書]ボタンをクリックします。
ここに、PuppetCAのすべての証明書が表示されます。 このPuppetマスターを使用するように設定した新しいホストの横にある[署名]ボタン(右端)をクリックします。
新しいホストは、フォアマンが管理する準備ができています。
結論
Foremanインスタンスが機能するようになったので、Puppetモジュールを活用してサーバーインフラストラクチャを管理する簡単な方法があります。 公開されているPuppetモジュールを自由に閲覧するか、独自のモジュールを作成して(このシリーズの前のチュートリアルを参照)、環境を管理してください。
幸運を!