Home unraid jenkins安装和配置
Post
Cancel

unraid jenkins安装和配置

Jenkins安装

一般情况Jenkins的安装都是使用docker-compose,在文件中把环境配置都创建好,但是unraid中不能使用compose,所以为了保持一致性,需要自己手动配置相关环境。 注意此处映射的路径需要是有所有权限的,可以通过设置

1
chmod 777 Jenkins

运行镜像相关的配置,默认直接在app市场搜索,然后就行一点小修改即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run
  -d
  --name='Jenkins'
  --net='bridge'
  --privileged=true
  -e TZ="Asia/Shanghai"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="root"
  -e HOST_CONTAINERNAME="Jenkins"
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:9999]/'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/selfhosters/unRAID-CA-templates/master/templates/img/jenkins.png'
  -p '9999:8080/tcp'
  -v '/mnt/user/appdata/Jenkins':'/var/jenkins_home':'rw' 'jenkins/jenkins:2.414.1-lts-jdk17'

这里只映射了一个映射路径,计划是把sdk相关的配置都放入到此目录下。镜像也选择官方的最新镜像,但因为需要使用Android commandlinetools来配置Android SDK,并且最新的commandlinetools依赖jdk17,所以我这里直接使用的建立在jdk17环境上的镜像,若采用默认镜像,可能是jdk11,此时需要自己配置一下默认的jdk环境。

Root用户配置

因为需要涉及到一些编辑,所以优先使用root用户就行登陆,然后进行部分内容的安装。

宿主主机登陆Jenkins容器Root用户

1
docker exec -it -u root Jenkins /bin/bash

更新

1
apt-get update

安装wget和vim

1
apt-get install wget vim -y

SDK相关安装配置

在默认用户下安装剩下的配置,因为默认用户根目录为/var/jenkins_home,即我们的映射过的目录。大致需要安装的sdk路径关系如下

1
2
3
4
5
6
7
8
9
~
├─sdk
|  ├─jdk
|  |   └─jdk17
|  ├─android-sdk
|  |   └cmdline-tools
|  ├─gradle
|  |   ├─gradle8.0.0
|  |   └─gradle8.1.0

宿主主机登陆Jenkins容器默认用户

1
docker exec -it Jenkins /bin/bash

ssh配置

因为Jenkins安装默认插件时自动带有git,所以我们直接配置ssh密钥就可以了

1
ssh-keygen -o

一路yes生成密钥,

在gitlab上添加pub key

1
cat ~/.ssh/id_rsa.pub

然后添加私钥到Jenkins中(系统管理->凭证管理->凭证->系统->全局凭证),选择Add Credentials添加凭证,选择SSH private key,然后把私钥直接填入对应输入框。其余id名字任意填写即可,填写过后如图。

1
cat ~/.ssh/id_rsa

但此次设置完成后,在构建节点中如果要直接去使用的话,得首先进行host认证,可以先进行一次代码的拉取。否则会出现

拉取代码认证如图

在构建任务中可以直接进行选择了

安装安卓编译环境

首先进入到用户目录,然后创建sdk文件夹、android-sdk文件夹,然后进入对应目录

1
2
3
4
5
cd ~ 
mkdir sdk
cd sdk
mkdir android-sdk
cd android-sdk

Android commandlinetools可以在下载地址最下面的Command line tools only找到,这里下载Linux版本的。

1
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip

解压对应文件,然后需要移动解压出来的文件到其子目录下,结果如下:

1
2
3
4
5
6
7
~/sdk/android-sdk
├─cmdline-tools
|  ├─lasted
|  |   ├─bin/
|  |   ├─lib/
|  |   ├─source.properties
|  |   └─NOTICE.txt
1
2
3
4
unzip -o commandlinetools-linux-10406996_latest.zip
cd cmdline-tools
mkdir lasted
mv NOTICE.txt bin/ lib/ source.properties lasted/

同意条款,此次需要运行在jdk17上

1
2
cd lasted/bin
./sdkmanager --licenses

一路y直到完成,然后在Jenkins的系统管理->系统配置中的全局熟悉下添加环境变量

安装gradle

在gradle目录下下载需要的sdk,可以在下载地址 选择需要的版本,下载解压即可

1
2
wget https://services.gradle.org/distributions/gradle-8.0-bin.zip
unzip -o gradle-8.0-bin.zip

然后在Jenkins的系统管理->全局工具配置的gradle配置下,添加对应的gradle版本。

安装java环境

和gradle类似,下载解压对应的jdk即可。

1
2
wget https://download.oracle.com/java/17/archive/jdk-17.0.8_linux-x64_bin.tar.gz
tar -zxvf jdk-17.0.8_linux-x64_bin.tar.gz

同样在Jenkins的系统管理->全局工具配置的jdk配置下,添加对应jdk

This post is licensed under CC BY 4.0 by the author.