JenkinsΒΆ

http://jenkins-ci.org/

Our jenkins server is easy if you have user the previous instructions as the puppet master will have a node definition for setting up a node called jenkins.guest. All you should need to do is SSH into your Jenkins server and then run puppet by hand the first time:

ssh root@192.168.122.3
puppet agent --test --waitforcert=60

It will attempt to connect to a server which resolves as puppet. If you have a problem check that you can ping the puppet server and then make sure you can connect to the puppet server on port 8140

ping puppet
telnet puppet 8140

Once the puppet job runs you may need to sign the certificate on the puppet master using the following command:

puppet cert sign jenkins.guest

You should now be able to connect to your Jenkins server on http://192.168.122.3:8080

For the first Jenkins task you will need to create it by hand so that you can get a config file to generate your other tasks.

  • TODO: Add instructions on configuring Jenkins

Once you have created the first task and got it working you can get a copy of the config.xml and use it to create new jobs for other modules. The location for the config.xml file is http://192.168.122.3:8080/job/first_task/config.xml

Edit the xml to change the url to the git repository of your new module and then create a new job by posting the xml to the Jenkins server with a command similar to the following:

curl -X POST -d @config.xml -H "Content-Type: text/xml" -s http://192.168.122.3:8080/createItem?name=newjob

More docs on the Jenkins API are available at http://192.168.122.3:8080/api/

  • if all tests pass
    • update Modulefile with new version and push as tag into git.
    • Have job that pushes it into pulp with new module version
    • trigger r10k to pull new module into puppet master from pulp puppet forge