xCAT Deployment and Maintenance Systemの紹介

前の記事のテーマを続けて、今日は毎日使用するツールについてお話します。



あなたの活動が何らかの形で機器の大規模なバッチのインストールと構成に関連している場合、私たちの意見では、材料はあなたにとって有用で興味深いものになります。



インターネットで最も人気のある出会い系ネットワークであるBadooサーバー群を管理するエンジニアは、DHCPサーバー設定を手動で編集し、PXEネットワークダウンロード用の画像を収集しなければならなかったことを覚えていたくはありません...当社は、xCATソフトウェアソリューションの使用に成功しています。



まず、状況を説明する初期条件を示します。

最初の記事に戻ります。これも読むことをお勧めします。DHCPサーバーの構成を準備する必要がある場所で停止するか、新しいサーバーに関する情報を追加する必要があります。 この瞬間から、xCATを積極的に使用し始めます。



xCATは、次の機能を備えたサーバーフリート管理システムです。

xCATシステムの最大の利点は、完全に新しい製品ではなく、何らかの形で以前に知られているすべてのものの合成であるということです。 操作中、エンジニアは新しい構文を学ぶ必要はありません。これは間違いなく、プログラムの習得速度に影響します。



製品初期セットアップのプロセスを簡単に説明します

  1. プロジェクトのWebサイトにアクセスし、適切なディストリビューションを選択して、インストールプロセスの説明を取得します。
  2. 必要なパッケージをインストールします。
  3. 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サーバーのインストールと管理、管理サーバーからサーバーコンソールへのアクセス。



上記のトピックに関する一連の記事が興味を起こさせていただければ幸いです。コメントでいつでもお知らせいただけます。



All Articles