Ubuntu 12.04のCobbler + puppetまたはネットワークインストール

はじめに



遅かれ早かれ、すべての真剣な企業は、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分間、マシンがハングしたように見える場合があります。 私が知る限り、重複排除は実行中です。 また、バグトラッカーで説明されている一般的なバグ。 なぜ、なぜ-誰かがここであなたに言うかもしれません。 批判、アドバイス、訂正は大歓迎です。



All Articles