使用Ansible Tower与Jenkins集成实现CI/CD

Ansible Tower是什么?

Ansible Tower是一个基于Web的用户界面,提供了IT自动化的企业解决方案。它有一个友好用户的仪表板来管理部署和监控资源。Ansible Tower为Ansible增加自动化,可视化管理和监控能力。

为什么要使用Ansible Tower替换Ansible与Jenkins集成?

使用Ansible Tower与Jenkins集成,打开了一个充满可能性的世界。
与一篇中介绍的《Ansible与Jenkins集成实现CI/CD》进行比较,它可以从Jenkins中删除很多配置,比如部署应用的服务器的访问配置,管理playbook执行,最重要的是,避免在Jenkins端配置SSH密钥,同时Jenkins不需要知道应用程序的部署服务器地址:它可能位于公有云中,物理机中,甚至是笔记本电脑上的虚拟客户端。 把这些配置与过程都放到Ansible Tower中进行集中管理。

Ansible Tower的组件

Ansible Tower组件
  • Credentials: Ansible Tower在运行作业时,访问Tower外部服务或者连接主机时需要进行身份验证。Credentials则是存储这些身份验证的配置信息。
  • Projects: Project是一组Ansible playbooks的集合,它是开始使用Tower的第一个组件。Projects中的playbooks文件可以手动添加在Tower服务器的目录中,但是一般推荐使用Git等代码仓库的方式存放playbooks文件,因为这样更容易对playbooks文件进行更改与管理。
  • Inventories: Inventories是ansible Tower中的Job最终执行操作的主机,它可以通过静态方式添加,也可以使用脚本动态添加,比如访问CMDB服务、调用公有云API。
  • Job template: Job template是Ansible Job的一个模板,它可以为Job传递不同的参数,认证证书、Inventories配置等。
  • Job: Job是最终执行的任务,可以在Tower上查看Job的执行过程,及日志

说明:当然以上说明只是各组件最简单的功能介绍,其实每个组件的功能都会更加丰富,我们可以自己部署Ansible Tower,并通过具体的使用来熟悉各组件的功能。

怎样集成Ansible Tower与Jenkins?

前提:部署好了Ansible Tower和Jenkins

Ansible Tower上的设置

  • 创建用户jenkins给Jenkins调用Ansible Tower Tower
Ansible Tower创新建用户jenkins
  • 创建Project,使用Git作为SCM Type,并给jenkins用户授权 Tower
新建Project
  • 创建Inventories Tower,将部署应用的主机信息添加到Hosts,并添加到"app_server" Group Tower

    • 创建Inventory
Inventories创建
  • 添加应用服务器主机
添加主机
  • 给Inventory授权给Jenkins用户
对Inventories授权
  • 创建访问应用主机的身份认证密钥 Tower

    • 添加新的认证信息,可以是用户名+密码,也可以用户名+私钥
应用服务器登录密钥
  • 对认证信息授权给Jenkins用户
对认证信息授权给Jenkins用户
  • 创建Job Template Tower
Job Template

补充:

  1. EXTRA VARIABLES是额外的补充参数。
  2. 大部分参数都有PROMPT ON LAUNCH选项,这个是在Template Job实际运行时,通过用户交互的方式进行配置
  3. SURVEY的配置有更加友好的方式与用户交互进行配置参数

Jenkins上的设置

  • 安装Ansible Tower插件 Jenkins
Jenkins 安装Ansible Tower插件
  • 设置访问Ansible Tower的登录Credentials Jenkins
添加Ansible Tower用户
  • 在Configure System中设置Ansible Tower信息 Jenkins
设置Ansible Tower信息
  • 新建Jenkins Job,设置Ansible Tower Job jenkins
pipeline{
    agent any
    stages{
        statge("构建应用"){
            echo '构建应用'
        }
        statge("Jar包上传"){
            echo 'Jar包上传到Nexus,以供Ansible Tower中的playbook下载部署'
        }
        stage("触发Ansible Tower Job"){
            ansibleTower credential: '2', 
                extraVars: '''APPNAME: App
    ARTIFACT_URL: http://test.com/app/1.0.jar''', 
                importTowerLogs: false, 
                inventory: '2',
                jobTemplate: '8', 
                templateType: 'job', 
                throwExceptionWhenFail: false, 
                towerServer: 'ansible tower', 
                verbose: false
        }
    }
}

通过Jenkins Job的触发就会触发Ansible Tower中id为8的Job Template生成新的Job进行应用部署。

最后一句话作为总结:
Ansible Tower与Jenkins双剑合璧才是运维自动化正确的打开方式。

参考资料

Take Ansible and Jenkins Integration to the next level: CI/CD with Ansible Tower
Ansible Tower官方文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343