首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能在AmazonLinux2AMI和EC2上安装JDK 11

未能在AmazonLinux2AMI和EC2上安装JDK 11
EN

Stack Overflow用户
提问于 2021-11-01 00:52:40
回答 3查看 1.9K关注 0票数 1

我尝试使用以下Packer配置安装带有预安装Jenkins的EC2实例:

这里最重要的部分是setup.sh脚本,它安装JenkinsJava

代码语言:javascript
复制
#!/bin/bash

echo "Installing Amazon Linux extras"
amazon-linux-extras install epel -y

echo "Install Jenkins stable release"
yum remove -y java
yum install -y java-11-openjdk-devel
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install -y jenkins
chkconfig jenkins on

echo "Install git"
yum install -y git

echo "Setup SSH key"
mkdir /var/lib/jenkins/.ssh
touch /var/lib/jenkins/.ssh/known_hosts
chown -R jenkins:jenkins /var/lib/jenkins/.ssh
chmod 700 /var/lib/jenkins/.ssh
mv /tmp/id_rsa /var/lib/jenkins/.ssh/id_rsa
chmod 600 /var/lib/jenkins/.ssh/id_rsa
chown -R jenkins:jenkins /var/lib/jenkins/.ssh/id_rsa

echo "Configure Jenkins"
mkdir -p /var/lib/jenkins/init.groovy.d
mv /tmp/scripts/*.groovy /var/lib/jenkins/init.groovy.d/
chown -R jenkins:jenkins /var/lib/jenkins/init.groovy.d
mv /tmp/config/jenkins /etc/sysconfig/jenkins
chmod +x /tmp/config/install-plugins.sh
bash /tmp/config/install-plugins.sh
service jenkins start

通过以下链接查看所有其他配置文件:

https://github.com/mlabouardy/pipeline-as-code-with-jenkins/tree/master/chapter4/distributed/master

当我跑步时:

代码语言:javascript
复制
packer build template.json

我得到以下例外:

代码语言:javascript
复制
==> amazon-ebs: Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.

如果我使用:,那么一切都很完美。

代码语言:javascript
复制
yum install -y java-1.8.0-openjdk

而不是:

代码语言:javascript
复制
yum install -y java-11-openjdk-devel

我可以启动Jenkins,但我看到了以下警告:

Using Java 8 with the latest Jenkins is not recommended

有人知道如何使用Java 11来实现这种配置吗?

P.S.作为亚马逊机器图像的来源,我使用:

代码语言:javascript
复制
Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-02e136e904f3da870 (64-bit x86) / ami-0e341fcaad89c3650 (64-bit Arm)

它可在“("source_ami”us-east-1“区域(us-east-1)中获得:"ami-02e136e904f3da870”--AmazonLinux2AMI的确切id取决于该区域)。

下面是封隔器template.json,,用于从Source图像中烘焙Jenkins图像

代码语言:javascript
复制
{
    "variables" : {
        "region" : "us-east-1",
        "aws_profile": "ops-account",
        "source_ami" : "ami-02e136e904f3da870",
        "instance_type": "t2.micro",
        "ssh_key": "./jenkins_ssh"
    },
    "builders" : [
        {
            "type" : "amazon-ebs",
            "profile" : "{{user `aws_profile`}}",
            "region" : "{{user `region`}}",
            "instance_type" : "{{user `instance_type`}}",
            "source_ami" : "{{user `source_ami`}}",
            "ssh_username" : "ec2-user",
            "ami_name" : "jenkins-master-2.204.1",
            "ami_description" : "Amazon Linux Image with Jenkins Server",
            "run_tags" : {
                "Name" : "packer-builder"
            }
        }
    ],
    "provisioners" : [
        {
            "type" : "file",
            "source" : "./scripts",
            "destination" : "/tmp/"
        },
        {
            "type" : "file",
            "source" : "./config",
            "destination" : "/tmp/"
        },
        {
            "type" : "file",
            "source" : "{{user `ssh_key`}}",
            "destination" : "/tmp/id_rsa"
        },
        {
            "type" : "shell",
            "script" : "./setup.sh",
            "execute_command" : "sudo -E -S sh '{{ .Path }}'"
        }
    ]
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-11-01 01:08:15

setup.sh中添加以下命令行解决了这个问题:

代码语言:javascript
复制
amazon-linux-extras install java-openjdk11 -y

看来,java-11-openjdk包是不可用的,在Amazon 2主存储库中安装。

但是它们现在是可用的,在Amazon 2附加存储库中。

票数 1
EN

Stack Overflow用户

发布于 2022-01-23 09:29:40

大多数在EC2-用户中安装jenkins有问题的人。

Jenkins Redhat包要使用这个存储库,运行以下命令:

  1. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  2. sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
  3. yum install epel-release ( it will not work so use below command ) sudo amazon-linux-extras install epel
  4. yum install java-11-openjdk-devel -y yum install java-11-openjdk-devel (它不能工作,所以请使用下面的命令)
  5. yum search all "java"

之后:

代码语言:javascript
复制
yum install java-11-amazon-corretto.x86_64
java --version

在这里输入图像描述

在这里输入图像描述

  1. yum install jenkins
  2. systemctl start jenkins
  3. systemctl enable jenkins
票数 1
EN

Stack Overflow用户

发布于 2022-10-09 20:29:23

如果您在安装jdk 11之后启动jenkins时仍然面临错误?检查java版本的java -version。

如果它显示的是java1.8*默认情况下是amazon ec2,我们需要更改为指向jdk 11版本。试试下面的命令

选项--配置java ->选择2有两个程序提供'java‘。

选择命令

java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/bin/java) 2 *+ -11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.amzn2.0.1.x86_64/bin/java)

然后,java -version应该显示11个版本。现在安装jenkins并启动它应该不是问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69791703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档