这个星期得主要任务是在mac下配置linux虚拟机和jenkins,由于任务的拆分,我的主要任务是配置jenkins。首先大概讲一下虚拟机的配置。
下载virtualbox和ubuntu的系统镜像,virtual box安装,基本是打开后下一步下一步操作的,安装后点击new,添加名称和系统,按实际填写即可,continue选择ram,我选择的是2048M,硬盘选择的是12G的,其他的按默认,完成后一般需要重启,重启后,选择刚才创建的系统,点击start即可开启,虚拟机。
虚拟机开启后,如下图,首次安装还要选择语言,选择英文的会比较好一点。
下面主要讲一下,在虚拟机上配置一些web工具。
首先配置mac和虚拟机上的共享。
sudo mkdir chmod -m 755 /mnt/SharedPoint #/mnt/SharedPoint,在mnt目录下创建文件夹SharePoint作为挂在点;
然后在执行命令:
sudo mount -t vboxsf share /mut/SharedPoint
第一句是建立文件夹SharedPoint在虚拟机/mnt下,
第二个句子执行前,要先选择虚拟机中的device,再选择insert guest additions cd image,否则vboxsf会找不到。
安装数据库mysql,输入mysql,会有提示,提示这句话,sudo apt-get install mysql-server,你输入这行命令可以帮你安装mysql,过程中要设置mysql的用户名和密码。
安装git,gradle ssh,只需在terminal打出git或gradle,ssh,然后会有提示,如mysql,告诉你怎么安装git和terminal,并帮你配置好配置文件,也只需一行命令即可。
配置java-jdk:
在http://www.wikihow.com/Install-Oracle-Java-JDK-on-Ubuntu-Linux上下载jdk,我下载的是jdk-8u45-linux-x64.tar.gz 。打开terminal, tar -xf jdk-8u45-linux-x64.tar.gz 命令进行解压,接着再使用命令 sudo cp -r jdk1.8.0_45/ /usr/lib/ 把jdkcopy在/usr/lib目录下。需要输入自己虚拟机的密码。此时使用 ls /usr/lib/jdk1.8.0_45 命令便可查看到已经成功拷贝过来了。
使用命令 sudo gedit /etc/profile 打开 /etc/profile 文件,然后在文件末尾添加如下三行:
如果正确按照前两步进行,上面三行可以直接 copy 过去
最后 Ctrl + s 保存。
输入命令 sudo source /etc/profile 使其生效,然后再使用命令 java -version,如果查看到 java 版本信息,即表示成功安装了。但是,此时只有执行过 sudo source /etc/profile 命令的终端所在的线程才可以使用 Java 环境变量,而其他线程则还不可以。重启之后则都可以了。
配置tomcat,官方网站下载最新的tomcat:
http://tomcat.apache.org/download-80.cgi
解压tomcat 8,用下面的命令(我下载的是tar.gz格式的):
tar -zxvf apache-tomcat-8.0.12.tar.gz
解压tomcat 8,用下面的命令(我下载的是tar.gz格式的):
tar -zxvf apache-tomcat-8.0.12.tar.gz
开始配置tomcat:
复制解压后的文件到 /opt 目录
sudo cp -r apache-tomcat-8.0.12 /opt
进入 /opt/apache-tomcat-8.0.12 目录
cd /opt/apache-tomcat-8.0.12
打开启动的脚本文件
sudo vi ./bin/startup.sh(不熟悉vi的,可以用gedit打开:sudo gedit./bin/startup.sh)
拓展:vi编辑器在linux的版本中几乎都有,但是gedit不一定有,如果需要,就得自己安装:
sudo apt-get install gedit
打开startup.sh文件后,添加jdk和jre:
JAVA_HOME=/usr/java/jdk1.8.0_20
JRE_HOME=
JAVAHOME/jrePATH=
PATH:
JAVAHOME/bin:
JRE_HOME
CLASSPATH=.:
JREHOME/lib/rt.jar:
JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
TOMCAT_HOME=/opt/apache-tomcat-8.0.12
JAVA_HOME和JRE_HOME 是已经配置好 JDK和JRE 目录
同样的做法,新建shutdown.sh,一模一样的配置。以后可以在apache-romcat-7.0.68目录下,用sudo startup.sh开启tomcat,用shutdown.sh关闭tomcat。
配置虚拟机和mac的映射,使mac可以访问虚拟机的网页,并可以通过终端输入命令。
点击virtaulbox的settings,选择Network,点击下面的port Forwarding,打开后可如下图配置,Host Port是mac的访问网址,Guest Port是ubuntu的访问网址,ssh是设置终端可访问的。在mac终端输入,ssh -p 2222 xxx@127.0.0.1就可以控制虚拟机终端。
下面讲一下jenkins的配置,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。
首先下载官方的jenkins.war,把jenkins.war放在共享文件夹中,因为虚拟机网速慢,因此我就在mac下载,再共享给虚拟机使用的。
启动jenkins,首先保证系统中已经安装了jdk,最好是jdk1.5以上。
启动方法,切换到jenkins.war存放的目录,输入如下命令:
$ java -jar jenkins.war
然后在浏览器中(推荐用火狐)输入localhost:8080,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins。我用的是百度百科推荐的第一种方法。顺便说一句,Mac上配置jenkins和虚拟机操作相同
打开网页后,如图:
这里我已经新建了一个job,关于怎么新建job待会再说。
首先去Manage Jenkins中下载插件,点击Manage Jenkins,然后,选择Manager Pulgins,在available中输入想要的插件,installed中是已有的插件,每次下载插件后都要重启jenkins才会生效。因为要使用git,关键性的插件是:git plugin 和github pull request plugin,不介意的话可以把和git有关的都下了吧。单元测试要下,junit plugin和junit attachments plugin。grade可以下载gradle pulgin 。为了可以发布war包,下载Artifact Deployer Plugin,使生成的war包,可以直接放在tomcat容器中,需要Deploy to container Plugin插件。
插件下完了,然后再去设置jenkins,在manager jenkins中选择,configure system,在git pulgin中输入git的用户名和邮箱,其他默认,可以不用设置。
在jenkins主页,点击new item,可以选择自由风格的项目。
然后配置项目信息,Source Code Management中选择git或其他版本管理工具,cvs是默认就有的,无需下载插件。点击git后在Repository URL中输入你的项目在git上的地址。branches选择分支,默认master。Build Triggers中选择,Build when a change is pushed to GitHub,这样当有文件推送到你的git仓库时,会自动构建。选择Poll SCM,就是每隔多长时间或者每天的什么时候,每周的什么时候自动构建,点击右边的问号,会有书写提示,如图:
这样的设置是每2分钟构建一次。
在add build step,选择构建时的操作,选择execute shell,可以直接输入,grade命令,前提是装了grade插件,也可以选择invoke grade script,在switches中输入gradle后面的命令。
在 add post-build action中选择publish junit test result report即可在jenkins主页面中生成test report。test report xmls中写入你生成的test xml的地址,所以你一定要先运行,gradle test,先生成test.xml,如图地址是我生成的项目的xml地址。
add post-build action表示构建后执行的操作。在add post-build action中选择archive the artefacts,再打开的选项中输入你想要发布的文件,我想要把war放在jenkins的页面上,就输入war的地址。如下图:
在add post-build action中选择deploy war/ear to a container。
在war/ear files中输入文件地址。content path中是你tomcat的content.xml的content-path地址,manager-username和manager-password也是要在web.xml中设置的。具体设置如下,进入tomcat目录,进入conf目录,打开tomcat-users.xml,在role那行加入新的role,rolename=manager-gui和rolename=manager-script是使用这个插件要加入的,否则无法打开,是根据网页提示来的,具体也不清楚含义,我们的用户名和密码都设置为tomcat,如图:
同样的地方,打开context.xml,在manager-name那里找出你的context-path的默认路径,在jenkins的context-path中输入即可,由于我的项目名称过长,我就更改了context-path的名称,这样每次war包放在tomcat的webapp下时就会自动改名称context-path的名称,并且访问的url路径就是tomcat地址加context-path的路径。如图:
最后我在servlet.xml中更改了项目的访问路径,把端口号改为8888,这样项目和jenkins的访问地址就可以区分开,另外大家应该注意到前面,我做映射的时候把ubuntu的8888映射过去了。
这样所有的文件路径都配置好了,你只需要,点击build-now就可以把git上的文件同步到jenkins中,并且执行gradle命令,build时一定要开启tomcat,否则最后一个插件会报错。build完后,在网页里输入地址即可访问。
jenkins build成功后如图:
如果你想把gradle test和war包放在一个job,使用一个新的job来每次把项目的war包放在tomcat里面,这样你每次只需build now这个新的job,就可以在浏览器中运行项目,无需从gradle命令开始运行。命令全放在一个job运行会非常的慢。那么怎么做呢,只需在原有基础上下载并安装Copy Artifact Plugin插件,删掉原有job中deploy plugin配置部分。因为他会在新的job中配置。一定要保留archive the artefacts的配置,因为他相当于把你的job结果进行了存档。新建一个job,new job -> build a free-style software project。然后配置job具体信息。如图:
两个job
选择The build is parameterized->build selector for copy artifact
add build step->copy artefacts from author project
add post build action,和之前一样。
点击build parameters 然后输入shopping build成功的id即可运行。既35可以根据需要更改。
最后讲一下常用的命令,ps aux|grep java查看java进程。 kill -9 进程号,关掉进程。ps aux|grep tomcat 查看tomcat进程,在tomcat目录下vi catalina.out 查看tomcat的执行时的日志信息。
tomcat目录下,cd logs,vi localhost.2014-04-14.log,查看日志信息。
sudo rm -rf 文件名,删除文件。mysql -u root -p,打开mysql。sudo chmod 755 文件名,更改文件的读写权限,代表对user来说可读可写可执行,如果是sudo chmod 777 文件名 ,代表对所有用户可读可写可执行。
另外可以把虚拟机镜像export生成ova文件,然后另一个人import ova文件,就可以使用export的人的虚拟机了。