如何在几台服务器上远程执行多个命令?

use*_*349 4 linux shell bash scp sudo

我正在尝试自动化这些步骤,这样我就不需要在每台机器上手动执行此操作。我需要在所有 unix 机器上安装最新的应用服务器软件 (abc.tar.gz)。

我需要在大约 12 台机器上执行此操作 - "machine1" ... "machine12". 我有一台"machine0"abc.tar.gz文件的主机,所以我想只从这台机器上运行我的脚本,并abc.tar.gz按照以下步骤在所有这 12 台机器上一一安装软件。我的 unix 帐户 ID 是david,我的进程以golden用户身份运行。

如果我abc.tar.gz在“machine1”中安装,这是我遵循的步骤:

david@machine1:~$ sudo scp david@machine0:/home/david/abc.tar.gz .
david@machine1:~$ sudo stop test_server
david@machine1:~$ sudo su - golden
golden@machine1:~$ cd /opt/process
golden@machine1:/opt/process$ rm -rf *
golden@machine1:/opt/process$ exit
david@machine1:~$ sudo cp abc.tar.gz /opt/process
david@machine1:~$ sudo chown -R golden /opt/process
david@machine1:~$ sudo su - golden
golden@machine1:~$ cd /opt/process
golden@machine1:/opt/process$ tar -xvzf abc.tar.gz
golden@machine1:/opt/process$ exit
david@machine1:~$ sudo start test_server
Run Code Online (Sandbox Code Playgroud)

我怎样才能自动执行此操作,以便它可以在所有 12 台机器上一一执行相同的步骤?我的意思是安装abc.tar.gzmachine1第一,然后安装上machine2并去..我想从运行此脚本machine0只。

有没有办法自动化这个?

cgu*_*hal 5

为此,我会推荐一种配置工具,例如FabricAnsible。两者都相当容易设置,并且允许您在这种情况下执行更多所需的命令,因为您可以根据您使用的工具构建初始剧本或 fabfile。

Fabric 文档可以在这里找到:http : //docs.fabfile.org/en/1.10/ Ansible 文档可以在这里找到:http ://docs.ansible.com/ansible/intro_getting_started.html

您需要熟悉这两种工具的 SSH 密钥和 SSH 配置,您也可以在文档中找到这些内容。