0

I wrote following script to be rendered via Terraform template for EC2 user data :

#!/bin/bash



yum update -y
yum install wget -y
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum upgrade
amazon-linux-extras install java-openjdk11 -y
yum install jenkins -y

mkdir -p /var/lib/jenkins/init.groovy.d/

cat > /var/lib/jenkins/jenkins.install.UpgradeWizard.state << EOF
2.0
EOF
cat > /var/lib/jenkins/init.groovy.d/basic-security.groovy << EOF
#!groovy

import jenkins.model.*
import hudson.security.*

def instance = Jenkins.getInstance()

println "Creating local user 'admin'"

def hudsonRealm = new HudsonPrivateSecurityRealm(false)
hudsonRealm.createAccount('admin','${jenkins_admin_password}')
instance.setSecurityRealm(hudsonRealm)

def strategy = new FullControlOnceLoggedInAuthorizationStrategy()
instance.setAuthorizationStrategy(strategy)
instance.save()
EOF
chown -R jenkins:jenkins /var/lib/jenkins/

systemctl enable jenkins
systemctl start jenkins
cat > creds << EOF
admin:${jenkins_admin_password}
EOF

wget http://localhost:8080/jnlpJars/jenkins-cli.jar
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth @creds install-plugin 'workflow-aggregator' -deploy -restart

The last command java -jar jenkins-cli.jar -s http://localhost:8080/ -auth @creds install-plugin 'workflow-aggregator' -deploy -restart for Jenkins plugin install failed at launch:

[root@ip-172-1-1-143 /]# tail /var/log/cloud-init-output.log 

workflow-aggregator is neither a valid file, URL, nor a plugin artifact name in the update center
No update center data is retrieved yet from: https://updates.jenkins.io/update-center.json
workflow-aggregator looks like a short plugin name. Did you mean ?null??

ERROR: Error occurred, see previous output.
Nov 14 22:27:36 cloud-init[18578]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [5]
Nov 14 22:27:36 cloud-init[18578]: cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
Nov 14 22:27:36 cloud-init[18578]: util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/site-packages/cloudinit/config/cc_scripts_user.pyc'>) failed
Cloud-init v. 19.3-45.amzn2 finished at Mon, 14 Nov 2022 22:27:36 +0000. Datasource DataSourceEc2.  Up 219.42 seconds

But the same command works with no problem when run manually:

[root@ip-172-1-1-143 /]# java -jar jenkins-cli.jar -s http://localhost:8080/ -auth @creds install-plugin 'workflow-aggregator' -deploy -restart
Installing workflow-aggregator from update center

Could you advise what is wrong here?

learnd
  • 77
  • 5
  • what server is serving jenkins-cli.jar. In your script it is fetching from server running on port 8080. It might not be up when your EC2 is restarted. – Aniket Chopade Nov 14 '22 at 23:07

0 Answers0