Create cloud-init script as part of image build 39/5339/3
authorFatih Degirmenci <fatih.degirmenci@est.tech>
Thu, 9 Jul 2020 11:03:26 +0000 (11:03 +0000)
committerFatih Degirmenci <fatih.degirmenci@est.tech>
Thu, 9 Jul 2020 13:08:05 +0000 (13:08 +0000)
We need the ssh public key for jenkins user placed into
/home/jenkins/.ssh/authorized_keys in order for jenkins
to be able to connect the slaves provisioned using openstack
plugin using jenkins user.

This change updates packer file with creation of cloud-init
script.

Change-Id: I91610c71a6250102e9a11a4140fa784bd9f5ee9d

infra/jenkins/slave-setup/uds-build-server/configure-image.sh [moved from infra/jenkins/slave-setup/uds-build-server/install-packages.sh with 82% similarity]
infra/jenkins/slave-setup/uds-build-server/onap-uds-build-ubuntu1804.json

similarity index 82%
rename from infra/jenkins/slave-setup/uds-build-server/install-packages.sh
rename to infra/jenkins/slave-setup/uds-build-server/configure-image.sh
index f890a3b8457c9a1a23589a814f7882ac70d29413..5ddc68fca394e6d06da331c3c336bfaea340ce66 100644 (file)
@@ -41,6 +41,8 @@ sudo apt-get update
 sudo apt-get install -y docker-ce=5:19.03.12~3-0~ubuntu-bionic docker-ce-cli=5:19.03.12~3-0~ubuntu-bionic containerd.io
 docker --version
 
+sudo systemctl enable docker
+sudo systemctl start docker
 
 # CREATE JENKINS USER
 # Crete homedir, add to sudo group, add entry in /etc/passwd
@@ -57,3 +59,14 @@ sudo bash -c "echo PasswordAuthentication no >> /etc/ssh/sshd_config"
 sudo bash -c "echo PubkeyAuthentication yes >> /etc/ssh/sshd_config"
 sudo bash -c "echo AllowUsers jenkins >> /etc/ssh/sshd_config"
 sudo systemctl restart sshd
+
+# get cloud-init script in place so we can place the keys into ~jenkins/.ssh
+sudo bash -c 'cat << EOF > /var/lib/cloud/scripts/per-instance/copykeystojenkins.sh
+#!/bin/bash
+sudo mkdir -p /home/jenkins/.ssh
+sudo cat /home/ubuntu/.ssh/authorized_keys >> /home/jenkins/.ssh/authorized_keys
+sudo chown -R jenkins:jenkins /home/jenkins/.ssh
+sudo chmod -R go-rwx /home/jenkins/.ssh
+sudo userdel -f -r ubuntu
+EOF'
+sudo chmod +x /var/lib/cloud/scripts/per-instance/copykeystojenkins.sh
index 810c9aee86aa49519ea677894989864ee2a417b5..e12f6be0fefb984930951b0e4e0a11d3b1413115 100644 (file)
@@ -15,7 +15,7 @@
     ],
     "provisioners": [
         {
-            "script": "install-packages.sh",
+            "script": "configure-image.sh",
             "type": "shell"
         }
     ]