add jenkins node setup
parent
48b15708f5
commit
5de0f7d958
@ -0,0 +1,155 @@
|
||||
# Node Setup Guide
|
||||
|
||||
* Jenkins Plugins
|
||||
|
||||
* pipeline
|
||||
* node and label
|
||||
* gradle
|
||||
* maven
|
||||
|
||||
* Java compiler
|
||||
|
||||
* Java 8
|
||||
|
||||
```sh
|
||||
# install full jdk8 packge
|
||||
# openjdk-8-jdk-headless exclude some jar file (eg /lib/jconsole.jar)
|
||||
# which is need by alibaba druid dependencies package
|
||||
$ apt install openjdk-8-jdk
|
||||
```
|
||||
|
||||
|
||||
|
||||
* Slave Agent
|
||||
|
||||
* Create a slave VM. Username as `jenkins`
|
||||
|
||||
* Set to sudo user
|
||||
|
||||
```sh
|
||||
# add jenkins user
|
||||
$ adduser jenkins
|
||||
|
||||
# change jenkins to sudo group
|
||||
$ usermod -aG sudo jenkins
|
||||
|
||||
# check the user group
|
||||
$ groups jenkins
|
||||
|
||||
# verify sudo access
|
||||
$ su - jenkins
|
||||
|
||||
|
||||
```
|
||||
|
||||
* Optional, add `jenkins` as `sudoer`
|
||||
|
||||
* [reference](https://www.maketecheasier.com/edit-sudoers-file-linux/)
|
||||
|
||||
```sh
|
||||
# add jenkins as sudoer
|
||||
$ visudo
|
||||
|
||||
|
||||
# User privilege specification
|
||||
# username hostlist = (userlist) commandlist
|
||||
# eg. Only allow alex to run apt-get update
|
||||
# alex ALL=(ALL) /usr/bin/apt-get update
|
||||
root ALL=(ALL:ALL) ALL
|
||||
jenkins ALL=(ALL:ALL) ALL
|
||||
```
|
||||
|
||||
* Run jenkins node agent
|
||||
|
||||
```sh
|
||||
# download agent.jar file from jenkins server
|
||||
$ wget https://192.168.0.119/jnlpJars/agent.jar --no-check-certificate
|
||||
|
||||
# run the agent to connect to server
|
||||
$ sudo java -jar agent.jar -jnlpUrl https://192.168.0.119/computer/jenkins.slave/jenkins-agent.jnlp -noCertificateCheck -secret 39694868bc66890cd5eb6c04b0a51692403ab957ceb1d1b258c353a031334733 -workDir "/home/jenkins"
|
||||
```
|
||||
|
||||
## Run agent as service
|
||||
|
||||
* [reference](https://www.baeldung.com/linux/run-java-application-as-service)
|
||||
|
||||
* create a script file `startagent.sh`
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
|
||||
WORKDIR=/home/jenkins/scripts
|
||||
APP_OPTIONS=" -jnlpUrl https://192.168.0.119/computer/jenkins.slave/jenkins-agent.jnlp -noCertificateCheck -secret @secret-file -workDir \"/home/jenkins\""
|
||||
|
||||
"${JAVA_HOME}/bin/java" -jar agent.jar $APP_OPTIONS
|
||||
|
||||
```
|
||||
|
||||
* create the `secret-file`
|
||||
|
||||
```sh
|
||||
$ echo 39694868bc66890cd5eb6c04b0a51692403ab957ceb1d1b258c353a031334733 > secret-file
|
||||
```
|
||||
|
||||
|
||||
|
||||
* test the script
|
||||
|
||||
```sh
|
||||
$ chmod +x startagent.sh
|
||||
|
||||
# start at background
|
||||
$ ./startagent.sh &
|
||||
|
||||
# make foreground
|
||||
$ fg
|
||||
```
|
||||
|
||||
* create a service
|
||||
|
||||
* Create the service unit file `jenkinsagent.service`
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Jenkins Agent service
|
||||
|
||||
[Service]
|
||||
SuccessExitStatus=143
|
||||
User=jenkins
|
||||
Group=sudo
|
||||
|
||||
WorkingDirectory=/home/jenkins/scripts
|
||||
|
||||
ExecStart=/home/jenkins/scripts/startagent.sh
|
||||
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
* copy the service unit file to system `/etc/systemd/system`
|
||||
|
||||
```sh
|
||||
$ sudo cp ./jenkinsagent.service /etc/systemd/system/jenkinsagent.service
|
||||
|
||||
# reload unit files
|
||||
$ sudo systemctl daemon-reload
|
||||
|
||||
# enable the service (after tested ok). service will start upon every PC restart
|
||||
$ sudo systemctl enable jenkinsagent.service
|
||||
|
||||
Created symlink /etc/systemd/system/multi-user.target.wants/jenkinsagent.service -> /etc/systemd/system/jenkinsagent.service.
|
||||
|
||||
# start the service
|
||||
$ sudo systemctl start jenkinsagent.service
|
||||
|
||||
# check status o service
|
||||
$ sudo systemctl status jenkinsagent.service
|
||||
|
||||
# stop the service
|
||||
$ sudo systemctl stop jenkinsagent.service
|
||||
|
||||
```
|
||||
|
||||
|
||||
Loading…
Reference in New Issue