我们先定义一些环境变量。声明这些变量的原因是要有一个地方来存储关键信息。这样,当某些信息发生变化时(例如集群入口点),只需要修改一个或两个变量,并且这些变化将传播到所有作业中。
让我们开始吧。首先,需要打开Jenkins全局配置界面
给Windows用户的说明
Git Bash可能不支持open命令,如果真是这样的话,则执行docker-machine ip <SERVER_NAME>来查找机器的IP,然后直接在浏览器中打开URL,比如上面的命令应该被替换为docker-machine ip swarm-1,如果命令输出的是1.2.3.4的话,则应该在浏览器里打开http://1.2.3.4:8082/jenkins。
一旦进入配置界面,请点击Environment variables复选框,然后点击“Add”按钮,将会看到“Name”和“Value”字段。我们将添加的第一个变量保存生产环境IP。但是在输入之前,我们需要知道生产环境IP是什么。Routing mesh将来自任何节点的请求重定向到目标服务,或者更确切地说,是与请求公开了相同端口的服务。因此,可以使用生产集群中的任何服务器作为我们的入口点。
要获得其中一个节点的IP,可以使用docker-machine ip命令:
结果视情况而定,在我的笔记本电脑上,输出如下:
请复制IP并返回到Jenkins配置界面。输入PROD_IP作为名称并将IP粘贴到值字段中。值得注意的是,我们刚刚引入了单点故障,如果swarm-1节点失败,那么所有使用此变量的作业也将失败。好消息是,可以通过更改此环境变量的值来快速修复此问题。坏消息是,其实我们可以做得更好,但不是用Docker机器。例如,如果要使用AWS,就可以使用Elastic IP。但是,现在尚未到AWS章节,因此目前更改环境变量是我们的最佳选择。
接下来应该添加另一个代表生产节点名称的变量。稍后会看到这个变量的用法。现在,请创建一个名称为PROD_NAME并且值为swarm-1的新变量。
在类生产集群swarm-test中,我们需要类似的变量。请输入值为swarm-test-1节点IP(通过docker-machine ip swarm-test-1得到)的变量PROD_LIKE_IP以及值为swarm-test-1的变量PROD_LIKE_NAME,如图6-8所示。
图6-8 定义环境变量的Jenkins全局配置界面(www.xing528.com)
一旦设置完Environment variables,请点击“Save”按钮。
既然已经定义了环境变量,那么可以继续并创建一个Jenkins流水线作业用于自动执行我们实践过的持续部署步骤。
要创建新作业,请点击位于左侧菜单中的New Item链接。输入go-demo作为项目名称,选择Pipeline,然后单击“OK”按钮。
Jenkins流水线定义包含三个主要级别,即节点、阶段和步骤。我们将通过逐一学习这些级别来定义go-demo Pipeline代码。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。