summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Copeland <ben.copeland@linaro.org>2018-04-30 09:21:22 +0100
committerBenjamin Copeland <ben.copeland@linaro.org>2018-05-08 13:29:30 +0000
commita61d9a25484ef9f8af91ef5ab52743b181554fb4 (patch)
tree0072b6b6e71d6c6a246aab0fed45eba9578c6ccc
parent8bbb4430c84dee4e513d26f4dc4bfb1fddf9e5d7 (diff)
jenkins_slaves: Update NFS and fix some docker bugs
The NFS directory was wrong, it meant it was mounted as /home/buildslave/srv/oe/oe. That being said we weren't sure if bitbake would follow the symlinks. Lets just mount it directly into the home location. Docker, we need to define the arch type otherwise APT will break with errors. Also, we should only add the xenial repo for xeinal servers. There is a trusty repo, but these servers need to be upgraded anyway, so lets ignore them for now to not add to headache. If we have to modify any docker settings, these should be done at the top. Change-Id: Ib03efd83ff620b0fcdb911736d3e9d8f53d16734 Reviewed-on: https://review.linaro.org/25046 Reviewed-by: Kelley Spoon <kelley.spoon@linaro.org> Reviewed-by: Benjamin Copeland <ben.copeland@linaro.org>
-rw-r--r--group_vars/jenkins_slaves4
-rw-r--r--roles/jenkins-slave-deps/tasks/main.yml72
-rw-r--r--roles/jenkins-slave-deps/templates/docker_daemon.json.j21
3 files changed, 42 insertions, 35 deletions
diff --git a/group_vars/jenkins_slaves b/group_vars/jenkins_slaves
index f66f60a9..d6645903 100644
--- a/group_vars/jenkins_slaves
+++ b/group_vars/jenkins_slaves
@@ -15,7 +15,7 @@ docker_engine_opts:
- "--storage-driver=overlay2"
nfs_client_mount:
- - path: /var/data/nfs
- src: 88.99.136.175:/var/data/nfs
+ - path: /home/buildslave/srv/oe
+ src: 88.99.136.175:/var/data/nfs/oe
opts: rw,noatime,vers=4.2,hard,intr
state: mounted
diff --git a/roles/jenkins-slave-deps/tasks/main.yml b/roles/jenkins-slave-deps/tasks/main.yml
index 14268b10..fe67d6d3 100644
--- a/roles/jenkins-slave-deps/tasks/main.yml
+++ b/roles/jenkins-slave-deps/tasks/main.yml
@@ -1,5 +1,35 @@
---
+- name: Create directory for docker service supplementary config
+ file:
+ path: /etc/systemd/system/docker.service.d
+ owner: root
+ group: root
+ mode: 0755
+ state: directory
+
+- name: Create docker service supplementary config file
+ template:
+ src: docker.service.conf.j2
+ dest: /etc/systemd/system/docker.service.d/docker.conf
+ owner: root
+ group: root
+ mode: 0644
+ notify:
+ - reload-systemd
+ - restart-docker
+
+- name: Ensure docker template exists
+ template:
+ src: docker_daemon.json.j2
+ dest: /etc/docker/deamon.json
+ owner: root
+ group: root
+ mode: 0644
+ notify:
+ - restart-docker
+ - reload-systemd
+
- name: Install apt package for docker repo
apt: pkg=apt-transport-https
@@ -9,40 +39,26 @@
keyserver: "hkp://p80.pool.sks-keyservers.net"
# https://launchpad.net/~canonical-kernel-team/+archive/ubuntu/ppa
-- name: Add repos
+- name: Add repos (xenial)
apt_repository:
repo: "{{item}}"
with_items:
- - 'deb https://download.docker.com/linux/ubuntu xenial stable'
+ - 'deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable'
- 'ppa:canonical-kernel-team/ppa'
+ when: ansible_distribution_release == 'xenial' and ansible_machine == 'x86_64'
+
+- name: Install custom kernel for overlay2 support
+ apt: pkg=linux-image-4.13.0-38-generic update_cache=yes
+ when: ansible_distribution_release == 'xenial' and ansible_machine == 'x86_64'
- name: Install Jenkins slave deps
apt: pkg={{item}} update_cache=yes
with_items:
- docker-ce
- ufw
- - linux-image-4.13.0-38-generic
- openjdk-8-jdk-headless
- openjdk-8-jre-headless
-
-- name: Create directory for docker service supplementary config
- file:
- path: /etc/systemd/system/docker.service.d
- owner: root
- group: root
- mode: 0755
- state: directory
-
-- name: Create docker service supplementary config file
- template:
- src: docker.service.conf.j2
- dest: /etc/systemd/system/docker.service.d/docker.conf
- owner: root
- group: root
- mode: 0644
- notify:
- - reload-systemd
- - restart-docker
+ when: ansible_distribution_release == 'xenial'
- name: Reset ufw to defaults
ufw: state=reset
@@ -98,17 +114,7 @@
- name: Ensure Buildslave srv directory exists
file:
- path: /home/buildslave/srv
+ path: /home/buildslave/srv/oe
owner: 1000
group: 1000
state: directory
-
-- name: Create symlink for the OE NFS dir
- file:
- src: "{{item.path}}/oe"
- dest: /home/buildslave/srv/oe
- owner: 1000
- group: 1000
- state: link
- force: yes
- with_items: "{{nfs_client_mount}}"
diff --git a/roles/jenkins-slave-deps/templates/docker_daemon.json.j2 b/roles/jenkins-slave-deps/templates/docker_daemon.json.j2
new file mode 100644
index 00000000..e57e219f
--- /dev/null
+++ b/roles/jenkins-slave-deps/templates/docker_daemon.json.j2
@@ -0,0 +1 @@
+{ "storage-driver": "overlay2" }