我们能否为 EC2 实例设置易于记忆的主机名?

2023-12-24

我正在 EC2 上运行几个标准 Fedora 实例。我觉得亚马逊分配的实例的公共主机名太奇怪而且很难记住。我想将它们更改为较短的内容(例如红色/蓝色/绿色/等)。

这样做有什么缺点吗?以及如何设置它以使其在重新启动后仍然存在?

Thanks.


在开始之前,请尝试运行hostname and hostname --fqdn并记下回应是什么。

您可以编辑/etc/hostname并设置一个主机名,该主机名在重新启动后将保留。您可以使用以下命令强制“重新加载”主机名hostname -F /etc/hostname将该值读入主机名。注销并登录后,bash 提示符将会更改。

警告/注意:
是的,最好将 bash 提示符中的主机名设置为比ip-123-123-123-123但我决定放弃我的(至少现在),因为似乎很多事情确实依赖于以标准方式设置 ec2 实例上的主机名。编辑后/etc/hostname并将主机名更改为webserver很多服务似乎都失败了,因为主机名无法解析,并且 apache 无法启动。接下来我编辑了/etc/hosts并添加到

127.0.0.1 webserver

作为第二行。 Apache 然后会启动,但抱怨它找不到 FQDN。我确认正在运行hostname --fqdn不再工作了。

接下来我咨询了man hostname并了解到虽然您可以设置hostname看来FQDN是通过 DNS 查找返回的内容。

THE FQDN

您无法使用此命令更改 FQDN(由 hostname --fqdn 返回)或 DNS 域名(由 dnsdomainname 返回)。系统的 FQDN 是解析器 (3) 返回的主机名名称。

从技术上讲:FQDN 是 getaddrinfo(3) 针对 gethostname(2) 返回的主机名返回的名称。 DNS 域名是第一个点之后的部分。

因此,这取决于如何更改它的配置(通常在 /etc/host.conf 中)。通常(如果主机文件在 DNS 或 NIS 之前解析)您可以在 /etc/hosts 中更改它。

我认为可能可以设置系统/欺骗系统返回 FQDN,例如ip-123-123-123-123.ec2.internal即使主机名是webserver但此时它开始看起来比它的价值更麻烦,而且对我来说,有一个更好的 bash 提示符可能会导致很多软件和配置问题,所以我决定放弃。

我还了解到很多亚马逊 ec2 实例都使用名为云初始化 https://help.ubuntu.com/community/CloudInit:

cloud-init 是处理云实例早期初始化的 Ubuntu 软件包。它安装在 Ubuntu 云映像中以及 EC2 上提供的官方 Ubuntu 映像中。

它配置的一些内容是:

  • 设置默认区域设置
  • 设置主机名
  • 生成ssh私钥
  • 将 ssh 密钥添加到用户的 .ssh/authorized_keys 以便他们可以登录
  • 设置临时挂载点

cloud-init 的行为可以通过用户数据进行配置。用户数据可以由用户在实例启动时给出。这是通过 ec2-run-instances 的 --user-data 或 --user-data-file 参数完成的

我也发现了这个 https://code.launchpad.net/%7Eclint-fewbar/cloud-init/glusterfs-mount-example其中讨论了如何使用 cloud-init 配置主机名:

在 EBS 实例上,关闭并稍后启动将得到不同的 IP 地址。

如果用户没有修改 /etc/hostname 的原始值(由元数据的“local-hostname”播种),则 cloud-init 将再次设置主机名并更新 /etc/hostname。

如果用户修改了 /etc/hostname,它将保持用户管理。

此外,如果 /etc/cloud/cloud.cfg 包含设置为 True 值的“preserve_hostname”值,则 /etc/hostname 将永远不会被触及。

有趣的是,如果您不更改主机名,cloud-init 软件包将为您保持最新状态。

如果其他人有解决方法或者可以解决提到的一些问题,并帮助确保 ec2 实例不会因为更改主机名而出现任何问题,我会很高兴听到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们能否为 EC2 实例设置易于记忆的主机名? 的相关文章

  • 如何访问在 Amazon ec2 上运行的 django 应用程序?

    所以 我查看了堆栈溢出 其他网站 但无法解决这个问题 因此发布这个问题 我最近开始学习 django 并且现在尝试在 ec2 上运行它 我有一个以下格式的 ec2 实例 ec2 xx xxx xx xxx us west 2 compute
  • 如何在 AWS 上设置无密码 ssh

    如何在 AWS 集群上的节点之间设置无密码 ssh 以下设置无密码身份验证的步骤已针对 Centos 和 Ubuntu 进行了彻底测试 假设 您已经可以访问您的 EC2 机器 可能正在使用 pem 密钥 或者您拥有具有 root 权限的 u
  • 是否可以将公共IP分配给AWS中的Lambda函数?

    我们需要访问企业后端中的 API 该 API 仅接受来自授权 IP 地址的调用 此时 我们的移动客户端正在调用 AWS Lambda 函数 该函数执行一些转换 然后调用分配了授权公共 IP 地址的 EC2 实例上的另一个服务 第二个服务执行
  • 在Python中比较EC2实例的启动时间和当前时间

    我从 EC2 实例中提取 launch time 它返回一个如下所示的 unicode 字符串 2014 12 22T08 46 10 000Z 我使用 dateutil 解析器将其转换为日期时间 launch time parser pa
  • 使用一组过滤器在给定区域中最新的 AMI ID

    我正在尝试运行下面的代码 但是在执行时出现错误 您能否建议我进行更改 最新的 ami https github com bwood latest ami blob master latest ami py ec2 user ip XXXXX
  • 从 Docker 容器获取控制台输出

    我构建了一个安装了 Python 的映像以及一个 Python 应用程序 我的 Python 应用程序是你好世界 应用程序 只需打印 Hello World 屏幕上 Dockerfile FROM python 2 onbuild CMD
  • 如何通过命令行缩小/扩大 aws ecs 集群中的容器,我应该使用 aws cli 还是 ecs-cli?

    我正在使用 EC2 实例运行 AWS ECS 集群 我想要一个命令将任务扩展到 1 个正在运行的实例 然后在一段时间后 当我不需要它时 我想将其缩小到 0 这应该会破坏底层 EC2实例以避免收费 我没有使用 Fargate 因为它不属于免费
  • PhantomJS CPU(核心)受限吗?

    我开始做一些基于并行浏览器的测试 并想看看在达到 100 CPU 之前我可以在 EC2 大型机器上并行运行多少个浏览器 我正在使用 JMeter webdriver 插件来实际运行浏览器 对于 FireFox 实际上每个 CPU 核心有 1
  • EC2 增加大小后无法调整卷大小

    我已按照调整 EC2 卷大小的步骤进行操作 停止实例 拍摄当前卷的快照 在同一区域中从上一个快照创建了一个更大大小的新卷 从实例中分离旧卷 将新卷附加到同一安装点的实例 旧卷是 5GB 我创建的卷是 100GB 现在 当我重新启动实例并运行
  • MySQL 索引创建速度很慢(在 EC2 上)

    我有一张相当简单的桌子 requestparams requestid varchar 64 NOT NULL requestString text ENGINE MyISAM 使用 LOAD DATA 填充表后 我正在更改架构并将 req
  • Amazon EC2 - Apache 服务器重启问题

    当我运行这个命令时 sudo etc init d httpd restart 它给出以下错误 停止 httpd 失败 启动 httpd 98 地址已在使用中 make sock 无法绑定到地址 80 98 地址已在使用 make sock
  • 基于 SQS 队列大小的自动缩放

    我已将这些命令组合在一起 以根据 SQS 队列大小自动缩放 EC2 实例 我已运行所有命令 我的队列有 10 条消息 但尚未启动单个实例 我想弄清楚我的 cloudwatch 警报正在侦听哪个 SQS 队列 此外 我们还感谢任何有助于识别问
  • 如何在运行 NGINX Docker 容器的 AWS EC2 上启用 HTTPS?

    我在 AWS 上有一个运行 Amazon Linux 2 的 EC2 实例 在上面 我安装了 Git docker 和 docker compose 完成后 我克隆了我的存储库并运行docker compose up让我的生产环境启动 我访
  • Rails 的 Puma Systemd 配置不起作用

    我已经完成了一个使用 Ruby on Rails 构建的应用程序 现在我想将其托管在 AWS 上的 EC2 实例上 我已经为其配置了服务器 并且正在使用pumaHTTP服务器作为应用服务器 在生产中启动应用程序总是需要我运行RAILS EN
  • 自动递增 EC2 实例名称

    我在 Stackoverflow 上看到很多问题 询问是否有办法自动递增实例名称 例如 foo1 foo2 fooN 我想看看是否有办法在 Powershell 中执行此操作 我正在使用 AutoLaunchConfiguration AS
  • 在 Elastic Beanstalk SSH 上运行 Django 命令 -> 缺少环境变量

    所以这对我来说是一个长期存在的问题 我很想解决它 我也认为这会帮助很多其他人 我希望在 Elastic Beanstalk EC2 实例上进行 ssh 操作后运行 Django 命令 例如 python manage py dumpdata
  • 限制 terraform 嵌套资源中的 AWS 安全组设置

    我有一个aws directory service directory服务中定义的资源 这会创建一个安全组 https registry terraform io providers hashicorp aws latest docs re
  • PyTorch 给出 cuda 运行时错误

    我对我的代码做了一些小小的修改 以便它不使用 DataParallel and DistributedDataParallel 代码如下 import argparse import os import shutil import time
  • 使用 Amazon SQS 的 .net 应用程序示例

    我正在寻找一个示例 Net 应用程序 该应用程序会持续检查 Amazon SQS 是否有新消息 并在发现新消息时执行一项操作并将其从队列中删除 我的目标是让一个在 EC2 上运行的应用程序监视我的 SQS 队列中的新消息 当找到一条消息时
  • 如何使用 aws-cdk 在 EC2 和 RDS 之间创建 DependsOn 关系

    我目前正在使用aws cdk TypeScript 创建一个堆栈 其中包含EC2实例和一个RDS数据库实例 The RDS实例需要在之前设置EC2实例可以启动并且userdata将被执行 我遇到的问题是 我找不到一种方法来定义DepensO

随机推荐

  • 使用 C# 以编程方式锁定 Windows 工作站

    我遇到了这个锁定 Windows 工作站的示例 using System Runtime InteropServices DllImport user32 dll SetLastError true static extern bool L
  • TCP 序列号

    我试图了解 TCP 标头的序列号是如何生成的 在某些地方我读到它是 数据包中第一个字节的索引 链接在这里 https stackoverflow com questions 2672734 tcp sequence number quest
  • 使用sqlalchemy解析python3中的hstore

    我有一个 csv 文件 其中一列以 hstore 格式编写 我想将它转换为 python 字典 但同时保持我的代码干燥 我的代码库使用 sqlalchemy 它有一个 parse hstore函数定义在https github com sq
  • 根据先前的值添加到列表

    我正在尝试将这个列表组合在一起 输入示例 M1 a 14 a 7 a 16 b 3 b 15 c 22 c 1 c 5 Output a 14 7 16 b 3 15 c 22 1 5 含义将所有 a 值组合在一起 同样适用于 b c 等
  • 为什么 math.acos 会导致 ValueError: math 域错误?

    我正在使用 math acos 函数 math acos 1 0000000000000002 这会引发数学域错误 有人能说出原因吗 我之前计算过这个值 这里这个值给出了错误 但如果我最后删除 2 它不会抛出错误 我不明白这是为什么 See
  • 使用 Maven 构建多架构 SWT 应用程序

    我已经为 SWT 应用程序设置了一个 Maven 项目 该应用程序在多个平台上运行 OS X Windows 64 位 Windows 32 位 Linux 64 位和 Linux 32 位 我已对其进行设置 以便在运行 Maven 时检测
  • 在 django 中为模型创造完整历史的最佳方式是什么?

    如何为模型创造历史 向我显示某个字段中的旧值和新变化的值 在我看来 我认为为具有相同字段的每个模型创建历史模型 并且当用户从第一个模型创建新数据或更新数据时 也转到第二个模型 我搜索了很多这个问题 发现了一个名为 django revers
  • 错误 AndroidManifest.xml 不存在或根标记不正确

    我是使用 Android Studio 进行 Android 应用程序开发的新手 在尝试运行我的应用程序时遇到了此错误 错误 AndroidManifest xml 不存在或根标记不正确 我发现我的 AndroidManifest xml
  • Composer:您的系统中缺少请求的 PHP 扩展 ext-intl *

    我正在尝试使用composer json文件 但是 当我尝试运行命令 composer install in my path project 我收到错误 我已经配置了我的wamp for extension php intl dll 并复制
  • log4net / EventLogAppender 忽略我的 LogName

    此配置应该使我的日志条目最终出现在自定义日志中 对吧 但它最终会出现在应用程序日志中 我的应用程序以管理员身份运行 运行我的应用程序后 我可以确认日志和事件源是通过使用创建的EventLog Exists MyLog and EventLo
  • 谷歌浏览器扩展中的文件“compulated_hashes.json”的用途是什么?

    在一些谷歌浏览器扩展中 有一个computed hashes json文件 我没有找到任何有关该文件的文档 因此 如果我能得到一些解释 那就太好了 以下是该文件的摘录 file hashes block hashes THf ne1nArt
  • 通常禁用矩阵降维?

    众所周知 如果列维或行维为 1 R 会尝试将矩阵简化为向量 可以通过使用drop F命令 然而 我目前正在编写一个大型 R 包 并且需要在代码中数百次禁用维度下降 因此我必须手动找到这些位置并添加drop F数百次 因此 我想知道是否有任何
  • Symfony2 表单未选中的复选框未考虑在内,为什么?

    当我发送带有未经检查的复选框 如果相关实体属性等于true 那么它不会改变为false 反之亦然 当发送带有选中复选框的表单时将属性设置为 true 效果很好 并且保存的所有表单其他字段也可以正常工作 以下是我构建表单并声明相关属性的方法
  • NSAttributedString 颜色测试

    比较或测试 NSAttributed 字符串的特定颜色属性的正确方法是什么 举个例子 我想知道文本选择是否有红色文本 我尝试了几种方法 如下所示 但没有一种方法能够产生匹配结果 我看到屏幕上的文本变成红色 并且记录属性返回 UIDevice
  • 是否有 ADB 命令可以切换允许模拟位置?

    我搜索了一些主题但没有找到答案 我不需要指定纬度 经度 而是打开允许模拟位置的开关 安装应用程序后 在 Marshmallow 及以上版本 中 只需运行 adb shell appops set com example my package
  • 集合视图拖放延迟

    有没有办法调整在集合视图单元格上开始拖动所需的时间 如同UILongPressGestureRecognizer minimumPressDuration财产 我知道我们可以迭代附加到视图的所有手势识别器 并可能找到我们需要的手势识别器 但
  • 多部分/表单数据上传 - Nodejs - Expressjs

    由于express multipart已从Express 4 x库中删除 那么在expressjs中处理文件上传的最佳方法是什么 刚刚回答了一个类似的问题 https stackoverflow com q 23063317 971592关
  • 某些文件扩展名的 SVN Commit 问题

    我在从 Tortoise SVN 上传文件到 SVN 存储库时遇到问题 我可以上传所有文件 除了某些总是失败的特定文件 文件列表 Rhino Mocks dll 系统 Data SQLite dll 微软 Ajax debug js 在 S
  • VT100终端仿真器中的键盘传输模式

    我正在 javascript 和 vt100 规范中实现 vt100 终端模拟器 来自man terminfo and infocmp 告诉我smkx E 1h E 是进入键盘传输模式的代码 rmkx E 1l E gt 是离开 键盘传输
  • 我们能否为 EC2 实例设置易于记忆的主机名?

    我正在 EC2 上运行几个标准 Fedora 实例 我觉得亚马逊分配的实例的公共主机名太奇怪而且很难记住 我想将它们更改为较短的内容 例如红色 蓝色 绿色 等 这样做有什么缺点吗 以及如何设置它以使其在重新启动后仍然存在 Thanks 在开