...
- Create a user named Jenkins on the machine you want to connect to Akraino Jenkins and give the user sudo rights.
- Install needed software on the machine you want to connect to Akraino Jenkins as an agent.
- openjdk 8
- monit
- If the agent will be used for running virtual deployments, Functest, and Yardstick, install below software and make Jenkins user the member of the groups.
- docker
- libvirt
Create agent root in Jenkins user home directory.
Code Block language bash mkdir -p /home/jenkins/akraino/agent_root
Clone Akraino ci-management repository.
Code Block language bash mkdir -p /home/jenkins/akraino/repos cd /home/jenkins/akraino/repos git clone https://gerrit.akraino.org/r/ci-management
- Add all required information to the Community managed Jenkins agents wiki page.
Contact LF by submitting a ticket to the LF Support Desk and request creation of an agent on Akraino Jenkins. Include below information in your mail.
Remote root directory (/home/jenkins/akraino/agent_root)
- Number of executors (the number of concurrent jobs to allow on the agent).
- Label(s). The label(s) define what jobs can be run on a particular agent. Each job should have a build-node defined in its JJB definition.
- An agent name. This has generally followed the convention of "<OS>-dev-<CPUs>c-<RAM>g", though this is not a strict rule. The important thing is that the name is a unique and useful identifier. Other elements, such as "prd" or "snd" to identify the environment or numbering at the end, will be added by LF.
- You will receive a confirmation from LF containing the complete agent name and a secret token.
Run the following script in order to make sure there is no problem connecting. You should see INFO: Connected in the console log.
Code Block language bash cp /home/jenkins/akraino/repos/ci-management/utils/jenkins-jnlp-connect.sh /home/jenkins/ cd /home/jenkins sudo ./jenkins-jnlp-connect.sh -j /home/jenkins -u jenkins -n <agent name on Akraino Jenkins> -s <the token you received from LF> -t
If you receive a connectivity error, then you need to check your firewall and allow outgoing connections for the port.
Kill the Java agent.jar process.
Run the same script normally without test (-t) in order to get monit script created.
Code Block language bash sudo ./jenkins-jnlp-connect.sh -j /home/jenkins -u jenkins -n <agent name on Akraino Jenkins> -s <the token you received from LF>
Edit monit configuration and enable http interface. The file to edit is /etc/monit/monitrc on Ubuntu systems. Uncomment below lines.
Code Block # set httpd port 2812 and # use address localhost # only accept connection from localhost # allow localhost # allow localhost to connect to the server and
Restart monit service.
Without systemd:
sudo service monit restartWith systemd: you have to enable monit service first and then restart it.
sudo systemctl enable monit
sudo systemctl restart monit
Check to see if Jenkins comes up as managed service in monit.
sudo monit statusConnect agent to Akraino Jenkins using monit.
sudo monit start jenkinsCheck agent on Akraino Jenkins to verify the agent is reported as connected. The agent on Akraino Jenkins should have some executors in “Idle” state if the connection is successful.