浅尝CI 之 搭建第一个CI环境


昨天稀稀拉拉飘了几瓣雪,接着又刮风,早晨起来,虽不见蓝天白云,但总算能擦亮眼睛看到远处的你了......

雾霾迷漫的岁月,且行且珍惜啊,我不忘分享,你不忘学习,每天进步一点点。

昨天分享了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


开篇的配图是一朋友在普吉岛拍的,据说在那里依然可见大自然的魅力,随手一拍便是幅画。送给大家,欣赏下久违了的蓝天白云,抚慰一下淹没在雾霾中的心灵......

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值