あなたの活動が何らかの形で機器の大規模なバッチのインストールと構成に関連している場合、私たちの意見では、材料はあなたにとって有用で興味深いものになります。
インターネットで最も人気のある出会い系ネットワークであるBadooサーバー群を管理するエンジニアは、DHCPサーバー設定を手動で編集し、PXEネットワークダウンロード用の画像を収集しなければならなかったことを覚えていたくはありません...当社は、xCATソフトウェアソリューションの使用に成功しています。
まず、状況を説明する初期条件を示します。
- 主な配布-SLES 11またはSLES 11 SP 1(主に2番目);
- 指定されたディストリビューション用の既製パッケージであるxCATの最新の安定バージョン(インストールプロセスの詳細については、製品のホームページで説明されています)。
- 複数のVLAN ;
- 多数の新規または既存のサーバー。
xCATは、次の機能を備えたサーバーフリート管理システムです。
- DHCPサーバーの現在のステータスのサポート、
- DNSゾーンの現在の状態を維持し、動的更新を実行します。
- TFTPサーバーの現在のステータスのサポート(私たちにとって非常に重要です)、
- OSをインストールするためのイメージの作成、
- PXEサーバーのサポート、
- サーバー上の静的ルートの現在の状態のサポート、
- 以前に構成されたサーバーの現在のステータスを表示し、
- 指定したロジックに基づいたサーバーグループの管理。
製品の初期セットアップのプロセスを簡単に説明します 。
- プロジェクトのWebサイトにアクセスし、適切なディストリビューションを選択して、インストールプロセスの説明を取得します。
- 必要なパッケージをインストールします。
- xCATサーバーを直接インストールします。
管理(入力の追加、変更、チェック)の主なコマンド: tabeditおよびtabdump
メインシステム構成ファイルを編集します。
tabedit site
注意すべき重要なポイント:
"installdir","/install"
-xCATがインストール用のすべてのシステムイメージを格納するディレクトリ。ここにはさまざまなポストスクリプトがあります。 システムのhttpインストールの場合、Webインターフェースからディレクトリにアクセスできます。 システムの自動インストール用のテンプレートも含まれます。
"ipmiretries","3"
-サーバー管理インターフェースへの接続を試行します。
"ipmitimeout","2"
-コメントなし。
"master","master_server_name"
-解決する必要のあるマスターサーバーの名前
"master","master_server_name"
ファイルにもある必要があります 。
"tftpdir","/tftpboot"
-PXEを介したダウンロードに必要なファイルが配置されるディレクトリへのパス。TFTPサーバーはpxe-bootのイメージを配布するため、ディレクトリへのアクセス権も必要です。
"xcatconfdir","/etc/xcat"
-xCAT構成ファイルがあるディレクトリへのパス。
"timezone","GMT"
-タイムゾーン。
"useNmapfromMN","yes"
-マスターサーバーでnmapを使用して、ホストの状態(nodestatホスト名を含む)を表示します
"dhcpinterfaces","ethN,!remote!"
-DHCPサーバーがDHCP要求に応答するインターフェイス。 (1つ目は物理インターフェイス、2つ目はVLAN用で、サーバーは発行アドレスとして登録されています)
"nameservers","1.1.1.1"
は、 リースを発行した後、サーバーがホストのPTRレコードに関する情報を送信しようとするDNSサーバーのアドレスです。
このような構成は、慣れるだけでなく、xCATサーバーのテスト実行にも十分です。
今、私たちは非特権ユーザーにアクセスを追加しようとしています。
これを行うには、以下を行う必要があります。
-システム内のユーザーの存在。
-xCATサーバーで証明書を発行して署名する
/opt/xcat/share/xcat/scripts/setup-local-client.sh username
次の内容の$ HOME / .xcatディレクトリを取得します。
ca.pem
client-cert.pem
client-cred.pem
client-key.pem
client-req.pem
-xCATサービステーブルにユーザー情報を追加します。 この場合、これを行うためにユーザーに最大の許可を与えます
tabedit policy
次のような行を追加します。
username,allow
実行したアクションの後、ユーザーはxCATサーバー管理にアクセスできます。
さらに、インストールリポジトリを作成するには、使用するオペレーティングシステムのイメージが必要です。
XCATにはcopycdsユーティリティが含まれており、次のシナリオに従って動作します。
copycds [{-n|--name|--osver}=distroname] [{-a|--arch}=architecture] 1st.iso [2nd.iso …]
したがって、インストールDVDのイメージがある場合は、単に実行します
copycds PATH_TO_ISO SLES-11-DVD-x86_64-GM-DVD1.iso
xCATはオペレーティングシステムのバージョンを独自に検出し( --osverでない場合 )、すべてをローカルドライブにコピーします(この場合- / install / sles11 )
xCatには/ opt / xcat / share / xcat / install /ディレクトリにある標準インストール用の一連の構成もありますが、私たちには関係ないため、インストールプロファイルを作成し、パスに沿って配置します
/install/custom/install/DISTRNAME/Templatename.tmpl
注:SuSe Linuxの場合、これはYaSTが行うのに役立つxmlファイルです(ただし、製造元のWebサイトのパラメーターの構造と構成に精通した後、自分で作成する方が簡単です)。
通常のインストールテンプレートが準備できたら、新しいマシンを追加してOSのインストールを開始するだけです。これについては、以下で説明します。
正しいインストール手順には、情報が必要です。
1)OSをインストールするサーバーについて、
2)各サーバーのホスト名、
3)使用する予定のサブネットについて、
4)hostame-ipコンプライアンスについて、
5)サーバー管理インターフェースへのアクセスの詳細について。
前の記事に戻って、必要な情報がすべて揃っていることを思い出してください。xCATに追加するだけで、次のようになります。
1.サーバーグループをシステムに追加します。
nodeadd depl[1-200] groups=depl
2.サーバー管理インターフェイスに関する情報を追加します(これらの名前がdepl [1-200] ipmiであると仮定します)。
nodeadd depl[1-200]ipmi groups=depl_ipmi
3.すべての新しい機器が配置されているサブネット(VLAN)があるという事実について話しました。 サブネットを次のように説明します。
#netname,net,mask,mgtifname,gateway,dhcpserver,tftpserver,nameservers,ntpservers,logservers,dynamicrange,nodehostname,comments,disable
tabedit networks
"depl_vlan","2.2.2.0","255.255.255.0","!remote!","2.2.2.1",,"1.1.1.1","5.5.5.5","6.6.6.6",,"2.2.2.200-2.2.2.254",,,
"depl_vlan_ipmi","3.3.3.0","255.255.255.0","!remote!","3.3.3.1",,"1.1.1.1","5.5.5.5","6.6.6.6",,"3.3.3.200-3.3.3.3.254",,,
注:以来 xCatはDHCPサーバーを構成し、 リース付きのファイルに固定アドレスに関する情報を保存します 。サブネット内のサーバーが失われる可能性のある問題を回避するために、ダイナミックレンジに該当しないホストの固定アドレスを使用することをお勧めします。
4.メインサーバーインターフェイスと管理インターフェイスのMACアドレスに関する情報を追加します。
#node,interface,mac,comments,disable
tabedit mac
"depl1","eth0","MAC1",,
"depl2","eth0","MAC2",,
"depl3","eth0","MAC3",,
"depl1ipmi","eth0","ipmi_MAC1",,
"depl2ipmi","eth0","ipmi_MAC2”,,
"depl3ipmi","eth0","ipmi_MAC3",,
...
ヒント:前回の記事でノードファイルについて説明しました。このファイルと密接に連携して、MACアドレスに関する情報を追加し、実行するのに十分です。
cat nodes | awk {'print "\""$1"\",\"eth0\",\""$15"\""'}
そして、フォームの出力を取得します
"depl1","eth0","MAC1",,
管理インターフェースについても同じ:
cat nodes | awk {'print "\""$1"manage\",\"eth0\",\""$10"\""'}
"depl1ipmi","eth0","ipmi_MAC1",,
5. hostame-IPコンプライアンス情報を追加します。
#node,ip,hostnames,otherinterfaces,comments,disable
tabedit hosts
"depl1","2.2.2.2","depl1","depl1ipmi:3.3.3.2",,
"depl2","2.2.2.3","depl2","depl2ipmi:3.3.3.3",,
"depl3","2.2.2.4","depl3","depl3ipmi:3.3.3.4",,
...
これらの設定は、簡単なコマンドを使用して生成できます。
for i in `seq 1 200`; do echo '"depl$i'","2.2.2.'$[$i+1]'","depl'$i'","depl'$i'manage:3.3.3.'$[$i+1]'",,'; done
6.仮想コンソールのオプションとその速度を修正します(ここでは、1つのグループ内のすべての新しいマシンに所属すると便利です。最終的には、200行ではなく1行のみが必要になります)。
#node,power,mgt,cons,termserver,termport,conserver,serialport,serialspeed,serialflow,getmac,comments,disable
tabedit nodehm
"testgroup","ipmi","ipmi",,,,"1","1","115200",,,,
7. noderesテーブルを編集します。
#node,servicenode,netboot,tftpserver,nfsserver,monserver,nfsdir,installnic,primarynic,discoverynics,cmdinterface,xcatmaster,current_osimage,next_osimage,nimserver,comments,disable
tabedit noderes
"depl",,"pxe","1.1.1.1","1.1.1.1",,,,,,,,,,,,
8.サーバーのタイプとOSのインストール方法に関する情報を追加します。
#node,os,arch,profile,provmethod,supportedarchs,nodetype,comments,disable
tabedit nodetype
"depl","sles11.1","x86_64","Templatename","install",,"osi",,
この場合、 インストール方法-システムのインストール、 netboot-を使用できます-ネットワークブート、およびサービス手順の実行に使用します。
9.メインサーバーインターフェイスとその管理インターフェイスの対応に関する情報を追加します。
#node,bmc,bmcport,username,password,comments,disable
tabedit ipmi
"depl","/\z/ipmi/","0",”ipmi_username”,"ipmi_password",,
ここでもチートを行い、各サーバーの通信を個別に示しませんが、グループを使用します。 管理インターフェイスの命名は、サーバーのホスト名にipmiを追加する以外の何物でもないことを考えると、これはまさに私たちが必要とするものです。 また、すべてのサーバーで同じIPMIのユーザー名とパスワードを使用していることを考慮します。これも表に示されています。
10.ここで、 / etc / hostsファイルの構成を生成します 。
makehosts
11. DHCPサーバーの構成を作成します。
makedhcp -a -n
任意のノードの情報を見ることができます:
lsdef nodename
これで、サーバーはインストールプロセスを開始する準備ができました。
12.以下を実行します。
nodeset depl[1-10] install
depl [1-10]の代わりに、グループ名またはコンマ区切りリストを使用できます。
この時点で、 / tftpboot / pxelinux.cfg /で各ホストへのPXEブートの構成を取得し、 / install / autoinst /で自動インストールファイルのコピーを取得します。
13.サーバーに、次回の起動時にネットワークインターフェイスから起動するコマンドを提供します。
rsetboot depl[1-10] net
14.サーバーを再起動するために送信します
rpower depl[1-10] boot
次に、サーバーコンソールでインストールプロセスを確認するか、 conserverを構成します(この機能はこの記事のフレームワークでは考慮されていません)。
最後に、ネットワークブート用のイメージを収集します 。 Badooでは、問題のある機器の診断、復元、および再生、カスタムハードウェアの準備、パフォーマンステストの実行に画像が使用されます。
これを行うには、 genimageコマンドを実行します。簡単なウィザードが起動し、質問に答えてシステムのイメージを取得します
/install/netboot/$DISTR/$ARCH/profile_name
結果のイメージは、その裁量で変更および編集できます。その後、実行する必要があります。
packimage -o $DISTR -p profile_name -a $ARCH
サーバーを送信する完成したネットブートイメージを取得します。
nodeset depl[11-200] netboot=$DISTR-$ARCH-profile_name
rsetboot depl[11-200] net
rpower depl[11-200] boot
ネットブートイメージに公開キーを配置することをお勧めしますが、passwdテーブル( tabedit passwd )からのアクセスに詳細を使用できます
サーバーでの準備手順がすべて完了したら、OSのインストールを開始します-15分で結果が得られます。
すべてのサーバーを必要なサブネットに配置し、その後Puppetを通過し、必要なソフトウェアを個別に、グループでインストールし、必要なシステムパラメーターを設定するだけです。
結論として、この種のシステムがあれば、エンジニアが必要なコマンドを与えるだけで十分であり、サーバーの構成に最小限の労力しかかからないことに注意したいと思います。
もちろん、今日は、xCATシステムのすべての利点と、xCATを介したハイパーバイザーやその上の仮想サーバーの管理などの複雑なチューニングの問題については触れませんでした。 Webインターフェイスを介したxCATサーバーのインストールと管理、管理サーバーからサーバーコンソールへのアクセス。
上記のトピックに関する一連の記事が興味を起こさせていただければ幸いです。コメントでいつでもお知らせいただけます。