部署为生产服务器

时间:2015-01-16 00:42:42

标签: git jenkins

我在Git中有一个带有Dockerfile的项目,它描述了生产服务器。代码和Dockerfile由Jenkins在特殊机器(物理CI服务器)上构建。成功构建后,我将在远程主机(另一个物理部署服务器)上的容器中部署此映像。

最简单的方法是什么?是否有任何Jenkins插件在远程Docker(在另一台机器上)部署映像/容器

1 个答案:

答案 0 :(得分:1)

如果您有远程主机轮询Jenkins以查看最新版本是否成功,那该怎么办?也许一个cron会帮助你安排它。然后如果最新状态==“SUCCESS”拉出最新的git / docker图像并运行。

我在serverfault.com上找到了这个脚本,https://serverfault.com/questions/309848/how-can-i-check-the-build-status-of-a-jenkins-build-from-the-command-line

脚本的第一个参数是Jenkins上项目的名称。该脚本将连接到您的Jenkins实例,请参阅jenkinsURL参数,并检查最新版本是否成功。

#!/usr/bin/python
#
# author: ajs
# license: bsd
# copyright: re2


import json 
import sys
import urllib2

jenkinsUrl = "https://jenkins.example.com/job/"


if len( sys.argv ) > 1 :
    jobName = sys.argv[1]
else :
    sys.exit(1)

try:
    jenkinsStream   = urllib2.urlopen( jenkinsUrl + jobName + "/lastBuild/api/json" )
except urllib2.HTTPError, e:
    print "URL Error: " + str(e.code) 
    print "      (job name [" + jobName + "] probably wrong)"
    sys.exit(2)

try:
    buildStatusJson = json.load( jenkinsStream )
except:
    print "Failed to parse json"
    sys.exit(3)

if buildStatusJson.has_key( "result" ):      
    print "[" + jobName + "] build status: " + buildStatusJson["result"]
    if buildStatusJson["result"] != "SUCCESS" :
        exit(4)
else:
    sys.exit(5)

sys.exit(0)