5つのサーバーにパッケージを一括インストールさせたい

2024年6月25日

Fabricを使用して、複数のサーバーにパッケージを一括でインストールする方法があります。以下はその方法です:

python
from fabric import Connection
from fabric.exceptions import GroupException

# リモートサーバーの接続情報
hosts = ['server1_ip', 'server2_ip', 'server3_ip', 'server4_ip', 'server5_ip']
user = 'your_username'
key_filename = '/path/to/your/private/key.pem'  # SSHキーのパス
package_to_install = 'package_name'  # インストールしたいパッケージ名

# パッケージを一括でインストールする関数
def install_package():
    try:
        with Connection(user=user, connect_kwargs={'key_filename': key_filename}) as conn:
            for host in hosts:
                conn.host = host
                result = conn.sudo(f'apt-get install {package_to_install} -y', hide=True)  # パッケージをインストール
                print(f'Package installation on {host}: {result.stdout}')
    except GroupException as e:
        print(f'Failed to install package on some hosts: {e}')

# パッケージのインストール
install_package()

このスクリプトでは、リモートサーバーのIPアドレスのリストと、インストールしたいパッケージの名前を指定します。それから、Fabricを使用して各サーバーに接続し、apt-get installコマンドを使用してパッケージをインストールします。

この例では、UbuntuなどのDebian系ディストリビューションを想定しています。他のディストリビューションを使用している場合は、apt-get installの部分を適切なパッケージマネージャーとコマンドに置き換えてください。

未分類

Posted by ぼっち