Linux

如何在少數伺服器上遠端執行多個命令?

  • March 30, 2016

我正在嘗試自動化這些步驟,這樣我就不需要在每台機器上手動執行此操作。我需要在所有的 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

我怎樣才能使它自動化,以便它可以在所有 12 台機器上一個接一個地執行相同的步驟?我的意思是先安裝abc.tar.gzmachine1然後安裝machine2並繼續。我只想執行這個腳本machine0

有什麼辦法可以自動化嗎?

我會為此推荐一個配置工具,例如FabricAnsible。兩者都相當容易設置,並且允許您在這種情況下僅使用所需的命令執行更多操作,因為您可以根據使用的工具建構初始劇本或 fabfile。

Fabric 的文件可以在這裡找到:http : //docs.fabfile.org/en/1.10/ Ansible 的文件可以在這裡找到:http: //docs.ansible.com/ansible/intro_getting_started.html

您需要熟悉這兩種工具的 SSH 密鑰和 SSH 配置,您也可以在文件中找到它們。

引用自:https://unix.stackexchange.com/questions/273001