You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.4 KiB

Node Setup Guide

  • Jenkins Plugins

    • pipeline
    • node and label
    • gradle
    • maven
  • Java compiler

    • Java 8

      # 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

      # 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

      # 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

    # 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

  • create a script file startagent.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

    $ echo 39694868bc66890cd5eb6c04b0a51692403ab957ceb1d1b258c353a031334733 > secret-file
    
  • test the script

    $ chmod +x startagent.sh
    
    # start at background
    $ ./startagent.sh &
    
    # make foreground
    $ fg
    
  • create a service

    • Create the service unit file jenkinsagent.service

      [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

    $ 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