2017-06-12 109 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提供并行执行。

相关问题