はじめに
遅かれ早かれ、すべての真剣な企業は、ITインフラストラクチャの合法化について考える必要があります。 中規模の会社N.セントラルオフィス、30の小さな支店を取り上げます。 どこでも、主にXPのWindowsの下にワークステーションがあります。 最近のラップトップコンピューターでは、2k3、2k8、ubuntu-serverサーバーにWindows 7と8があります。
同社はゆっくりとしたペースで拡大しており、小規模のIT部門は事前に作成されたAcronisイメージから新しいマシンを展開しています。 しかし、コストを削減し、インフラストラクチャを合法化し、良心を一掃するために、オープンソースへの切り替えが決定されます。 悲劇にはすでに別の規模があり、多くのワークステーションを手で再インストールすることは長くて恩知らずのプロセスです。 アンダーカット-この問題の解決策の1つ。
1.必要なパッケージのツールとインストール。
PXEを使用してUbuntu 12.04.3 LTSをインストールすることが決定されました。 実装ツールとして、コブラーとパペットが選択されました。
CobblerはLinux用のネットワークインストールサーバーであり、新しいコンピューターまたは仮想マシン(Xen、qemu、KVMまたはVMware Server)での必要な展開環境の迅速な構築とOSインストールプロセスの管理、およびその後のシステムの再インストールを提供します。
これはPythonのCobblerによって書かれており、PXE、TFTP、DHCPなどの場合の標準コンポーネントの一部をまとめたものです。
必要なパッケージをインストールします。
sudo apt-get install cobbler cobbler-common cobbler-web dhcp3-server xinetd tftpd tftp debmirror
デフォルトでは、cobblerバージョン2.2.3を入手しますが、これは完全に良いとは限りません。 なぜ-さらに調べる。
次に、コブラーがすべてに満足しているかどうかを確認します。
sudo cobbler check
応答で表示されるもの:
No configuration problems found. All systems go.
設定を同期します。
sudo cobbler sync
Cobblerは、さらにカスタマイズする準備ができました。
2.コブラーのセットアップ
cobblerがインストールされているサーバーのネットワーク設定を指定して、cobblerの構成を変更します。
sudo dpkg-reconfigure cobbler
ネットワーク上のサーバーアドレス、cobbler Webインターフェースのパスワードを指定します。
DHCPを使用するようにcobblerを構成します。
sudo nano /etc/cobbler/settings
変わります
にmanage_dhcp: 0
manage_dhcp: 1
cobbler設定を再起動して同期します。
sudo service cobbler restart sudo cobbler sync
cobblerがisc-dhcp-serverに渡すDHCPパターンを変更します。
sudo nano /etc/cobbler/dhcp.template
フォームに持ってきます:
subnet 192.168.1.0 netmask 255.255.255.0 { # option routers 192.168.1.254; # option domain-name-servers 192.168.1.254; # DNS option subnet-mask 255.255.255.0; # range dynamic-bootp 192.168.1.10 192.168.1.20; # IP
そして、コブラーを再度再起動します。
sudo service cobbler restart sudo cobbler sync
これでcobblerはISOファイルをインポートする準備ができましたが、ここでは約束どおり、cobbler 2.2.3のニュアンスを使って状況を説明します。
実際には、ニュアンス。
自転車に乗った最初のレーキは、デスクトップバージョンのイメージをインポートできなかったことです。 cobblerにインポートした後、インストール可能なディストリビューションのリストに表示されませんでした。 海外の友人のフォーラムをグーグルで検索した結果、Ubuntuディストリビューターの代替、サーバー、ミニバージョンを使用する必要があることが判明しました。デスクトップコブラーは単に表示されません(回避策はありますが、代替をダウンロードする方が簡単でした)。 また、バージョン2.2.3の機能は、イメージからローカルディストリビューションを作成せず、インストール中にカーネルのみをロードし、他のすべてのパッケージをインターネット上のリポジトリからダウンロードすることです。 少なくとも、画像lubuntu-12.04-alternate-i386がそうでした。 バージョン2.4では、ローカルdistribが作成され、パッケージはISOイメージから直接配信されます。
続ける
イメージをマウントし、cobblerディストリビューションのリストにインポートします。
sudo mount -o loop lubuntu1203.iso /mnt sudo cobbler import --name=lubuntu-12-4 --path=/mnt --breed=ubuntu
cobbler-webパッケージを何もインストールしませんでした。 192.168.1.2/cobbler_webでWebインターフェイスを参照できます。
ここでは、多くの便利な設定を行い、ディストリビューション、パッケージ、リポジトリ、プロファイルなどを追加できます。 私たちのタスクは、インポートしたプロファイルを構成することです。 lubuntu-12-4が表示されているプロファイルに移動し、[編集]をクリックします。 ここでのタスクはキックスタートを追加することです

クライアントマシンにUbuntuをインストールするときに、すでに最後の段階で、「指定されたアーカイブミラーを使用しようとしているときにエラーが検出されました」というエラーに遭遇しました。
キックスタートファイルをコピーして名前を変更することで解決
で/var/lib/cobbler/kickstarts/ubuntu-server.preseed
/etc/cobbler/precise.ubuntu.alternate.lan.preseed
プロファイルでは、適切な場所でキックスタートへのパスを記述します。

3.パペット
Puppetには、マシンを微調整する機能が与えられました。 調べた例では、クライアントマシンにいくつかのパッケージが存在するかどうかを確認し、存在しない場合はインストールします。
サーバーにpuppetをインストールします。
sudo apt-get install puppetmaster
そしてクライアントで:
sudo apt-get install puppet
便宜上、/ etc / cobbler / settingsにはpuppet_auto_setupパラメーターがあります。これはpuppetを自動的に設定しますが、サーバー上のEPELのローカルコピーが必要です。 私は完全に理解していなかったか、アイデアは本当に愚かですが、cobbler自体のポストインストールスクリプトを介してすべてを実装することができます。
マシンはDNSから名前を取得することが理解されています。そうでない場合、クライアントとパペットサーバーでそれぞれホストファイルを構成する必要があります。
192.168.0.1 puppetmaster.example.com puppetmaster puppet 192.168.0.10 puppetclient.example puppetclient
次の内容でマニフェスト/etc/puppet/manifests/site.ppを作成してみましょう(例としてパッケージが選択されています。人形の詳細な構成については、ドキュメントを参照してください)。
$base_packages = [ “gnome”, “mc”, “openssh-server”, “vim” ] package { $base_packages: ensure => installed }
この単純なPuppetサーバーの最終ステップは、サービスを再起動することです。
sudo /etc/init.d/puppetmaster restart
これで、クライアントに証明書を要求できます。
puppet agent --server puppetmaster --waitforcert 60 --test info: Creating a new SSL certificate request for puppetclient
サーバーで証明書に署名するためのリクエストを確認しましょう。
puppet cert --list
クライアントからのリクエストが表示されたら、署名します。
puppet cert --sign puppetclient
サーバーへの最初の接続試行で、puppetは、証明書内のサーバー名が要求された名前と一致しないというエラーを返しました
/etc/puppet/puppet.conf
編集し
/etc/puppet/puppet.conf
[master] certname=puppetmaster
それだけです。クライアントマシンは、マニフェストで指定されたパッケージを配置します。
おわりに
このプロセスは、ディストリビューションによってわずかに異なる場合があります。 欠落しているフォルダーを作成する必要がある場合がありますが、これはコンソールに明示的に書き込まれます。 また、インストールの開始時にハングを克服することはできませんでした。約15分間、マシンがハングしたように見える場合があります。 私が知る限り、重複排除は実行中です。 また、バグトラッカーで説明されている一般的なバグ。 なぜ、なぜ-誰かがここであなたに言うかもしれません。 批判、アドバイス、訂正は大歓迎です。