手动添加主机名别名

手动添加主机名别名

我花了几个小时研究如何自动化一个本地域下的数百台主机。(我在一台 ubuntu linux 17.04 机器上)

例如,我有 node1.domain.org、node2.domain.org,并且列表转到 node100.domain.org

实际上不可能编辑 /etc/hosts 文件并手动添加所有别名。

例如,

127.0.0.1 本地主机

127.0.1.1 哈里什

手动添加主机名别名

10.2.1.3 node1.domain.org 节点1

对于支持 IPv6 的主机,以下几行是理想的

::1 ip6-本地主机 ip6-环回

fe00::0 ip6-本地网络

ff00::0 ip6-mcast前缀

ff02::1 ip6-所有节点

ff02::2 ip6-所有路由器

我尝试了一下ip route | grep default,发现网关是 10.1.10.1,但不知道我是否应该在这个网关上,或者从这里采取任何进一步的步骤。

我尝试cat /etc/resolv.conf并找到了我正在使用的 DNS 服务器

猫/etc/resolv.conf

由 resolvconf(8) 生成的 glibc resolver(3) 的动态 resolv.conf(5) 文件

请勿手动编辑此文件 - 您的更改将被覆盖 127.0.0.53 是 systemd-resolved 存根解析器。运行“systemd-resolve --status”以查看有关实际名称服务器的详细信息。

名称服务器 10.2.254.254 名称服务器 8.8.8.8 名称服务器 127.0.0.53

搜索域名.com

我发现所有节点都在使用的 DNS

xcat 节点1 dns

服务器:10.2.254.254#53(10.2.254.254)

远程节点 DNS 和我的本地机器 DNS 都匹配。

但是,不知道为什么 resolve.conf 文件中是 domain.com 而不是 domain.org,因为所有节点都在 domain.org 下而不是 domain.com 下(但它告诉我当我尝试编辑它时它会覆盖,而且它确实覆盖了。我尝试在将其更新为 domain.org 后运行“sudo /etc/init.d/networking restart”或“sudo service network-manager restart”,文件被覆盖)。我观察到,当我进行此更改时,可以使用所有别名(例如node1不使用)进行 SSH node1.domain.org,但系统重启时或我使用 wifi 连接而不是以太网连接时,文件总是被覆盖。

我也尝试验证route命令,一切看起来都很正常,但仍然没有线索

路线

内核 IP 路由表

目标网关 Genmask 标志 指标参考使用 Iface

默认网关 0.0.0.0 UG 100 0 0 enp2s0f1

10.1.10.0 0.0.0.0 255.255.255.0 U 100 0 0 enp2s0f1

本地链路 0.0.0.0 255.255.0.0 U 1000 0 0 enp2s0f1

我只想使用 ssh node1 而不是 ssh node1.domain.org,或者使用 ssh node50 而不是 ssh node50.domain.org,或者使用其别名 ssh 进入任何节点,而无需手动将其添加到 /etc/hosts。我只是想找到一种可靠的方法来做到这一点。

答案1

是的,使用 ~/.ssh/config

Host bsd1
        Hostname 10.9.9.2
        User bsduser
        Port 2243
Host web-backup
        Hostname www-backup.example.com
        User dauser
        Port 2229

基本上,在每个 Host 语句之后,你可以使用几乎任何在系统级 ssh_config 中有效的选项

然后只需 ssh 到您需要做的主机的任何标签即可 -

user@darkstar:~/ $ ssh web-backup
[email protected]'s password:

答案2

老实说,这毫不费力。

~/.ssh/config

Host node* server*
  Hostname %h.domain.org

现在每个“节点”和“服务器”都映射到域。

$ ssh node04-->$ ssh node04.domain.org

$ ssh server12-->$ ssh server12.domain.org

答案3

当然,使用你的 ssh 客户端配置(~/.ssh/config):

Host node1
    Hostname node1.domain.org

相关内容