首页 > 技术文章 > jenkins自动化部署项目1--下载安装启动(linux)

yy-cola 2018-08-16 15:50 原文

前面是在windows上搭建jenkins环境,最近有同事要我帮忙在linux上搭建一套,因此在此记录下过程。

因为jenkins.msi只能在windows上运行安装,因此在linux上安装jenkins有所不同。

下载地址:https://jenkins.io/download/

1.安装java环境,jdk7或者jdk8

2.安装jenkins:

官网上一种方法是直接命令行下载安装见: https://pkg.jenkins.io/redhat-stable/

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

但是我尝试之后到第三步就报错下载失败,

Error downloading packages:
  jenkins-2.121.3-1.1.noarch: [Errno 256] No more mirrors to try.

因此放弃这种方式,直接下载rpm包:jenkins-2.121.3-1.1.noarch.rpm

  • 执行命令安装:
sudo rpm -ih jenkins-2.121.3-1.1.noarch.rpm 
[root@localhost soft]# ls
jenkins-2.121.3-1.1.noarch.rpm  project
[root@localhost soft]# sudo rpm -ih jenkins-2.121.3-1.1.noarch.rpm 
################################# [100%]
正在升级/安装...
################################# [100%]
[root@localhost soft]# 
  • 查看jenkins被安装路径的2种方法:
 whereis jenkins
rpm -ql jenkins
[root@localhost soft]# whereis jenkins
jenkins: /usr/lib/jenkins
[root@localhost soft]#
  •  启动jenkins:
sudo service jenkins start
#重启
service jenkins restart
[root@localhost jenkins]# sudo service jenkins start
Starting jenkins (via systemctl):                          [  确定  ]
[root@localhost jenkins]# netstat -nlp | grep 6666
tcp6       0      0 :::6666                 :::*                    LISTEN      15623/java          
[root@localhost jenkins]# 

这里需要注意的是,jenkins默认端口为8080,我之前安装的tomocat也是,如果8080已经被占用,执行这个命令不会报错,但是服务其实没有启动成功,需要先更改端口

 这里我将端口改为了6666

 

这时发现服务启动了,但是在windows上无法访问jenkins,查阅资料发现有可能是防火墙造成的,telnet xx.xx.xx.xx 6666发现失败

 

这个时候再linux上查看防火墙是否开启状态:参考 https://www.cnblogs.com/CUI-S/p/9191402.html

 systemctl status firewalld.service
[root@localhost ~]# service iptables status
Redirecting to /bin/systemctl status  iptables.service
Unit iptables.service could not be found.
[root@localhost ~]# cat /proc/version
Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
[root@localhost ~]#  systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2018-07-26 09:35:15 CST; 3 weeks 0 days ago
     Docs: man:firewalld(1)
 Main PID: 667 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─667 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

7月 26 09:35:12 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
7月 26 09:35:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
[root@localhost ~]# 

发现防火墙开启着,这时查看防火墙规则,发现除了3306,其他都没有配置

vi /etc/sysconfig/iptables
[root@localhost ~]# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
~                                                                                                      
~                                                                       

可以参考链接中的方法二新增入站规则,我这边因为对环境没要求,选择直接关闭防火墙

systemctl stop firewalld.service 

此时发现部署在linux上的其他服务比如tomcat可以访问了,但是jenkins还是不可以!

#如果系统没安装tcpdump则需要先安装:https://www.cnblogs.com/cipc/articles/2428282.html
yum list tcpdump
yum install tcpdump
tcpdump -nni eth0 port 6666

使用这个命令抓包,发现用谷歌浏览器访问jenkins,抓取不到任何东西,因此怀疑是浏览器的问题,试了下ie果然可以,又试了下火狐,原来是端口的问题。换了个端口,所有浏览器都可以正常访问了

 

 3.第一次访问jenkins:

  • 安装插件:

 第一次访问,界面出现【 该jenkins实例似乎已经离线 】查阅资料,发现有两种解决方案:

(我个人两种都尝试过。第一种成功了,但是之后安装推荐的插件还是全部失败。找运维帮忙看过,可能是网络的问题,因此我选择了继续下一步。插件后面在按需安装)

#下面2种页面操作最终修改的其实是这个文件下的url,该url就是下载插件的镜像
/var/lib/jenkins/hudson.model.UpdateCenter.xml
#可供选择的插件镜像源:http://mirrors.jenkins-ci.org/status.html

方案一:

#浏览器输入这个链接ip port为jenkins的
http://ip:port/pluginManager/advanced
#页面最底下有个【升级站点】,把链接改为如下之后提交,重启jenkins
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

方案二:

#浏览器输入这个链接ip port为jenkins的
http://ip:port/pluginManager/advanced
#页面最底下有个【升级站点】,把链接中的https改成http的就好http://updates.jenkins.io/update-center.json。 重启jenkins
  • 新建第一个用户

 

 

windows上exe和msi 异同

1)点击Setup.exe文件来实现安装:

  Setup.exe是一个安装引导程序。它是安装工程通过MSBuild创建的,其中包含了一个XML文件,定义了应用程序所需要的系统必备安装包信息。Setup.exe程序会检查这些系统必备安装包是否需要被下载和安装,如果需要,它就会先安装那些系统必备程序。当我们运行它的时候,它会读取setup.ini来确定安装所需要的配置并开始安装流程。

  如果这个setup.exe是在Visual Studio 2005中生成的,那么用户就必须有管理员权限才能运行它。我们可以看见在setup.exe的图标上有一个防护盾,这就意味着这个程序只有管理员才能运行它。如果这个setup.exe是在Visual Studio 2008中生成的,那么用户不一定需要有管理员的权限就能执行它,当有一些特定操作需要管理员的权限时,系统会显示UAC对话框要求提升权限。这类Setup.exe的图标上不会显示防护盾。

  2)点击setup.msi来进行安装。

  Setup.msi是一个Windows Installer包。和setup.exe不一样,直接运行MSI安装包就不会自动安装自定义系统必备。它只会安装主应用程序。在安装项目的属性对话框中修改输出文件的名字,我们可以自定义MSI包的文件名。当我们“运行”它的时候,其实是Windows Installer在执行MSI包定义的各项操作。因此我们需要安装Windows Installer的正确版本才能运行setup.msi。我们也可以使用msiexec命令去安装setup.msi文件。

推荐阅读