diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2016-08-16 18:26:19 +0200 |
---|---|---|
committer | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2016-08-17 13:27:14 +0200 |
commit | 46ae6ad6151e3a05d80a0d7cfd9e44841fb4bcfd (patch) | |
tree | 1b2c52cd19639f490c2b56cde493e0a959885fc0 /jenkins-scripts | |
parent | 245ec5ec552c8c97e867c03aa9645834886cbf2b (diff) |
Initial version of the ci-management repo
Based on the open-o template. Modified for AGL.
v2 fixed host key and only pushing ci-management jobs.
- fix macro vs. definition in file
Change-Id: I2de02a572a5d8ca1bf6b7a56bfd2e30bfe18fa9a
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'jenkins-scripts')
-rw-r--r-- | jenkins-scripts/README | 8 | ||||
-rwxr-xr-x | jenkins-scripts/basic_settings.sh | 47 | ||||
-rwxr-xr-x | jenkins-scripts/create_jenkins_user.sh | 41 | ||||
-rwxr-xr-x | jenkins-scripts/jenkins-init-script.sh | 27 | ||||
-rwxr-xr-x | jenkins-scripts/system_type.sh | 31 |
5 files changed, 154 insertions, 0 deletions
diff --git a/jenkins-scripts/README b/jenkins-scripts/README new file mode 100644 index 00000000..91485efb --- /dev/null +++ b/jenkins-scripts/README @@ -0,0 +1,8 @@ +The scripts in this directory are used by the Jenkins spin-up component +for dynamic minions. + +The spinup script will be as follows (${system_type} will be replaced +with the appropriate system_type script) + +git clone https://gerrit.zephyrproject.org/r/p/ci-management.git /ci-management +/ci-management/jenkins-scripts/jenkins-init-script.sh diff --git a/jenkins-scripts/basic_settings.sh b/jenkins-scripts/basic_settings.sh new file mode 100755 index 00000000..0240ec24 --- /dev/null +++ b/jenkins-scripts/basic_settings.sh @@ -0,0 +1,47 @@ +#!/bin/bash +# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0> +############################################################################## +# Copyright (c) 2016 The Linux Foundation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## + +case "$(facter operatingsystem)" in + Ubuntu) + apt-get update + ;; + *) + # Do nothing on other distros for now + ;; +esac + +IPADDR=$(facter ipaddress) +HOSTNAME=$(facter hostname) +FQDN=$(facter fqdn) + +echo "${IPADDR} ${HOSTNAME} ${FQDN}" >> /etc/hosts + +#Increase limits +cat <<EOF > /etc/security/limits.d/jenkins.conf +jenkins soft nofile 16000 +jenkins hard nofile 16000 +EOF + +cat <<EOSSH >> /etc/ssh/ssh_config +Host * + ServerAliveInterval 60 + +# we don't want to do SSH host key checking on spin-up systems +Host 10.30.96.* 10.30.97.* + StrictHostKeyChecking no + UserKnownHostsFile /dev/null +EOSSH + +cat <<EOKNOWN > /etc/ssh/ssh_known_hosts +[gerrit-new.automotivelinux.org]:39418,[198.145.29.87]:39418 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLlq8OD28YY+RRU2rcBxV0agWQsgD+ywpObFtjO0uxhxWWz0wtJdu0NDGpFH9AFE64AeBx7NFIYjuXWtWQIwSHgXyx0hejL9257YWsQ8dPsnEsUT6PehE68MA1eg4S5lT/9NjVeAhWgPBVNdtcP0oex2Pf/qr6aKZVUq9msemzZHAVmBKKHTFQTePW50JObQyXHQTSB572OV/haVob+3k6EQrtFdD3dg3/KDvgtuIjmW+Bp7amT7ZwtL0ekCWZqM6V8M1tqsy0WaJJhdjDf/Tc4d+wGNXFnU5niVDbBdlFVqQSVgGuSNIbu/y9ZRF14dOe97YMykxCJk7fDnsjdnmR +EOKNOWN + +# vim: sw=2 ts=2 sts=2 et : diff --git a/jenkins-scripts/create_jenkins_user.sh b/jenkins-scripts/create_jenkins_user.sh new file mode 100755 index 00000000..86a5c92d --- /dev/null +++ b/jenkins-scripts/create_jenkins_user.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0> +############################################################################## +# Copyright (c) 2016 The Linux Foundation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## + +####################### +# Create Jenkins User # +####################### + +OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]') + +useradd -m -s /bin/bash jenkins + +# Check if docker group exists +grep -q docker /etc/group +if [ "$?" == '0' ] +then + # Add jenkins user to docker group + usermod -a -G docker jenkins +fi + +# Check if mock group exists +grep -q mock /etc/group +if [ "$?" == '0' ] +then + # Add jenkins user to mock group so they can build Int/Pack's RPMs + usermod -a -G mock jenkins +fi + +mkdir /home/jenkins/.ssh +mkdir /w +cp -r /home/${OS}/.ssh/authorized_keys /home/jenkins/.ssh/authorized_keys +# Generate ssh key for use by Robot jobs +echo -e 'y\n' | ssh-keygen -N "" -f /home/jenkins/.ssh/id_rsa -t rsa +chown -R jenkins:jenkins /home/jenkins/.ssh /w diff --git a/jenkins-scripts/jenkins-init-script.sh b/jenkins-scripts/jenkins-init-script.sh new file mode 100755 index 00000000..67987b54 --- /dev/null +++ b/jenkins-scripts/jenkins-init-script.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0> +############################################################################## +# Copyright (c) 2016 The Linux Foundation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## + +# vim: ts=4 sw=4 sts=4 et : + +cd /ci-management/jenkins-scripts +chmod +x ./*.sh +./system_type.sh + +source /tmp/system_type.sh +./basic_settings.sh +if [ -f "${SYSTEM_TYPE}.sh" ] +then + ./"${SYSTEM_TYPE}.sh" +fi + +# Create the jenkins user last so that hopefully we don't have to deal with +# guard files +./create_jenkins_user.sh diff --git a/jenkins-scripts/system_type.sh b/jenkins-scripts/system_type.sh new file mode 100755 index 00000000..9aeea20d --- /dev/null +++ b/jenkins-scripts/system_type.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# @License EPL-1.0 <http://spdx.org/licenses/EPL-1.0> +############################################################################## +# Copyright (c) 2016 The Linux Foundation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## + +HOST=$(/bin/hostname) +SYSTEM_TYPE='' + +IFS=',' +for i in "basebuild,basebuild" \ + "centos,centos" \ + "trusty,trusty" \ + "xenial,xenial" +do set -- $i + if [[ $HOST == *"$1"* ]]; then + SYSTEM_TYPE="$2" + break + fi +done + +# Write out the system type to an environment file to then be sourced +echo "SYSTEM_TYPE=${SYSTEM_TYPE}" > /tmp/system_type.sh + +# vim: sw=4 ts=4 sts=4 et : |