Mic*_*ner 10

很大程度上取决于你工作的环境。

首先也是最重要的 - 删除对(流行)文化的任何引用,坚持使用有意义和描述性的名称。

可能知道“zeus”是代理服务器,因为您安装了它。但是,任何未来的同事都非常希望通过服务器的功能而不是他的名字来指代服务器。

如果您接受这一点,我建议您进行一次头脑风暴会议,并写下您拥有哪些不同类型的网络实体(“主机”)、如何将它们组合在一起以及哪些信息足够重要以在主机名中进行编码。您的命名约定应该能够明确地命名所有现有设备,并让用户大致了解主机的功能。一定要留出足够的增长空间来适应未来的发展,这样你就不需要在几个月内把你的命名约定抛在脑后。

记录您的命名约定(不仅是如何,而且是为什么),确保需要定期使用它的每个人都了解它的布局,对评论/建议持开放态度,不要将其吹捧为圣杯,在需要时进行调整。

例子

作为思考的食物,这是我们在我的一位前雇主使用的模式:

Web 服务提供商,负责 Web 项目的开发和运营。主要是 LAMP 的东西,虽然规模更大(项目的大小,而不是数量)。

对于物理设备:

<SITE>-<RACK>-<DEVICE>.in.<DOMAIN>.<TLD>

  • SITE 是唯一的站点标识符,主要是三个字母
  • RACK 是由我们分配或从托管设施接管的标识符,应该能够唯一标识 SITE 上的机架
  • DEVICE 是一个“设备类”,后面有一个计数器,例如 OpenVZ 节点的 vnodeXX,千兆交换机的 swge 等。
  • DOMAIN/TLD 是给定设备所有者的域。

对于逻辑实体:

逻辑实体可能是任何具有与给定物理设备/位置没有强耦合的 IP 地址的东西。这主要是来宾操作系统的 IP 地址(在我们的例子中是 OpenVZ 或 ESX)。

<项目>-<环境>-<服务>.in.<域>.<TLD>

  • PROJECT 是一个项目标识符,它将项目的各种服务组合在一起。
  • 环境可以是生产、分期或开发,4 个字母的缩写
  • SERVICE 的形式相对自由,但常见的情况是标准化的,如 web、db、mailout 等。
  • DOMAIN 是相关项目的主要域。

对于 IP 地址:

我们所有的服务都只能从专用网络访问,我们有 NAT 和/或带有“服务 IP 地址”的负载平衡器,面向 Internet 的主机使用它们来访问我们的服务。对于那些我们使用这样的东西:

<项目>-<环境>-vip-<标识符>.<域>.<顶级域名>

  • IDENTIFIER 是唯一标识 IP 地址用途的东西,例如专门用作项目德国域的 Web VirtualHost 的地址可能被称为“wwwde”。

总结一下

命名约定对我们来说很好用,有些人(比如 - 我们的开发人员 ;) )可能会称之为夸大其词。请记住,它完全夸大了,如果你只维持一个网站,并有被分配到一个项目的服务器。但对我们来说,它完成了一些非常重要的事情。

在处理逻辑实体的主机名时,我们总是知道:

  • 涉及哪个项目:
    各个项目对不同的负责开发团队具有不同的重要性。快速浏览一下主机名,您就会知道如何确定任务的优先级以及在管理/开发方面需要询问谁
  • 主机所处的环境:
    开发环境中的问题会导致开发人员的速度变慢。临时环境中的问题会给测试人员带来痛苦,并可能危及产品展示。如果生产中的某些事情受到影响,公司就会亏损。
  • 哪些子系统受到影响:
    邮件假脱机程序、批处理程序等并不那么重要,但如果 Web 或数据库服务器出现故障,事情会很快变脏。

对于物理设备,始终可以从主机名中推断出确切位置。

物理设备和逻辑服务器之间的弱耦合对某些人来说可能是关闭的(例如,当我拔掉交换机 x/服务器 y 的插头时,我怎么知道哪些项目会受到影响),但这是必须的我们的环境,因为我们的项目周转率很高,而且通常我们甚至不知道将在我们刚刚配置的新硬件上托管哪些项目。

  • 对于网络设备,我同意——它是什么,它在哪里,它做什么,加上一个序列号是要走的路。对于服务器,我不同意。服务器应该有匿名名称,服务(如“mail”或“sql”或“www”)是这些名称的别名。这样,当服务从一台服务器移动到另一台服务器时,只有别名会移动。您最终不会得到名为“backup”的服务器,该服务器不再是备份服务器,但由于安装了 SQL 数据库而无法移动。 (5认同)

Kev*_*lby 9

对于服务器,我喜欢我办公室目前使用的标准<3 个字母位置代码>-<2 位递增数字以避免重名>

一个例子是:PHOU-DMOSQL01

  • 身体的
  • 休斯顿
  • 演示环境
  • 数据库服务器
  • 01

对于台式机/笔记本电脑,我通常使用类型指示符和用户名(假设机器被分配给特定用户)(LT|DT)——例如我的笔记本电脑是 LT-KCOLBY


V. *_*nov 5

真正的答案是没有答案。

我尝试了许多服务器和计算机名称的约定。我的结论是,名称本身是没有意义的,只要您有一个现成的、容易的和无结果的可修改的描述字段。

因此,我对此的看法是——发疯。幻想英雄、星球大战图标、神话 - 任何适合您的幻想并且有足够的范围来包含您现有的所有主机和扩展。(并且不会让您的管理层经常缺乏幽默感,老板可能对名为“pointyhaireddimwit”的服务器很挑剔:))。

  • “配置中的报复性评论”肯定是一个文化军舰名称:) (3认同)

niX*_*Xar 5

我使用独特的名称来描述独特的机器。例如,在我当前的项目中,有 200 多台服务器,我使用了 Wikipedia 中的明星名称列表。原因是实际名称比超紧凑索引(例如 srv-05-92)具有更多冗余。有一点很重要:在嘈杂的服务器机房中转录、打字或通过电话交谈时,它提供了很小的错误率。

描述性信息存储在 DNS 的 TXT 字段中,Mac 地址等也是如此。您还可以根据 mac 地址请求名称:

$ host 00-12-34-56-78.mac.fr.dom
00-12-34-56-78.mac.fr.dom is an alias for arcturus.eqx.vl304.fr.dom
arcturus.eqx.vl304.fr.its has address 10.21.4.30
Run Code Online (Sandbox Code Playgroud)

您绝对要避免的一件事是根据机器的功能命名机器。这迟早会咬你的屁股。为此目的,只需使用别名(CNAME 或附加 A 记录)。


注意:这都是使用自定义 XML 文件中的 XSLT 生成的:

<?xml version="1.0" standalone="yes"?>
<domain suffix="dom" xmlns:h="http://www.w3.org/1999/xhtml">
  <vlans>
     <vlan name="vl304" value="4" />
  </vlans>
  <country code="fr" prefix="10.21">
     <datacenter name="eqx" desc="Equinix">
        <host name="arcturus" lso="30">
          <vlan name="vl300" if="eth0" mac="00:12:34:56:78" />
          <txt type="loc">rack 5</txt>
          <txt type="sn">99A0632</txt>
          <txt type="model">xSeries x3350</txt>
          <doc>Load balancer</doc>
          <rsa ip="192.168.101.30" />
          <role type="loadbalancer1" />
        </host>
     </datacenter>
   </country>
</domain>
Run Code Online (Sandbox Code Playgroud)

生成了几个别名:

  • arcturus.eqx.vl306.fr.dom(规范名称)
  • arcturus.vl306.fr.dom
  • arcturus.fr.dom
  • 00-12-34-56-78.mac.fr.dom
  • arcturus-rsa.fr.dom
  • loadbalancer1.eqx.vl306.fr.dom
  • loadbalancer1.vl306.fr.dom
  • 负载均衡器1.fr.dom

...以及一些 TXT 记录

  • 琐事:小心你选择的清单。我曾经使用过地中海岛屿列表,后来才意识到希腊群岛包括“莱斯博斯岛”。 (2认同)
  • 莱斯博斯岛有什么问题? (2认同)

归档时间:

查看次数:

35313 次

最近记录:

14 年,7 月 前