Job for ansible to setup build servers. 25/51725/4
authoragardner <agardner@linuxfoundation.org>
Mon, 5 Feb 2018 21:12:11 +0000 (16:12 -0500)
committeragardner <agardner@linuxfoundation.org>
Thu, 8 Feb 2018 19:10:56 +0000 (14:10 -0500)
set noop for now.
  -C, --check           don't make any changes; instead, try to predict
some
                        of the changes that may occur
  -D, --diff            when changing (small) files and templates, show
the
                        differences in those files; works great with
--check

Change-Id: I723fcf1b068b8ef73a0994be90271cb1cdd51ecb
Signed-off-by: agardner <agardner@linuxfoundation.org>
jjb/releng/opnfv-utils.yml

index 6f77cd2..4859008 100644 (file)
@@ -7,6 +7,7 @@
       - 'prune-docker-images'
       - 'archive-repositories'
       - 'check-status-of-slaves'
+      - 'ansible-build-server'
 
 ########################
 # job templates
     builders:
       - description-setter:
           description: "Built on $NODE_NAME"
+      # yamllint disable rule:line-length
       - shell: |
           #!/bin/bash
-
           (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm
           docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi
 
+
+    # yamllint enable rule:line-length
     triggers:
       - timed: '@midnight'
 
@@ -88,7 +91,7 @@
     parameters:
       - node:
           name: SLAVE_NAME
-          description: We don't want workspace wiped. so I just threw the script on the master
+          description: 'script lives on master node'
           default-slaves:
             - master
           allowed-multiselect: false
       - shell: |
           cd /opt/jenkins-ci/slavemonitor
           bash slave-monitor-0.1.sh | sort
+
+- job-template:
+    name: 'ansible-build-server'
+
+    project-type: freestyle
+
+    disabled: false
+    concurrent: true
+
+    parameters:
+      - label:
+          name: SLAVE_LABEL
+          description: 'Slave label on Jenkins'
+          default: 'test-ansible-build'
+          allowed-multiselect: true
+          ignore-offline-nodes: true
+      - project-parameter:
+          project: releng
+          branch: master
+
+    scm:
+      - git-scm
+
+    triggers:
+      - timed: '@midnight'
+
+    builders:
+      - install-ansible
+      - run-ansible-build-server-playbook
+
+
+- builder:
+    name: install-ansible
+    builders:
+      - shell: |
+          # Install ansible here
+          if [ -f /etc/centos-release ] \
+          || [ -f /etc/redhat-release ] \
+          || [ -f /etc/system-release ]; then
+          sudo yum install ansible
+          fi
+          if [ -f /etc/debian_version ] \
+          || grep -qi ubuntu /etc/lsb-release \
+          || grep -qi ubuntu /etc/os-release; then
+          apt-get install ansible
+          fi
+
+- builder:
+    name: run-ansible-build-server-playbook
+    builders:
+      - shell: |
+          # run playbook
+          ansible-playbook -C -D -i \
+          $WORKSPACE/utils/build-server-ansible/inventory.ini \
+          $WORKSPACE/utils/build-server-ansible/main.yml