How is defined a slave hostname?
The hostname of a slave in the cloud infrastructure (thus, from the SSH
gateway) is : projectname-slavename.
Should I create one or multiple slaves ?
You will create multiple slaves if your software needs to support
multiple environments, like:
- different operating sysems (Linux, Windows, ...)
- different linux distributions (Ubuntu, Debian, Fedora, ...)
- different x86 CPU (32 bits or 64 bits)
Thus you have to create one slave for each configuration you want to
ssh email@example.com says it cannot find my-slave.ci. What is this .ci domain anyway ?
Indeed .ci is not a real internet domain name.
The procedure to connect to the slaves is a little cumbersome because
they lie in a private network (and it requires to open a tunnel through
the ci-ssh.inria.fr frontend).
To make it easy, we recommend to set up a proxy command in your ssh
Once this configuration is done, ssh firstname.lastname@example.org should bring
you to the right place.
What is the public IP address of my slave ?
The slaves lie in a private network. When connecting to the Internet
their private address is translated
cat /proc/cpuinfo (or Windows) gives me information that are not consistent with the information seen on the Web Portal, what is right?
Actually, the service offer give twice more timeslots to a 2GHz virtual
machine that to a 1GHz virtual machine (so it is not a processor speed
per se). The displayed frequency about the CPU on the virtual machine is
the actual host CPU frequency (and not the allocated CPU timeslot).
My slave crashed. Even after a reboot I cannot connect to it. What can I do ?
Through the CloudStack interface
you can have access to the console of your slave and fix what is
preventing it to boot.
Once on the CloudStack dashboard:
- go to the Instances tab
- select the slave you want to debug
- click on the >_ button
Then a new window will open and give access to the console of your
slave, just like if your were sitting in front of it.
I want to share some data trough NFS between some slaves. How could I do ?
We detail the method considering that slaves and master are ubuntu.
Adapt the installation of nfs client and server with respect to your
- first install a server on one of your slaves
apt-get install nfs-kernel-server
- add a line to the /etc/exports file and restart nfs server
echo "/builds/toshare xx.xx.xx.xx (rw,nohide,insecure,no_subtree_check,async) ">>/etc/exports
- install a nfs client on a client
apt-get install nfs-common
- edit the ip rules on cloudstack : in the tab Network, in “select
view” field : select “security groups” and click on “default”
and select “Ingress Rule” tab
then add a TCP rule with on port 2049 with CIDR containing the ip of the slave / 32
Start PORT : 2049
End PORT : 2049
CIDR : xx.xx.xx.xx / 32 (where xx.xx.xx.xx is the ip adress of your slave)
- add a mount line in the /etc/fstab on the slave
server_name:/builds/toshare /builds/tomount/ nfs rw,user 0 0
- mount the file system on the slave
Jenkins's agent fails to start: “Slave JVM has not reported exit code. Is it still running?”
This happens with old versions of Java. If java -version displays
1.6 (or lower) then you should upgrade your JVM.
Known problem with GitHub connexions
Anonymous requests are limited at 60 reqs/hour per IP (only one for all
the Virtual machines of the entire CI). Authenticated requests are
limited at 5000 reqs/hour per user (user = authenticated GitHub user).
As a lot of project are using anonymous connection to GitHub, sometimes
connection are closed from the GitHub servers. This can lead to errors
SEVERE: Unable to connect to GitHub repo
$ brew search qglviewer
Error: GitHub API rate limit exceeded for 184.108.40.206. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
$ git clone
Cloning into 'blabla'...
remote: Counting objects: 41841, done.
remote: Compressing objects: 100% (51/51), done.
Receiving objects: 22% (9382/41841), 42.39 MiB | 51.00 KiB/s
The best recommended practice is to use git plugin configured to use
http notifications from github hooks.
If you are using github to clone a third party library for your project,
it is advised to clone through https autentication :