I was working on an overseas application whose build server was originally located in Shanghai. Due to special circumstances, it needed to be migrated abroad. This post documents the Jenkins migration and configuration process.
Prerequisite: Install JDK 11#
Using jenv for multi-version Java management:
1
2
3
4
5
6
7
8
9
| # Install jenv
git clone https://github.com/jenv/jenv.git ~/.jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(jenv init -)"' >> ~/.bashrc
source ~/.bashrc
# Enable the export plugin and restart the session
jenv enable-plugin export
exec $SHELL -l
|
Installing Jenkins on CentOS#
1
2
3
4
5
6
| # Add Jenkins repository and GPG key
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# Install
yum install jenkins
|
Configuring systemd Service#
1
2
3
4
| sudo vi /etc/systemd/system/jenkins.service
sudo systemctl enable /etc/systemd/system/jenkins.service
sudo systemctl start jenkins
systemctl status jenkins
|
1
2
3
4
5
6
7
8
9
10
11
12
13
| [Unit]
Description=jenkins service
After=network.target
[Service]
Type=simple
LimitNOFILE=65536
ExecStart=/usr/bin/jenkins
User=work
Environment="JENKINS_PORT=8082"
[Install]
WantedBy=multi-user.target
|
Configuring Android SDK#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| wget https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip
unzip commandlinetools-linux-8512546_latest.zip
chmod a+x cmdline-tools/
cd cmdline-tools/bin
# Install required components via sdkmanager
./sdkmanager --sdk_root=/home/work/workspace/android_sdk --list
./sdkmanager --install 'platforms;android-33' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'build-tools;33.0.0' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'cmdline-tools;7.0' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'build-tools;32.0.0' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'build-tools;31.0.0' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'ndk;25.1.8937393' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'platforms;android-28' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'platforms;android-29' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'platforms;android-30' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'platforms;android-31' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'cmake;3.22.1' --sdk_root=/home/work/workspace/android_sdk
./sdkmanager --install 'cmake;3.10.2.4988404' --sdk_root=/home/work/workspace/android_sdk
|
Fixing SSH Key Permission Issues#
If you encounter Permissions 0664 for '/home/work/.ssh/jenkins_id_rsa' are too open:
Upgrading Jenkins#
Always refer to the Jenkins Upgrade Guide for version-specific instructions.
Example for Debian/Ubuntu (on CentOS, use yum update jenkins instead):
1
2
3
4
| wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
|
References#