Jenkins 部署
一、jenkins安装
ava 环境配置: root@jenkins:/usr/local/src# tar xvf jdk-8u192-linux-x64.tar.gz root@jenkins:/usr/local/src# ln -sv /usr/local/src/jdk1.8.0_192/ /usr/local/jdk root@jenkins:/usr/local/src# ln -sv /usr/local/jdk/bin/java /usr/bin/ #java 命令软连接 root@jenkins:/usr/local/src# vim /etc/profile export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar root@jenkins:/usr/local/src# source /etc/profile root@jenkins:/usr/local/src# java -version java version "1.8.0_192" Java(TM) SE Runtime Environment (build 1.8.0_192-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode) 1.Docker方式 docker run -u root --rm -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean 2.rpm和deb方式(推荐) https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.319.3-1.1.noarch.rpm yum install jenkins-2.319.3-1.1.noarch.rpm 3.tomcat或jar(war)方式 3.1.war包方式 java \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=12345 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -Djava.rmi.server.hostname="192.168.8.2 " \ -jar jenkins-2.138.3.war & 可选启动参数: JENKINS_JAVA_OPTIONS="--server -Xms1g -Xmx1g -Xss512k -Xmn1g -XX:CMSInitiatingOccupancyFraction=65 -XX:+UseFastAccessorMethods -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=10 -XX:NewSize=2048M -XX:MaxNewSize=2048M -XX:NewRatio=2 -XX:PermSize=128m -XX:MaxPermSize=512m -XX:CMSFullGCsBeforeCompaction=5 -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -Djava.awt.headless=true 3.2.tomcat方式 tomcat方式 [root@localhost7B webapps]#cp jenkins-2.204.4.war /usr/local/tomcat/webapps [root@localhost7B webapps]#unzip jenkins-2.204.4.war -d jenkins [root@localhost7B tomcat]# vim conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false"> 测试:192.168.80.110:8080/jenkins
二、配置文件说明:
root@localhost7B ~]# rpm -ql jenkins /etc/init.d/jenkins /etc/logrotate.d/jenkins /etc/sysconfig/jenkins #配置文件 /usr/lib/jenkins /usr/lib/jenkins/jenkins.war /usr/sbin/rcjenkins /var/cache/jenkins /var/lib/jenkins #日志 插件 /var/log/jenkins /var/cache/jenkin/hudson.plugins.emailext.ExtendedEmailPublisher.xml 插件更新地址 /var/cache/jenkin/ /var/cache/jenkin/plugins 插件 /var/lib/jenkins/secrets/ 第一次启动初始化密码 如果显示jenkins已离线,将以下文件中的更新检查地址改成国内清华大学地址,然后重启jenkins即可: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,注意,里面的URL地址,大部分是外网,可能需要做nginx代理。 [root@localhost7B ~]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites> 2.配置文件说明: [root@localhost7B ~]# grep -v "#" /etc/sysconfig/jenkins | grep -v "^$" JENKINS_HOME="/var/lib/jenkins" #jenkins家目录,保存着其构建的项目、安装的插件 JENKINS_JAVA_CMD="" # JAVA环境变量,如果提示找不到JAVA路径,需要配置,例如:"$JAVA_HOME/bin/java" JENKINS_USER="jenkins" # 默认 "jenkins" 建议修改为root,避免将来部署代码到后端服务因为权限问题导致部署失败 JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true" JENKINS_PORT="8080" JENKINS_LISTEN_ADDRESS="" JENKINS_HTTPS_PORT="" JENKINS_HTTPS_KEYSTORE="" JENKINS_HTTPS_KEYSTORE_PASSWORD="" JENKINS_HTTPS_LISTEN_ADDRESS="" JENKINS_HTTP2_PORT="" JENKINS_HTTP2_LISTEN_ADDRESS="" JENKINS_DEBUG_LEVEL="5" JENKINS_ENABLE_ACCESS_LOG="no" JENKINS_HANDLER_MAX="100" JENKINS_HANDLER_IDLE="20" JENKINS_EXTRA_LIB_FOLDER="" JENKINS_ARGS=""
三、配置 jenkins 多用户权限授权管理
角色分类 Global roles(全局角色):管理员等高级用户可以创建基于全局的角色 Item roles(项目角色):针对某个或者某些项目的角色 Node roles(节点角色):节点相关的权限 1.安装Role-based插件,基于角色的认证策略(Manage Jenkins--> plugin manage)
2.Manage Jenkins--> Configure Global Security中的授权策略中启用 Role-Based Strategy点击保存,会出现Manage and Assign Roles模块。
3.创建项目linux39-app1 magedu-app1
4.在Manage Jenkins-->Manage User 创建用户:zzhz-user zjol-user
5.创建全局角色,并设置权限 Manage Jenkins--> Manage and Assign Roles--> Manage Roles
6.创建item角色,并匹配项目和设置权限,Manage Jenkins--> Manage and Assign Roles--> Manage Roles
7.设置用户与全局角色关联。 8.设置用户与item角色关联。Manage Jenkins--> Manage and Assign Roles--> Assign Roles
9.使用zzhz-user登录查看。