昨天稀稀拉拉飘了几瓣雪,接着又刮风,早晨起来,虽不见蓝天白云,但总算能擦亮眼睛看到远处的你了......
雾霾迷漫的岁月,且行且珍惜啊,我不忘分享,你不忘学习,每天进步一点点。
昨天分享了CI的基本概念,工作原理以及CI带给我们的好处。今天来点儿干货,动动手搭建自己的第一个CI环境。在此之前,必须先了解一些CI必须遵守的基本原则和最佳实践。
CI的基本原则:
1. 统一的代码库
2. 每次提交都会在CI服务器上触发一次构建
3. 快速构建
4. 自动化测试,准备足够的测试脚本
5. 所有人在本地机器上构建成功后再提交到代码库中
6. 每次构建100%通过,如果失败,修复构建优先级最高
7. 自动化部署
最佳实践:
1. 开发人员每天至少要向代码库push一次代码。
2. 开发人员每天至少要从代码库pull一次代码。
3. CI定时去检查代码库的更新,只要有更新,就触发构建。
4. 一键部署。对于UAT和生产环境,屏蔽自动部署,引入人为手动的一键部署。
接下来,需要明确环境搭建步骤吧:
1. Install VirtualBox:VirtualBox是一款虚拟机 (不要问我为什么选它,我会告诉你,因为开源啊)
2. Install and configration Vagrant: Vagrant 是一个用来管理虚拟机生命周期的命令行工具,用于管理虚拟机的生命周期(启动、关闭、注销、移除等), 需要安装并配置。
3. Up and connect Vagrant: 启动并登陆虚拟机
4. Install Jenkins: 时下有很多流行的持续集成工具,Jenkins就是其中一款开源工具,用来持续编译、测试、构建以及部署Project
5. Sign up and login Jenkins:注册并登录Jenkins
以下步骤及截图全部为Mac OS X版本,Windows版本安装步骤是一样的,只是软件版本及操作步骤略有不同,命令输入请选择合适的终端工具。抱歉不能一一列举。
Step 1:Install VirtualBox
Install VirtualBox分两步:下载、安装。(此处为Mac,选择VirtualBox 5.1.10)
下载URL:https://www.virtualbox.org/
安装:将’1 VirtualBox.pkg’拖到’2 Applications’中就可以了
Step 2:Install and Configuration Vagrant
我们准备在Mac主机上Setup一个Ubuntu的虚拟环境,并且借助 Vagrant 和VirtualBox来完成。其中需要一些配置,请依照以下操作步骤执行。
(1). 安装Vagrant
安装vagrant很简单,使用官方URL,下载适合自己的系统平台。(此处为Mac,选择Vagrant 1.9.1)
URL: https://www.vagrantup.com/downloads.html
安装完毕之后,千万别忘记check Vagrant版本哦:
命令行:
$ vagrant -v
(2). Configure Vagrant project
Configuration任何Vagrant project的第一步都是生成‘Vagrantfile’文件。那么,这么重要的文件是干什么的呢?
总的来说,就是存放Vagrant Project版本信息。说具体点儿,它具有两方面的作用:
a. 记录下Vagrant Project的根目录;
b. 描述Project中运行的机器、资源、安装的软件、以及如何访问的相关信息。
具体怎么来操作呢?很简单,在本地新建CIworkshop文件目录,并使用Vagrant内置命令vagrant init进行初始化。这时候,CIworkshop目录下就会生成一个Vagrantfile文件。
命令行:
$ mkdir CIworkshop
$ vagrant init ubuntu/trusty64
首次运行,Vagrant需要联网下载ubuntu/trusty64,请耐心等待一段时间。执行完毕之后会在CIworkshop目录下会生成Vagrantfile文件
(3). Modify Vagrantfile
前面讲述,Vagrantfile存放Vagrant Project版本信息,因此,这一步就是要按照自己的Project,修改版本信息。
命令行:
$ vi Vagrantfile
叮~~~ 打开文件啦,你会发现一堆的注释,心里一定在想,这是什么鬼!再仔细看,红框标记的代码行就是我们要修改的了。修改成自己的Vagrant Project版本信息。我的Project信息仅供参考哈。
需要注意的是:
1.hostname: 指虚拟机用户名。
2.synced_folder: Host主机与虚拟机锁挂载的同步目录,前者是Host主机上的目录,必须真实存在;后者在虚拟机创建之后会自动创建。
3.network:网络配置选项,可以配置虚拟机的IP,以及与Host主机的端口映射。
4.provision:指定运行的文件,可以在虚拟机创建好之后自动运行脚本安装所需的环境,该文件必须存在Host主机上真实存在。可以自己动手配一个,也可以暂时将这一行注掉,后续在Jenkins环境里配置。
Step 3:Up and Connect Vagrant
(1). 启动Vagrant
配置完毕,是时候启动你的第一个Vagrant Project啦。
命令行:
$ vagrant up
……这时候,只需要作一位静静等待的女子,等待vagrant启动完成.
启动完成之后,你就有一个Ubuntu虚拟机在运行啦。但实际上呢,你什么都看不到。因为Vagrant运行虚拟机时,没有UI显示哦。那么怎么来证明你的虚拟机已经在运行了呢?SSH你的机器,也就是连接,也可以理解为登录你的虚拟机。
(2).Connects to machine via SSH
命令行:
$ vagrant ssh
Step 4:Install Jenkins
Setup好Ubuntu虚拟机,我们就有了自己的CI服务器,可以安装Jenkins啦。
URL:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
命令行:
$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
$ sudo apt-get update
$ sudo apt-get install jenkins
安装完毕之后,它会行启动,但偶尔也会失败,所以要check一下Jenkins的状态。
命令行:$ sudo service jenkins status
如果未能正常启动,则需要手动启动。
命令行:$ sudo service jenkins start
此刻为止呢,我们的CI环境就搭建好啦。你可能会说,都是命令行的操作,我什么也看不到。别急别急,我们一起来验收一下胜利的果实吧。
Step 5. 成果验收
(1).在chrome访问:localhost:8080
* 注意这里的端口必须是你自己在Vagrantfile里配置的端口号哦。
(2).输入密码:
这个密码运行的Server上,也就是之前使用Vagrant启动的Ubuntu的虚拟机上.
先在命令行获取密码:$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
然后chrome界面输入密码登录。
(3)选择安装合适的plugin (我这里选择默认安装)
(4). 等待安装
(5). 创建admin:
安装完毕,创建一个账号
(5).登录jenkins
登录Jenkins,这时候你就能看到自己的Jenkins环境啦。
哇哈哈,你的第一个CI环境搭建成功啦,有木有很赞?
附上SJ童鞋的个人博客,更多精彩内容哦:http://blog.sjyuan.cc/dojo/ci/basics
开篇的配图是一朋友在普吉岛拍的,据说在那里依然可见大自然的魅力,随手一拍便是幅画。送给大家,欣赏下久违了的蓝天白云,抚慰一下淹没在雾霾中的心灵......