当前位置: 首页 > Linux

如何搭建Jenkins主机

时间:2023-04-07 01:24:28 Linux

本文档写于2018.10感谢您的耐心阅读Jenkins简介Jenkins是目前比较流行的开源软件项目。软件需要在java环境中运行,可以帮助用户实现可持续的软件项目重复部署。在jenkins主机中,除了jenkins软件本身,需要配置的工具组件有:组件或工具的名称或工具的作用oraclejava为jenkins提供必要的运行环境python2及其fabric模块将为项目部署和启动脚本提供关键支持nginx将80端口的访问请求转发到8080端口。git将托管在gitlab或github上的项目源代码克隆到jenkins主机。宿主机中的jenkins用户和用户组信息如下jenkins:x:115:122:Jenkins,,,:/var/lib/jenkins:/bin/bash其中:jenkins宿主机中的用户名为jenkinsxpassword占位符,真实用户密码在/etc/shadow文件中115用户uid号(数字小于1000,说明jenkins是系统用户)122用户所属组的gid号/var/lib/jenkinsjenkins用户家目录为/var/lib/jenkins/bin/bash登录jenkins时,使用bash作为终端工具搭建Jenkins宿主系统环境:Ubuntu16.04宿主机性能:4核/8GBmemory/100GBsummer查看主机summer中的java环境:~$java-verison这条命令有3种可能的回显值:(1)oraclejava环境Java版本已经安装“1.8.0_181”Java(TM)SERuntimeEnvironment(build1.8.0_181-b13)JavaHotSpot(TM)64-BitServerVM(build25.181-b13,mixedmode)(2)OpenjdkenvironmentOpenjdkversion"1.8hasbeeninstalled.0_181"OpenJDKRuntimeEnvironment(构建1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13)OpenJDK64位服务erVM(build25.181-b13,mixedmode)(3)没有安装任何java环境程序'java'可以在以下包中找到:*default-jre*gcj-5-jre-headless*openjdk-8-jre-headless*gcj-4.8-jre-headless*gcj-4.9-jre-headless*openjdk-9-jre-headlessTry:sudoaptinstall根据检查情况选择性执行本步命令确认说明宿主成功安装oraclejava环境summer:~$apt-getremove--purgeopenjdk*summer:~$sudoadd-apt-repositoryppa:webupd8team/javasummer:~$sudoapt-getupdatesummer:~$sudoapt-getinstalloracle-java8-installer安装jenkins软件summer:~$wget-q-O-https://pkg.jenkins.io/debian-stable/jenkins.io.key|sudoapt-keyadd-summer:~$sudovim/etc/apt/sources.listsummer:~$sudoapt-getupdatesummer:~$sudoapt-getinstalljenkins安装nginx软件,写配置文件转发请求端口80到端口8080夏季:~$sudoapt-getinstallnginxsummer:~$sudorm-f/etc/nginx/sites-available/defaultsummer:~$sudorm-f/etc/nginx/sites-enabled/defaultsummer:~$sudovim/etc/nginx/sites-available/jenkinssummer:~$sudoln-s/etc/nginx/sites-available/jenkins/etc/nginx/sites-enbaled/启动nginx和jenkins服务summer的进程:~$sudosystemctlenablenginx.service#将nginx.service设置为在夏季开机时自动启动:~$sudosystemctlenablejenkins.service#将jenkins.service设置为在夏季开机时自动启动:~$sudosystemctlrestartnginx.service#重启nginx.servicesummer:~$sudosystemctlrestartjenkins.service#重启jenkins.service访问jenkins主机ip地址,首次登录jenkins网站解锁,打开jenkins中的/var/lib/jenkins/secrets/initialAdminPassword文件主机,获取密码,完成解锁。选择installsuggestedplugins后,jenkins网站会自行安装标准插件。设置jenkins网站的管理员账号。建议将账户信息保存在主机的~/.jenkins文件中。安装管理python模块summer所需的pip工具:~$sudoapt-getinstallpython-pip#安装后的pip工具版本比较低,需要升级summer:~$sudopipinstallpip#安装后升级后,pip工具会出现执行错误summer:~$sudovim/usr/bin/pip#修改pip工具summer的执行文件:~$sudovim~/.pip/pip.conf#指定国内pip工具summer的python模块镜像源:~$sudopipinstallFabric==1.14.0#安装指定版本的fabric模块,安装git工具,制作密钥对,然后将私钥id_rsa放在jenkins用户summer的.ssh目录:~$sudoapt-getinstallgitsummer:~$ssh-keygensummer:~$sudomkdir-p/var/lib/jenkins/.ssh#在jenkins用户家创建一个.ssh目录目录summer:~$sudocp/home/summer/.ssh/id_rsa/var/lib/jenkins/.ssh/summer:~$sudochown-Rjenkins:jenkins/var/lib/jenkins/.ssh/summer:~$sudochmod700/var/lib/jenkins/.ssh使用admin用户登录gitlab网站,配置gitlab平台的deploy-key。在deploy-key配置界面,为deploy-key指定一个名称,将/home/summer/.ssh/id_rsa.pub中的公钥信息填写到对应的deploy-key位置。配置文件说明文件1:/etc/apt/sources.list###这个文件是Ubuntu16.04的apt-get源码配置文件debhttp://cn.archive.ubuntu.com/ubuntu/xenialuniversedebhttp://cn.archive.ubuntu.com/ubuntu/xenial-updatesuniversedebhttp://cn.archive.ubuntu.com/ubuntu/xenialmultiversedebhttp://cn.archive.ubuntu.com/ubuntu/xenial-updatesmultiversedebhttp://cn.archive.ubuntu.com/ubuntu/xenial-backportsmainrestricteduniversemultiversedebhttp://security.ubuntu.com/ubuntuxenial-securitymainrestricteddebhttp://security.ubuntu.com/ubuntuxenial-securityuniversedebhttp://security.ubuntu.com/ubuntuxenial-securitymultiverse###jenkins安装包作为apt-getsourcedeb附加到文件末尾http://cn.archive.ubuntu。com/ubuntu/xenialuniversedebhttp://cn.archive.ubuntu.com/ubuntu/xenial-updatesuniversedebhttp://cn.archive.ubuntu.com/ubuntu/xenialmultiversedebhttp://cn.archive.ubuntu.com/ubuntu/xenial-updatesmultiversedebhttp://cn.archive.ubuntu.com/ubuntu/xenial-backports主要限制duniversemultiversedebhttp://security.ubuntu.com/ubuntuxenial-securitymainrestricteddebhttp://security.ubuntu.com/ubuntuxenial-securityuniversedebhttp://security.ubuntu.com/ubuntuxenial-securitymultiversedebhttps://pkg.jenkins.io/debian-stablebinary/文件2:/etc/nginx/sites-available/jenkins#这是新建的文件,用于转发80端口的访问请求到8080端口(jenkins默认端口)server{listen80;位置/{proxy_passhttp://127.0.0.1:8080;}}文件三:/usr/bin/pip#!/usr/bin/python#这个python文件就是原来的pip工具importsysfrompipimportmainif__name__=='__main__':sys.exit(main())#!/usr/bin/python#这个python文件是修改后的pip工具执行文件importsysfrompip._internalimportmainif__name__=='__main__':sys.exit(main())文件4:/home/summer/.pip/pip.conf#这个配置文件是新建一个文件,用来配置国内的pip镜像源(我们配置的是豆瓣的pip镜像源)[global]index-url=http://pypi.douban.com/simple[install]trusted-host=pypi.douban.com