2017-06-12 147 views
3

我已經在服務器上安裝了Jenkins,默認情況下,作業只能在該服務器上運行。我的要求來自我的Jenkins,我如何將相同的作業運行到多個服務器上?它如何將ssh發送到其他服務器?我是Jenkins的新手,請幫助。基本上我的目標是將應用程序部署到多個服務器上。如何在多個虛擬服務器上運行Jenkins作業?

回答

2

您可以使用任何像ansible,chef或capistrano這樣的配置管理工具作爲jenkins作業,以便他們可以用jenkins完成您的工作。您可以提到Capistrano烹飪書下的服務器數量,只要您將構建作業,它就會在所有服務器上運行您的任務。

還有一個像pssh(並行ssh)的工具,以防你想使用ssh。

0

我認爲通過使用單個作業和後期構建步驟,您可以將其部署到多個服務器上。

讓我知道,在情況下,如果任何更正

+0

詹金斯將如何SSH到其他服務器在其他服務器上運行作業。 – Sidhartha

1

您可以使用主從概念。在所有其他機器上安裝jenkins slave,即在您的情況下安裝其他應用程序服務器。你可以從here找到更多關於詹金斯主奴隸的概念。

然後,您可以使用相同的作業在其他應用程序服務器上運行。

+0

非常感謝您的幫助,現在我可以通過添加一個從站將相同的應用程序部署到多個服務器上。 – Sidhartha

0

使用主從概念,您可以將Jenkins從屬代理添加到多個從節點上,以便您可以部署它們。

您可以用兩種方法部署,或者使用詹金斯節點管道語法,或者通過構建腳本使用Ansible-劇本:

第一種方式是作爲Jenkinsfile如下:

node('node1') { 
    // Building Stages on node 1 
} 

node('node2') { 
    // Building Stages node 2 
} 

二方式如下Jenkinsfile:

node('master_node'){ 
// master node has the ansible-playbook 

ansiblePlaybook credentialsId: 'ansible_ssh_user', inventory: 'path_to_inventory_file', playbook: 'path_to_playbook', sudo: true, sudoUser: 'sudo_user_name' 

} 

這種方式需要在Jenkins主節點上安裝Ansible-plugin。 ,您可以將所有需要的節點放入清單文件中。

除了Idempotence之外,兩種方式之間的主要區別在於第一種方式將提供順序執行,而第二種方式將使用Ansible提供並行執行。

相關問題