一元化された構成管理:Puppet + Foreman。 パートI

この記事では、集中構成管理のためのPuppet + Foremanバンドルのインストールと構成について説明します。



Puppet + Foremanバンドルがインストールされるサーバーには、仮想マシン(1 CPU、2 Gb RAM、20 Gb HDD)が使用されます。クライアントには、Ubuntuがインストールされる物理PCがあります。 上記の特性を持つ仮想サーバーの構成により、500のクライアントに問題なくサービスを提供できます(さらに多くのことを行うことができます)。



Puppetのインストールは非常に簡単です(以下のコマンドはすべてrootとして実行されます):



Puppetをインストールする
wget apt.puppetlabs.com/puppetlabs-release-trusty.deb

dpkg -i puppetlabs-release-trusty.deb



これらのコマンドを使用して、puppet開発者サイトからdebパッケージをダウンロードしてインストールします。 インストール中に、このpuppetlabs-release-trusty.debパッケージは、puppetリポジトリが登録される/etc/apt/sources.list.d/puppetlabs.listファイルを作成し、puppetリポジトリがサインインするgpgキーをインポートします。 puppetmaster自体はインストールせず、Foremanのインストール時に自動的にインストールされます。



これでPuppetのインストールが完了しました。ForemanWebインターフェースのインストールに進みます。



職長のインストール
echo "deb deb.theforeman.org trusty 1.9"> /etc/apt/sources.list.d/foreman.list

echo "deb deb.theforeman.org plugins 1.9" >> /etc/apt/sources.list.d/foreman.list

wget -q deb.theforeman.org/pubkey.gpg -O- | apt-key add-apt-get update && apt-get -y install foreman-installer



ここでは、ファイル/etc/apt/sources.list.d/foreman.listを追加し、そこにForemanからリポジトリを入力し、このリポジトリにキーを追加しました。 リポジトリーを追加した後、パッケージのリストを更新してforeman-installerをインストールしました。これはForemanをインストールできるパッケージです。



次に、正しいコンピューター名を構成する必要があります。 / etc / hostsと/ etc / hostnameに書き込みます



/ etc /ホスト
127.0.0.1 localhost

172.16.185.148 srv.co.com srv



/ etc /ホスト名
srv



サーバーを再起動します。



foreman-installer -iコマンドを使用してインストーラーを起動します。



インストールの準備ができているかどうかを尋ねられ、「y」と答えると、追加のForeman構成と追加のモジュールを選択できるメニューが表示されます。 標準構成を設定します。したがって、「保存して実行」オプションを選択すると、インストールが開始されます(-iオプションなしでforeman-installerコマンドを使用して設定できます。その後、基本インストールが行われます。-iは対話モードを意味します)。



インストールに約5分かかりました。インストール後、インストールの成功に関するメッセージが表示されます。このメッセージには、Foremanにアクセスするための設定が含まれています。



職長アクセス設定
成功!

*フォアマンはsrv.co.comで実行されています

初期資格情報はadmin / AQgtYVSPXfNytRt6です

* Foremanプロキシはsrv.co.comで実行されています :8443

* Puppetmasterはポート8140で実行されています

完全なログは/var/log/foreman-installer/foreman-installer.logにあります



srv.co.comにアクセスし、インストール中に受け取ったアクセスパラメータを使用してWebインターフェイスにアクセスします(ファイルに保存し、コントロールパネルに最初にログインした後、パスワードを変更することをお勧めします)。 入力すると、英語のテキスト情報がたくさんあるページが表示されます。アカウント設定に移動して、言語をロシア語に変更できます。 右上隅に移動し、[管理者ユーザー]、[マイアカウント]の順にクリックし、必要な言語を選択して設定を保存します。







次回Foremanにログインすると、別のインターフェイスが表示されます。







こちらのリストにお客様が表示されます。



これで、Puppet + Foremanバンドルのインストールが完了しました。 puppetクライアントを追加して、Webインターフェースの変更点を見てみましょう。



クライアントPCにPuppetエージェントをインストールするには、次のスクリプトを使用します。



クライアント機器へのPuppetのインストール
#!/ bin / bash

wget apt.puppetlabs.com/puppetlabs-release-trusty.deb

dpkg -i puppetlabs-release-trusty.deb

rm puppetlabs-release-trusty.deb

apt-get install -y puppet

sed -is / START = no / START = yes / g / etc / default / puppet

sed -i '/ \ / var \ / log \ / puppet / a \ server = srv.co.com' /etc/puppet/puppet.conf

sed -i 's / templatedir /#templatedir /' /etc/puppet/puppet.conf

パペットエージェント-テスト



このスクリプトは、puppetエージェントをインストールし、起動時に自動実行エージェントを構成し、Puppetサーバーのアドレスを示し、エージェントを起動します。 また、/ etc / puppet / puppet.conf configのtemplatedir行をコメントアウトします。コメントアウトしないと、エラーが入ります(コメントせずに修正する方法はわかりませんでしたが、イライラすることはありません )。



エージェントをインストールした後、サーバーに証明書に署名するよう要求します。この証明書に署名しない場合、エージェントはサーバーに接続されません。



サーバー上の証明書を表示するには、puppet cert --list --allコマンドを使用できます。



パペット証明書--list --all
root @ srv:〜#puppet cert --list --all

ツェッペリン(SHA256)43:64:08:BF:DB:AF:7C:17:5B:DE:3C:CE:22:8B:40:6A:13:60:B7:F4:2C:38: B6:57:E5:FA:EA:CC:63:FB:87:EB

+「Srv.co.com」(SHA256)04:CB:EB:CF:B2:D1:09:3C:74:00:20:A9:87:24:4B:CE:40:CC:0A:73 :1D:F6:E4:24:7D:34:6E:4E:6C:17:DF:61(代替名:「DNS:puppet」、「DNS:puppet.co.com」、「DNS:srv.co .com ")



ここでは、2つの証明書があり、1つはzeppelinという名前で署名されておらず、もう1つはsrv.co.comという名前で署名されています(+)。 署名されていない証明書は、新しく確立されたクライアントからの証明書です。



puppet cert --sign $ client_nameコマンドを使用して、証明書に署名できます。 また、証明書に署名するには、ForemanのWebインターフェイスを使用できます。そのためには、[インフラストラクチャ]-[カプセル]-[証明書]メニューに移動する必要があります。ここで、証明書に署名または削除できます。







「署名」をクリックします。その結果、コンソールで証明書のリストを表示すると、2つの署名済み証明書があります。



パペット証明書--list --all
root @ srv:〜#puppet cert --list --all

+「Srv.co.com」(SHA256)04:CB:EB:CF:B2:D1:09:3C:74:00:20:A9:87:24:4B:CE:40:CC:0A:73 :1D:F6:E4:24:7D:34:6E:4E:6C:17:DF:61(代替名:「DNS:puppet」、「DNS:puppet.co.com」、「DNS:srv.co .com ")

+ Zeppelin(SHA256)03:C6:FF:F9:4D:10:7C:7D:6C:32:A7:E8:0C:9F:DA:FB:DD:43:B6:E5:36:79 :DD:E3:04:41:D3:58:9F:6A:C4:8F



メニュー「サイト」-「すべてのサイト」に移動します-ここには2台のサーバーがあります(新しいサーバーはすぐに表示されない場合がありますが、しばらくすると、証明書に署名してすぐに表示されるように、クライアントでpuppet agent -tコマンドを実行します) 。







デフォルトでは、Foremanは/ etc / puppet / environmentsフォルダーからマニフェストをさらに環境まで取得します。 ここで、Foremanにマニフェストを追加し、クライアントの1つに適用しようとします。 フォルダーmkdir -p / etc / puppet / environment / production / modules / vsftpd / manifestsを作成し 、init.ppファイルをこのフォルダーにドロップします。



vsftpdのinit.pp
クラスvsftpd {

パッケージ{'vsftpd':

確認=>インストール済み、

}

}



ここで、Foremanにマニフェストを持つモジュールを表示するには、[設定]メニュー-[パペットクラス]に移動して、[srv.co.comからインポート]をクリックする必要があります。







目的の環境を鳥でマークし、「更新」をクリックします。







その結果、利用可能なPuppetクラスのリストと、環境、それらが適用されるノードなどの表示を取得します。







マニフェストをクライアントの1つに追加しましょう。 これを行うには、[サイト]-[すべてのサイト]に移動し、必要なノードの名前をクリックすると、ノードの詳細な説明が記載されたページが表示されます。







「変更」ボタンをクリックし、指定されたノードの設定を含む別のページに移動し、2番目のタブ「Puppet Classes」をクリックして、クラス「vsftpd」を確認します。







クラス(+記号)を選択すると、「使用可能なクラス」から「含まれるクラス」に左側に移動し、変更を確認します。



それだけです-選択したサーバーにマニフェストが追加され、クライアントに適用されるまで待機します。 待ちたくない場合は、クライアントに移動してpuppet agent -tコマンドを実行すると、実行直後にマニフェストがクライアントに適用され、vsftpdがクライアントにインストールされます(この場合)。



パペットエージェント-tの結果
情報:プラグインファクトの取得

情報:プラグインの取得

情報:srv.co.comのキャッシュカタログ

情報:構成バージョン '1443086109'を適用しています

通知:/ステージ[メイン] / Vsftpd /パッケージ[vsftpd] /確認:「purged」から「present」に変更されていることを確認します

通知:2.90秒でカタログの実行が完了しました



また、Foremanには多くの追加機能があり、ホストをグループ化でき、マニフェストをグループに適用できます。また、クライアント証明書の自動署名、さまざまな管理者のクライアントマシンへの権限、機器監査などを構成できます。これについては次の記事で説明します。



使用されるリソース:

docs.puppetlabs.com/puppet/latest/reference/install_pre.html

theforeman.org/manuals/1.9



All Articles