Linux
如何在少數伺服器上遠端執行多個命令?
我正在嘗試自動化這些步驟,這樣我就不需要在每台機器上手動執行此操作。我需要在所有的 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.gz
,machine1
然後安裝machine2
並繼續。我只想執行這個腳本machine0
。有什麼辦法可以自動化嗎?
我會為此推荐一個配置工具,例如Fabric或Ansible。兩者都相當容易設置,並且允許您在這種情況下僅使用所需的命令執行更多操作,因為您可以根據使用的工具建構初始劇本或 fabfile。
Fabric 的文件可以在這裡找到:http : //docs.fabfile.org/en/1.10/ Ansible 的文件可以在這裡找到:http: //docs.ansible.com/ansible/intro_getting_started.html
您需要熟悉這兩種工具的 SSH 密鑰和 SSH 配置,您也可以在文件中找到它們。