团队环境:持续集成Jenkins安装
2017-05-10
环境 #
- 服务器CentOS 7
- 服务器上已经装好JDK 1.8
- Jenkins版本2.60
Jenkins安装 #
下载安装包:
1wget https://pkg.jenkins.io/redhat/jenkins-2.60-1.1.noarch.rpm
安装:
1yum localinstall jenkins-2.60-1.1.noarch.rpm
创建JENKINS_HOME
目录:
1mkdir /home/jenkins
2chown jenkins:jenkins /home/jenkins
默认的
JENKINS_HOME
目录在/var/lib/jenkins下,因为我们服务器的数据盘挂在/home下如果Jenkins Master节点上安装了docker,并且需要jenkins构建docker相关的工作,需要将jenkins用户添加到docker用户组后,再重启一下jenkins服务:
1usermod -a -G docker jenkins
修改/etc/sysconfig/jenkins定制配置:
1vi /etc/sysconfig/jenkins
2
3
4JENKINS_HOME="/home/jenkins"
5JENKINS_JAVA_CMD="/usr/local/jdk/bin/java"
6JENKINS_PORT="8083"
启动服务:
1systemctl start jenkins
2systemctl enable jenkins
3systemctl status jenkins
浏览器中打开jenkins的地址http://server:8083
,根据页面提示输入initialAdminPassword完成初始化。
下面进入插件安装界面,可以先选择Install suggested plugins
,当前2.60版本这个选择给安装的插件如下图所示:
推荐的插件安装完成后,进入创建第一个管理员用户的界面,这里我们创建一个管理员admin。
点击左侧“系统管理”菜单进入“管理Jenkins”页面,点击“Configure Global Security”,进入Configure Global Security
页面,确认安全域设置的是Jenkins专有用户数据库。并将项目的“授权策略”选为“项目矩阵授权策略”,并将前面的创建的管理员用户admin添加到授权矩阵并授予所有权限。
安装完成!
插件安装 #
前面我们在安装Jenkins的过程中已经安装了官方建议的一些插件:
- Git plugin
- Gradle Plugin
- LDAP Plugin
- …
根据我们之前的经验还需要安装以下Plugin:
- Go Plugin
- build-name-setter
- Conditional BuildStep
- Mask Passwords Plugin
- Publish Over SSH
- ThinBackup
- Kubernetes plugin
Jenkins Node环境变量配置 #
在 系统管理 » 管理节点 » 某个节点的设置(齿轮图标) » 节点属性中添加环境变量。
全局工具配置 #
点击系统管理
-Global Tool Configuration
,进入全局工具配置页面。可以看到有如下开发构建相关的工具需要安装:
- JDK
- Git
- Gradle
- Docker
- Go
如果这些工具还没有安装,需要先安装好这些工具,然后在这个页面配置好这些工具,Jenkins在构建时将使用这些工具。
使用thinBackup备份关键配置 #
Jenkins的全局配置以及将来各个job的配置是十分重要和宝贵的,可以使用thinBackup设置一个备份策略,例如每天将这些关键的配置备份到其他目录。
在“系统管理”页面点击“ThinBackup”,进入ThinBackup插件的主页面,点击“Setting”,进入设置页面,按下图进行设置:
设置完成后,进入ThinBackup插件主页面,手动除非一次备份,确认设置的备份目录里能够产生备份文件。
集成OpenLDAP #
Jenkins集成LDAP需要使用LDAP Plugin,前面我们已经安装了这个插件,下面只要配置即可。
在Configure Global Security
中将访问控制-安全域修改为LDAP
,并根据文档LDAP Plugin配置即可。
1访问控制
2安全域 选LDAP
3 服务器 : 192.168.61.100389
4 root DN: dc=frognew,dc=com
5 User search base:ou=People
6 用户搜索过滤器:uid={0}
7 Group search base: ou=Group
8 Group search filter: 留空,默认值为(& (cn={0}) (| (objectclass=groupOfNames) (objectclass=groupOfUniqueNames) (objectclass=posixGroup)))
9 Group membership:选 Search for LDAP groups containing user
10 Group membership filte: 留空,默认值为 (| (member={0}) (uniqueMember={0}) (memberUid={1}))
11 Manager DN:cn=Manager,dc=frognew,dc=com
12 管理密码:******
13 Display Name LDAP attribute:uid
14 Email Address LDAP attribute:mail