Jenkins Jenkins is an automation engine with an

  • Slides: 47
Download presentation

什么是Jenkins • Jenkins is an automation engine with an unparalleled plugin ecosystem to support

什么是Jenkins • Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery. • 持续集成、自动测试、持续部署的超级引擎,支持自定义 具集、 多种交付通道。 第 9 页

YUM安装 Ø安装依赖 yum install java-1. 8. 0 -openjdk-devel Ø安装yum源 wget -O /etc/yum. repos. d/jenkins.

YUM安装 Ø安装依赖 yum install java-1. 8. 0 -openjdk-devel Ø安装yum源 wget -O /etc/yum. repos. d/jenkins. repo http: //pkg. jenkins. io/redhat-stable/jenkins. repo rpm --import http: //pkg. jenkins. io/redhat/jenkins. io. key or rpm --import http: //pkg. jenkins-ci. org/redhat/jenkins-ci. org. key Ø安装Jenkins yum –y install jenkins service jenkins start ckconfig Jenkins on 第 10 页

RPM安装 Ø下载地址 https: //pkg. jenkins. io/redhat-stable/ ØRPM安装 rpm –ivh jenkins-2. 3 -1. 1. noarch.

RPM安装 Ø下载地址 https: //pkg. jenkins. io/redhat-stable/ ØRPM安装 rpm –ivh jenkins-2. 3 -1. 1. noarch. rpm service jenkins start ckconfig Jenkins on 第 11 页

访问Jenkins Ø访问Jenkins http: //192. 168. 47. 174: 8080 Ø 查找admin默认密码 cat /var/lib/jenkins/secrets/initial. Admin. Password

访问Jenkins Ø访问Jenkins http: //192. 168. 47. 174: 8080 Ø 查找admin默认密码 cat /var/lib/jenkins/secrets/initial. Admin. Password Ø 输入密码 第 12 页

默认Plugin Folders Plugin OWASP Markup Formatter Plugin build timeout plugin Credentials Binding Plugin Timestamper

默认Plugin Folders Plugin OWASP Markup Formatter Plugin build timeout plugin Credentials Binding Plugin Timestamper Workspace Cleanup Plugin Ant Plugin Gradle Plugin Pipeline 第 14 页 Git. Hub Organization Folder Plugin Pipeline: Stage View Plugin Git plugin Subversion Plug-in SSH Slaves plugin Matrix Authorization Strategy Plugin PAM Authentication plugin LDAP Plugin Email Extension Plugin Mailer Plugin

常用Plugin • SSH plugin • Git. Lab Plugin • Pipeline • Git plugin •

常用Plugin • SSH plugin • Git. Lab Plugin • Pipeline • Git plugin • Git Parameter Plug-In • Deploy Plugin • Maven Integration plugin • Role-based Authorization Strategy • Html reports • performance plugin • jmeter-maven • Cobertura • Sonar. Qube • Blue Ocean 第 15 页

覆盖插件目录 Ø 解压备份plugin. tar. gz mv plugins /var/lib/jenkins/ chown -R jenkins plugins/ service jenkins

覆盖插件目录 Ø 解压备份plugin. tar. gz mv plugins /var/lib/jenkins/ chown -R jenkins plugins/ service jenkins restart 第 17 页

镜像管理 Ø全部镜像 http: //mirrors. jenkins-ci. org/status. html Ø更换镜像 http: //updates. jenkins-ci. org/update-center. json https:

镜像管理 Ø全部镜像 http: //mirrors. jenkins-ci. org/status. html Ø更换镜像 http: //updates. jenkins-ci. org/update-center. json https: //mirrors. tuna. tsinghua. edu. cn/ http: //mirror. esuni. jp/jenkins/update-center. json https: //mirrors. tuna. tsinghua. edu. cn/jenkins/update-center. json 第 18 页

Jenkins目录 Ø/var/lib/jenkins 主目录 Ø/etc/init. d/jenkins 启动文件 Ø/var/cache/Jenkins 程序文件 Ø/var/log/Jenkins 日志文件 第 19 页

Jenkins目录 Ø/var/lib/jenkins 主目录 Ø/etc/init. d/jenkins 启动文件 Ø/var/cache/Jenkins 程序文件 Ø/var/log/Jenkins 日志文件 第 19 页

用户权限 Ø 修改/etc/init. d/Jenkins Ø将用户修改为root,可以调用root 具 Ø 106行,113行 Ø修改启动端口 85行,$JENKINS_PORT Øsystemctl daemon-reload Øservice jenkins

用户权限 Ø 修改/etc/init. d/Jenkins Ø将用户修改为root,可以调用root 具 Ø 106行,113行 Ø修改启动端口 85行,$JENKINS_PORT Øsystemctl daemon-reload Øservice jenkins restart 第 20 页

系统设置 • 作目录设置 • Maven项目配置 • 设置系统JDK ANT MAVEN • Jenkins Location • 邮件通知

系统设置 • 作目录设置 • Maven项目配置 • 设置系统JDK ANT MAVEN • Jenkins Location • 邮件通知 • Configure Global Security 第 23 页

安装MAVEN • Wget http: //mirrors. cnnic. cn/apache/maven 3/3. 3. 9/binaries/apache-maven-3. 3. 9 -bin. tar.

安装MAVEN • Wget http: //mirrors. cnnic. cn/apache/maven 3/3. 3. 9/binaries/apache-maven-3. 3. 9 -bin. tar. gz • tar zxvf apache-maven-3. 3. 9 -bin. tar. gz • 配置环境变量 vim /etc/profile export PATH=$PATH: /root/apache-maven-3. 3. 9/bin • 测试 mvn -v 第 31 页

MAVEN命令 • 1. 创建Maven的普通java项目: mvn archetype: create -Dgroup. Id=package. Name -Dartifact. Id=project. Name •

MAVEN命令 • 1. 创建Maven的普通java项目: mvn archetype: create -Dgroup. Id=package. Name -Dartifact. Id=project. Name • 2. 创建Maven的Web项目: mvn archetype: create • -Dgroup. Id=package. Name • -Dartifact. Id=webapp. Name • -Darchetype. Artifact. Id=maven-archetype-webapp • 3. 清除后再编译 mvn clean install 第 33 页

配置系统MAVEN Ø系统管理> Global Tool Configuration Ø新增maven Ø取消自动安装 Ø填写maven实际安装路径 /data/server/apache-maven-3. 3. 9/ 第 34 页

配置系统MAVEN Ø系统管理> Global Tool Configuration Ø新增maven Ø取消自动安装 Ø填写maven实际安装路径 /data/server/apache-maven-3. 3. 9/ 第 34 页

新建maven项目 Ø指定源码位置(git或svn) Ø指定build选项 clean install -Dmaven. test. skip=true Ø指定execute shell java -jar target/testweb-0. 0.

新建maven项目 Ø指定源码位置(git或svn) Ø指定build选项 clean install -Dmaven. test. skip=true Ø指定execute shell java -jar target/testweb-0. 0. 1 -SNAPSHOT. jar 第 35 页

远程管理 ØSSH plugin ØShell ssh Øansible 第 39 页

远程管理 ØSSH plugin ØShell ssh Øansible 第 39 页

SSH plugin Ø安装ssh plugin插件 Ø系统管理>SSH remote hosts 增加主机信息 Ø在项目中选择execute shell scripts on remote host

SSH plugin Ø安装ssh plugin插件 Ø系统管理>SSH remote hosts 增加主机信息 Ø在项目中选择execute shell scripts on remote host using ssh 第 40 页

Shell SSH Ø制作jenkins主机免密登录 Ø直接在 execute shell界面执行ssh命令 Ø或在脚本中接调用ssh语句 ssh root@192. 168. 47. 175 “ifconfig” scp

Shell SSH Ø制作jenkins主机免密登录 Ø直接在 execute shell界面执行ssh命令 Ø或在脚本中接调用ssh语句 ssh [email protected] 168. 47. 175 “ifconfig” scp xxx [email protected] 168. 47. 175/xxx/ 第 41 页

ansible Ø安装ansible Ø配置ansible hosts Ø配置ansible对其它机器的免密权限 Ø执行ansible 命令 第 42 页

ansible Ø安装ansible Ø配置ansible hosts Ø配置ansible对其它机器的免密权限 Ø执行ansible 命令 第 42 页

War文件部署设置 第 43 页 • 安装好Deploy Plugin插件,然后在tomcat的conf目录配置tomcat-users. xml文件, 在<tomcat-users>节点里添加如下内容: <rolename="manager-gui"/> <rolename="manager-script"/> <rolename="manager-jmx"/> <rolename="manager-status"/> <username="username"

War文件部署设置 第 43 页 • 安装好Deploy Plugin插件,然后在tomcat的conf目录配置tomcat-users. xml文件, 在<tomcat-users>节点里添加如下内容: <rolename="manager-gui"/> <rolename="manager-script"/> <rolename="manager-jmx"/> <rolename="manager-status"/> <username="username" password="password" roles="manager-gui, managerscript, manager-jmx, manager-status"/> 引号里的username和password可以随便替换,用于部署时认证。

操作界面 • 选择Add post-build action,然后选择Deploy war/ear to a container, 如下图: 第 44 页

操作界面 • 选择Add post-build action,然后选择Deploy war/ear to a container, 如下图: 第 44 页

部署说明 • WAR/EAR files:war文件的存放位置,如:target/test. war 注意:相 对路径,target前是没有/的。 • Context path:访问时需要输入的内容,如of. Card访问时如下: http: //192. 168.

部署说明 • WAR/EAR files:war文件的存放位置,如:target/test. war 注意:相 对路径,target前是没有/的。 • Context path:访问时需要输入的内容,如of. Card访问时如下: http: //192. 168. x. x: 8080/of. Card/如果为空,默认是war包的名字。 • Container:选择你的web容器,如tomca 6. x • Manager user name:填入tomcat-users. xml配置的username内容 • Manager password:填入tomcat-users. xml配置的password内容 • Tomcat URL:填入http: //192. 168. x. x: 8080/ • Deploy on failure:构建失败依然部署,一般不选择 第 45 页