前面是在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文件。