みなさん、こんにちは。Ubuntu16でPuppetノードを管理するForemanに関する本日の記事へようこそ。Foremanは、システム管理者がプロビジョニングと構成からオーケストレーションと監視までのライフサイクル全体でサーバーを管理するのに役立つオープンソースツールです。 Puppet、Chef、Salt、Ansible、Foremanのスマートプロキシアーキテクチャを使用することで、VMとベアメタルのオンプレミス、またはクラウドの両方で、反復的なタスクを簡単に自動化し、アプリケーションを迅速にデプロイし、変更をプロアクティブに管理できます。 Foremanは、Webフロントエンド、CLI、RESTful APIなどの包括的な対話機能を提供し、強固な基盤の上に高レベルのビジネスロジックを構築できるようにします。
Foremanを使用すると、ベアメタルインフラストラクチャ全体を検出、プロビジョニング、アップグレードし、プライベートクラウドとパブリッククラウド全体でインスタンスを作成および管理できます。ホストのグループで使用し、場所に関係なく一括で管理してから、監査やトラブルシューティングのために履歴の変更を確認できます。
前提条件
Foremanのインストールに移行する前に、確認する必要のある基本的な要件がいくつかあります。まず、root権限を持つ新しいVMを作成し、そのFQDNとホスト名を構成します。これらは以下のコマンドを使用して設定できます。
# hostnamectl set-hostname ksh-u16
次に、ホスト名の前にFQDNを使用して「hosts」ファイルを編集します。
# vi /ete/hosts
127.0.0.1 ksh-u16.domain.com ksh-u16
ファイルを保存して閉じ、以下のコマンドを実行してFQDNが構成されているかどうかを確認します。
# hostname -f
出力にFQDNが表示されます。次に、コマンドラインターミナルで次のコマンドを発行して、最新のアップデートとセキュリティパッチでシステムをアップデートします。
# apt-get update
# apt-get upgrade
確認とシステムアップデートの開始には、「Y」キーを選択します。すべての更新が完了したら、Foremanのインストールに進むことができます。
Ubuntu16へのForemanのインストール
次に、インストーラーを使用してForemanをインストールします。これには、Foremanを実行するために必要なすべてのコンポーネント(Puppetマスターおよびエージェント、SSLを備えたApache Webサーバー、およびPassengerモジュール)が含まれます。
まず、以下のコマンドを使用して、リポジトリがPuppetAgentおよびPuppetServerでPuppet4.xを使用できるようにします。
# apt-get -y install ca-certificates
# wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
# dpkg -i puppetlabs-release-pc1-xenial.deb
次に、以下のコマンドを使用して、フォアマンリポジトリを有効にします。
echo "deb http://deb.theforeman.org/ xenial 1.14" > /etc/apt/sources.list.d/foreman.list
echo "deb http://deb.theforeman.org/ plugins 1.14" >> /etc/apt/sources.list.d/foreman.list
apt-get -y install ca-certificates
wget -q https://deb.theforeman.org/pubkey.gpg -O- | apt-key add -
次のコマンドを使用して、Formanインストーラーをダウンロードします。
# apt-get update && apt-get -y install foreman-installer
次に、フォアマンインストーラーを実行しますが、インストーラーを実行する前に、 ping $(hostname -f)を確認してください。 は、127.0.1.1ではなく実際のIPアドレスを示しています。このエントリを変更するか、存在する場合は/ etc/hostsから削除します。
インストールの実行は非対話型ですが、構成は、foreman-installer --helpにリストされているオプションのいずれかを指定するか、対話モードでforeman-installer-iを実行することによってカスタマイズできます。 -vを追加すると、プログレスバーが無効になり、すべての変更が表示されます。
インストーラーを実行するには、以下のコマンドを実行します。
# foreman-installer
Installing Done [100%] [...........................................................................]
Success!
* Foreman is running at https://ksh-u16.domain.com
Initial credentials are admin / cwGbVjM2zGP5aDwm
* Foreman Proxy is running at https://ksh-u16.domain.com:8443
* Puppetmaster is running at port 8140
The full log is at /var/log/foreman-installer/foreman.log
完了すると、インストーラーは上記のようにいくつかの詳細を印刷します。ここには、フォアマン、スマートプロキシ、およびパペットマスターの詳細が表示されます。
フォアマンWebインターフェイス
上記のForemanWebURLとともにお気に入りのブラウザを開き、表示されているように提供された資格情報を使用してログインしましょう。
https://ksh-u16.domain.com
人形の管理
インストールが正常に完了すると、Foremanインストーラーは、Foremanと完全に統合されたパペットマスターをホストにセットアップします。まず、ForemanホストでPuppetエージェントを実行します。これにより、最初のPuppetレポートがForemanに送信され、Foremanのデータベースにホストが自動的に作成されます。
# puppet agent --test
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for ksh-u16.centricait.com
Info: Applying configuration version '1485372953'
Notice: Applied catalog in 0.23 seconds
Foreman Web Interfaceで、ホストをクリックします。 タブとフォアマンホストが「OK」ステータスでリストに表示されます。これは、ステータスがOKであり、最後のPuppetの実行に変更が加えられていないことを示しています。
Puppetモジュールのダウンロード
次に、以下のコマンドを使用して、PuppetForgeからデフォルトの「本番」環境へのNTPサービスを管理するためのPuppetモジュールをインストールします。
# puppet module install puppetlabs/ntp
Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
Notice: Downloading from https://forgeapi.puppet.com ...
Notice: Installing -- do not interrupt ...
/etc/puppetlabs/code/environments/production/modules
└─┬ puppetlabs-ntp (v6.0.0)
└── puppetlabs-stdlib (v4.15.0)
Foremanで、構成>クラスに移動します ホスト名からインポートをクリックします (右上)パペットマスターから利用可能なパペットクラスを読み取り、フォアマンのデータベースにデータを入力します。以下に示すように正しくインストールされている場合、「ntp」クラスはPuppetクラスリストに表示されます。
ここでアイコンを確認し、「更新」ボタンをクリックする必要があります。これで、ntpモジュールがForemanにインポートされ、ホストで使用できるようになりました。
パペットモジュールの使用
リスト内の「ntp」クラスをクリックし、スマートクラスパラメータに変更します。 タブをクリックし、左側のサーバーパラメータを選択します。 Foremanが「サーバー」を管理するように[上書き]チェックボックスをオンにします ページを送信する前に、クラスのパラメータを設定し、必要に応じてデフォルト値を変更してください。
次に、[ホスト]タブに戻り、フォアマンホストの[編集]をクリックします。 [パペットクラス]タブで、ntpモジュールを展開し、[+]アイコンをクリックしてntpクラスをホストに追加してから、ホストを保存します。
puppetの構成を表示するには、ホストページに戻ったときにYAMLボタンをクリックすると、ENC(外部ノード分類子)インターフェイスを介してPuppetに渡されたntpクラスとserversパラメーターが表示されます。 Foremanホストで「puppetagent--test」を再実行して、PuppetとNTPモジュールによって自動的に再構成されたNTPサービスを確認します。
YAMLをクリックすると、Webページに次の出力が表示されます。
---
classes:
ntp:
authprov: ''
broadcastclient: ''
config: ''
config_dir: ''
config_epp: ''
config_file_mode: ''
config_template: ''
tos_minsane: ''
udlc: ''
udlc_stratum: ''
parameters:
puppetmaster: ksh-u16.domain.com
domainname: domain.com
root_pw:
puppet_ca: ksh-u16.domain.com
foreman_env: production
owner_name: Admin User
owner_email: [email protected]
foreman_subnets: []
foreman_config_groups: []
environment: production
Puppetが管理するホストをさらに追加する
Puppetエージェントがインストールされている他のホストは、puppet.confでserver =ksh-u16.domain.comを設定することにより、このpuppetマスターを使用できます。 インフラストラクチャ>スマートプロキシ>証明書に移動して、フォアマンで証明書に署名します または、パペットマスターで以下のコマンドを使用します。
# puppet cert list
# puppet cert sign
Puppetクラスは、個々のホストの代わりにForemanのホストグループに追加できるため、多数のホストの標準構成を同時に実行できます。ホストグループは通常、サーバーの役割を表すために使用されます。
結論
この記事では、Foremanのインストールと、Ubuntu 16でのpuppetノードの使用と管理について学習しました。Foremanは、構成情報の信頼できる唯一の情報源となり、新しいチームメンバーが参加したときにシステムをより迅速に作成およびプロビジョニングできるようにします。チームはボタンを押すだけで、彼の新しいマシンを自動的にプロビジョニングします。 Foremanを使用すると、展開を実行するたびに新しいテスト環境をセットアップして、機能のさまざまな特性を非常に簡単にテストし、コードの進化とともに環境の進化を追跡できます。このようにして、新しいテスト環境または本番環境をセットアップするための最小限の労力を実行する必要があります。この記事がお役に立てば幸いです。お読みいただきありがとうございます。