Operations grimoire/Jenkins

From Nasqueron Agora

📕📁📜 Old technical information :: content warning

⌛ This Nasqueron Operations Grimoire page hasn't been updated for a long time.

☣ As our infrastructure evolves quickly, there is a good chance this information is outdated or now inaccurate. Be careful and consider update it.

➡️ To assert the information is still up-to-date or not, you can check the history of the relevant role in our Operations repository.

Jenkins is used to automate tests and deployment tasks.

It's reachable at https://ci.nasqueron.org/

Restart Jenkins

  1. Restart or provision a new Jenkins container: docker restart ci or run-ci
  2. Go to https://ci.nasqueron.org to have an idea of the slave nodes, restart them

We should at least have one slave container with docker run -dt -P -v /data/jenkins/slave_home:/home/app nasqueron/jenkins-slave-php (from the script run-ci-slave)

Jenkins interactions

The following connections are known:

  • Jenkins communicates with GitHub directly through tokens and Alken-Orin SSH key
  • The tommy container provides a dashboard at https://builds.nasqueron.org/

Broker and notifications center aren't currently (2016-07-21) needed by Jenkins: they currently link Docker Hub, GitHub, Phabricator, Wearg and the notification CLI client. DevCentral has the responsibility to trigger Jenkins builds when a new diff occurs while GitHub and Jenkins communicate directly without using the notifications center.

Nodes

Troubleshoot

If a node is offline, but the container has been launched, go check the IP of the slave container and update on Jenkins the configuration of the node with the current IP.

When the Docker engine is restarted, /etc/hosts is fairly often lost in some containers, and so they lost container name resolution.

https://ci.nasqueron.org/computer/silly_bardeen/configure