私はここに初めて来て、Linuxサーバーの大規模なリモート構成について興味深い質問をしたいと思いました。
Ubuntuを新しくインストールし、インターネットから公的にアクセスでき、Authorized_keysにSSHキーがあり、各サーバーにsudoパスワードを持つ100個のサーバーのIPアドレスのリストがあると想像してください。これらのサーバーを構成し、OpenVPNをインストールする方法について説明します。
Puppetは新しいサーバーにはインストールされず、SSHDのみが有効になります。
答え1
最も簡単な方法は、sudo
サーバー名/ IPとパスワードのリストを取得することです。
server1 pass1
server2 pass2
server3 pass3
...
server100 pass100
その後、ファイルを繰り返し、サーバーとパスワードを変数として読み取り、次をssh
使用してサーバーからリモートコマンドを実行できます。
while read server pass; do
ssh "$server" sudo -S apt-get install network-manager-openvpn <<<"$pass"
done < file
オプションを使用すると、標準入力からパスワードを渡す-S
ことができます。sudo
-S, --stdin
Write the prompt to the standard error and read the password
from the standard input instead of using the terminal device.
The password must be followed by a newline character.
以下は<<<
bash(および他のシェル)トリックです。ここにある文字列。