通过“用户数据”(Amazon Linux)通过cloud-init启用EPEL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过“用户数据”(Amazon Linux)通过cloud-init启用EPEL相关的知识,希望对你有一定的参考价值。

我正在尝试通过“用户数据”功能(使用p7zip)在AWS中启动基于Amazon Linux的EC2实例后安装cloud-init软件包:

#cloud-config
repo_update: true
repo_upgrade: all

packages:
 - p7zip

但是,由于p7zip在正常的回购中不可用并且需要启用EPEL,因此它似乎没有正确地获取包。

我的问题是:使用cloud-init,如何在初始化EC2实例时获取包之前启用EPEL?

答案
#cloud-config
# vim: syntax=yaml
#
# Add yum repository configuration to the system
#
# The following example adds the file /etc/yum.repos.d/epel_testing.repo
# which can then subsequently be used by yum for later operations.
yum_repos:
    # The name of the repository
    epel-testing:
        # Any repository configuration options
        # See: man yum.conf
        #
        # This one is required!
        baseurl: http://download.fedoraproject.org/pub/epel/testing/5/$basearch
        enabled: false
        failovermethod: priority
        gpgcheck: true
        gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
        name: Extra Packages for Enterprise Linux 5 - Testing
另一答案

对于更新版本的Amazon Linux,您需要将以下内容添加到cloud-config文件中:

yum_repos:
    epel_custom:
        name: Extra Packages for Enterprise Linux 6 - $basearch
        baseurl: http://download.fedoraproject.org/pub/epel/6/$basearch
        mirrorlist: https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
        failovermethod: priority
        enabled: true
        gpgcheck: true
        gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 

Here是一个工作云配置文件的示例,可以在启动时用作userdata

另一答案

以下部分将启用EPEL与GPG。请注意,密钥是在初始引导时导入的。

#cloud-config
bootcmd:
  - [ cloud-init-per, once, gpg-key-epel, rpm, "--import", "https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7" ]
yum_repos:
  epel:
    name: EPEL
    mirrorlist: https://mirrors.fedoraproject.org/mirrorlist?repo=epel-7&arch=$basearch
    enabled: true
    gpgcheck: true
repo_update: true
repo_upgrade: all

来自https://github.com/trajano/terraform-docker-swarm-aws/blob/master/common.cloud-config

以上是关于通过“用户数据”(Amazon Linux)通过cloud-init启用EPEL的主要内容,如果未能解决你的问题,请参考以下文章

我们可以通过没有密码的linux shell脚本连接amazon redshift吗?

在 mac 上通过 ssh 连接到 amazon aws linux 服务器

Cookbook 的深度依赖需要一个不可用的 Ruby 版本。如何通过 Chef for Amazon Linux 规避?

通过SecureCRT访问亚马逊Amazon EC2主机

通过SecureCRT访问亚马逊Amazon EC2主机

如何检查 Amazon Linux 机器 (AMI) 上的 Tomcat 版本?