約40台のKubuntu 13.04マシンにいくつかのプログラムをインストールする必要があります。
編集:リポジトリを設定しましたが、コンピュータはLDAP認証または集中型サーバーなしですべて同じレプリカです。
答え1
すべての構成管理ソフトウェアが可能です。それがまさにそれであることです。 Chefを見ることをお勧めします。 Webページの広告テキストは次のとおりです。
Chef はインフラストラクチャをコードに切り替える自動化プラットフォームです。物理サーバーと仮想サーバーについて考えないでください。 Chefを使用すると、これらのサーバーとサーバーが提供するサービスに命を吹き込むコードが実際の資産になります。自動化されたインフラストラクチャは、リリース期間を短縮し、規模と複雑さを管理し、システムを保護するのに役立ちます。
ネットワークがクラウド、オンプレミス、またはハイブリッドネットワークにある場合でも、Chefは5台、5000台、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
パスワードのない認証がない場合は、expect
Pythonのツールまたはモジュールを使用できます。paramiko