約 40 台の Kubuntu 13.04 マシンにいくつかのプログラムをインストールする必要があり、それをできるだけ効率的に行うためのオプションを知りたいです。
編集: リポジトリはすでに設定されており、マシンはすべて同一のクローンであり、LDAP 認証や集中サーバーはありません。
答え1
どのような構成管理ソフトウェアでも構いません。それがそれらの目的です。chef を検討することをお勧めします。以下は、Web ページからの宣伝文句です。
Chef は、インフラストラクチャをコードに変換する自動化プラットフォームです。物理サーバーと仮想サーバーという観点で考えるのはやめましょう。Chef を使用すると、サーバーとそれらが提供するサービスを実現するコードが真の資産になります。自動化されたインフラストラクチャにより、市場投入までの時間が短縮され、規模と複雑さを管理し、システムを保護できます。
ネットワークがクラウド、オンサイト、ハイブリッドのいずれであっても、Chef は、5 台のサーバー、5,000 台のサーバー、500,000 台のサーバーを管理するかどうかに関係なく、サーバーとアプリケーションの構成、展開、拡張を自動化できます。Facebook や Amazon などの企業がミッションクリティカルな課題に Chef を選択しているのも不思議ではありません。
このビデオは非常に役立ちます: http://www.youtube.com/watch?v=0UXh5EnFZrM
ホームページ: http://www.opscode.com/chef/
答え2
Rahul の非常に優れた回答を拡張すると、次の方法を使用して、各マシンへのパスワードなしのアクセスを簡単に設定できます。
インストール
sshpass
ローカルマシン上:sudo apt-get install sshpass
これにより、パスワードをコマンドライン引数として渡すことができます。
sshpass -p '<password>' ssh user@server
SSHキーを作成する
ssh-keygen -t rsa
空のパスフレーズを許可することで、物事を簡素化できます (この回答の残りの部分では、パスフレーズを空にしていることを前提としています。セキュリティ上の懸念からこれができない場合はお知らせください。それに応じて修正します)。
関心のあるすべての IP と、それぞれのユーザー名とパスワードを 1 行に 1 つずつ記述したファイルを作成します。
1.2.3.4 bob bobs_password 11.22.33.44 hary harrys_password
次に、を使用して
sshpass
キー ファイルをコピーし、空のパスフレーズを使用している限り、すべてのマシンへのパスワードなしのアクセスを許可します。while read ip user pass; do sshpass -p "$pass" ssh ssh-copy-id -i ~/.ssh/id_rsa.pub $user@$ip; done < ips.txt
パスワードなしのアクセスが設定されたので、各マシンにソフトウェアをインストールします (これは、 が
$user
実行できることを前提としていますapt-get
。基本的には、$user
ですroot
)。while read ip user pass; do ssh $user@$ip "apt-get install package; done < ips.txt
答え3
長期目標のために
ネットワーク上で実行されているさまざまな *nix フレーバーを集中管理し、構成のあらゆる側面を管理できる自動化ツールが必要な場合は、以下を検討してください。
- 傀儡
- シェフ
- cfエンジン3
短期目標の場合
apt-get
またはを介してパッケージをインストールするだけの一時的な解決策が必要な場合はyum
、シェルまたは Perl、Python スクリプトを使用できます。
すでにパスワードなしの認証を設定している場合は、次のスクリプトを使用できます。
#!/usr/bin/env bash
Servers_list=/opt/servers_list
PackageName="package-name"
for Host in $(< $Servers_list )
do
echo "Installing package on $Host"
ssh "${Host}" apt-get -y install "${PackageName}"
done
パスワードなしの認証がない場合は、Python のexpect
ツールまたはモジュールを使用できます。paramiko