共计 2162 个字符,预计需要花费 6 分钟才能阅读完成。
硬件要求
不论是 master 还是 slave,都要安装:
操作系统:Ubuntu 16.04 Server LTS
Docker-CE
Docker 安装方法:
根据文档:https://yq.aliyun.com/article… 安装 docker-ce
curl -fsSL https://get.docker.com | bash -s docker –mirror Aliyun
sudo usermod -aG docker $USER
我在安装的时候碰到 Jenkins 无法从 Update center 下载 metadata 的问题,经发现是 docker 的 mtu 比服务器网卡 mtu 大的问题,解决办法如下:
新建或者修改文件:/etc/docker/daemon.json,添加 mtu 的设置比如:
{
“mtu”: < 服务器网卡的 mtu>,
…
}
你可以配置 docker registry mirror,同样修改 /etc/docker/daemon.json:
{
“registry-mirrors”: [“…”],
…
}
然后重启 docker:sudo systemctl restart docker
部署 master
创建目录:mkdir $HOME/jenkins-home
启动 Jenkins:
sudo docker run \
-u root \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v $HOME/jenkins-home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
–name jenkins \
jenkinsci/blueocean
创建 ssh 密钥对:ssh-keygen
初始配置 Jenkins
浏览器访问 Jenkins:http://<jenkins-master-ip>:8080/
选择安装社区推荐插件
设置管理员用户
安全配置
配置 LDAP
如果要配置 LDAP,那么一定要记住,配置完之后不要注销。
系统管理 -> 全局安全设置,访问控制,选择 LDAP,然后根据情况配置即可。
注意配置完之后一定要 Test。
配置授权策略
系统管理 -> 全局安全设置,授权策略,项目矩阵授权策略。
打开浏览器隐私窗口,用一个账号登录,这个账号将替代当前使用的管理员账号。
下面为了方便理解,下面吧当前浏览器称为 A 窗口,隐私窗口浏览器称为 B 窗口。
回到 A 窗口,添加刚才登录的用户,如果正常添加,用户名上不会有删除线。然后在全部这一栏勾选 Administer,点击应用。
此时 A 窗口的管理员账号应该就不能做任何操作了,而且再也不能登录了。
到 B 窗口,刷新一下,继续后面的管理员动作。
下图是推荐的配置方法:
添加 Slave 节点
前期准备
准备 Slave 的机器
安装 Docker-CE
安装 openjdk:sudo apt install -y openjdk-8-jdk
新建工作目录:mkdir $HOME/jenkins-workdir
把 master 的 pub key 添加到 slave 上:把 master 的 $HOME/.ssh/id_rsa.pub 内容添加到 slave 的 $HOME/.ssh/authorized_keys 里。
到 系统管理 > 节点管理,新建节点
名字:slave-1
并发构建数:2(cpu 核数)
远程工作目录:<jenkins-workdir 的绝对路径 >
用法:尽可能的使用这个节点
启动方式:Launch agent agents via SSH
Host:<slave 的 ip>
Credentials:这个时候要创建一个平局,方法如下:
Domain,全局凭据
类型:SSH username with private key
username: <slave 的操作系统用户名 >
private key: 把 master $HOME/.ssh/id_rsa 的内容贴上去
Passphrase: <blank>
ID: <blank>
描述:For slave connection
Host Key Verification Strategy:Non verifying Verification Strategy
保存
修改 master 节点,执行者数量设置为 0,这样就能避免 Job 分配到 master 上。
安装其他插件
系统管理 -> 插件管理,安装下列插件:
Config File Provider
Pipeline Maven
Coding Plugin
Rancher Plugin
TestNG Results
SonarQube Scanner
配置工具
系统管理 -> 全局工具配置,都选择自动安装,下面列出的是工具的名字
JDK:JDK6、JDK7、JDK8,要输入 oracle 网站账号密码
Maven:Maven3
Docker:Docker
配置时区
用 Docker 启动 Jenkins 时区是 GMT+0
见 wiki:https://wiki.jenkins.io/displ…
系统管理 -> 脚本命令行
System.setProperty(‘org.apache.commons.jelly.tags.fmt.timeZone’, ‘Asia/Shanghai’)
清理重装方法
如果你配置错误搞砸了,想从头开始,那么这么做,只需要这么几步:
ssh 到 master 上:
sudo docker stop jenkins
sudo rm -rf $HOME/jenkins-home/*