• 034-openstack中虚拟机启动后主机名设置问题


    openstack中虚拟机启动后主机名设置问题,在centos7中设置hostname后怎么都是原来的hostname,根本无效。

    方法一:

    在centos7中除了修改hosts文件和network文件后,还需修改etc/hostname文件,具体步骤如下

    第一步:修改/etc/sysconfig/network文件

            #>vi /etc/sysconfig/network

            添加或修改:

                    NETWORKING=yes

                    HOSTNAME=slave

    第二步:修改/etc/hosts文件

            #>vi /etc/hosts

            修改 127.0.0.1这行中的 localhost.localdomain为 slave

            修改 ::1这行中的localhost.localdomain 为slave

    第三步 :修改/etc/hostname文件(此步不操作,怎么修改都没有用)

            删除文件中的所有文字,在第一行添加slave

    第四步:重启并验证

           #>reboot -f 

           #> hostnamectl

    重启后,发现虚拟机的名字,还是和原来的创建虚拟机时的名字一样,

    [root@slave1 ~]# hostname
    slave1.novalocal
    修改文件:

    [root@slave1 ~]# cat /etc/hosts
    127.0.0.1 localhost node1 slave1.novalocal
    ::1 localhost node1 slave1.novalocal
    并且/etc/hosts文件中不能有空行。

    再重启后名字改成node1。
     

    方法二:

    在虚拟机上修改文件/etc/cloud/cloud.cfg,删除文件中与hostname相关的选项。

    其它内容:
    /etc/sysconfig/network设定主机名与网卡启动、网关配置

    [root@muban ~]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=muban
    1
    2
    3
    修改主机名:

    vi /etc/sysconfig/network 修改HOSTNAME(永久改)
    hostname再修改(临时改)

    修改了/etc/sysconfig/network下的HOSTNAME后,然后使用hostname命令使其生效。但是需要注意的是当前会话还是不会变化,但是后续新建会话会生效。 
    结合永久性修改和临时性修改hostname,使其不必重启Linux服务器

    结论:/etc/sysconfig/network 确实是hostname的配置文件,hostname的值跟该配置文件中的HOSTNAME有一定的关联关系,但是没有必然关系,hostname的值来自内核参数/proc/sys/kernel/hostname,如果我通过命令sysctl kernel.hostname=Test修改了内核参数,那么hostname就变为了Test了。

    在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty)。“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。而另一方面,“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Linuxidc)。

    在CentOS 7中,有个叫hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置。

    1.要查看主机名相关的设置:
    [root@localhost ~]# hostnamectl
    Static hostname: localhost.localdomain
    Icon name: computer
    Chassis: n/a
    Machine ID: 80a4fa4970614cf6be9597ecd6f097a9
    Boot ID: 28420e272e1847a583718262758bd0f7
    Virtualization: vmware
    Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
    Kernel: Linux 3.10.0-123.el7.x86_64
    Architecture: x86_64

    [root@localhost ~]# hostnamectl status
    Static hostname: localhost.localdomain
    Icon name: computer
    Chassis: n/a
    Machine ID: 80a4fa4970614cf6be9597ecd6f097a9
    Boot ID: 28420e272e1847a583718262758bd0f7
    Virtualization: vmware
    Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
    Kernel: Linux 3.10.0-123.el7.x86_64
    Architecture: x86_64

    2.只查看静态、瞬态或灵活主机名,分别使用“--static”,“--transient”或“--pretty”选项。
    [root@localhost ~]# hostnamectl --static
    localhost.localdomain
    [root@localhost ~]# hostnamectl --transient
    localhost.localdomain
    [root@localhost ~]# hostnamectl --pretty

    3.要同时修改所有三个主机名:静态、瞬态和灵活主机名:
    [root@localhost ~]# hostnamectl set-hostname Linuxidc
    [root@localhost ~]# hostnamectl --pretty
    Linuxidc
    [root@localhost ~]# hostnamectl --static
    Linuxidc
    [root@localhost ~]# hostnamectl --transient
    Linuxidc


    就像上面展示的那样,在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。一旦修改了静态主机名,/etc/hostname 将被自动更新。然而,/etc/hosts 不会更新以保存所做的修改,所以你每次在修改主机名后一定要手动更新/etc/hosts,之后再重启CentOS 7。否则系统再启动时会很慢。

    4.手动更新/etc/hosts

    vim /etc/hosts

    127.0.0.1 Linuxidc hunk_zhu
    #127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomai

    5.重启CentOS 7 之后(reboot -f ),
    [root@Linuxidc ~]# hostname
    Linuxidc
    [root@hunk_zhu ~]# hostnamectl --transient
    Linuxidc
    [root@hunk_zhu ~]# hostnamectl --static
    Linuxidc
    [root@hunk_zhu ~]# hostnamectl --pretty
    Linuxidc

    6.如果你只想修改特定的主机名(静态,瞬态或灵活),你可以使用“--static”,“--transient”或“--pretty”选项。
    例如,要永久修改主机名,你可以修改静态主机名:
    [root@localhost ~]# hostnamectl --static set-hostname Linuxidc
    重启CentOS 7 之后(reboot -f ),
    [root@Linuxidc ~]# hostnamectl --static
    Linuxidc
    [root@Hunk_zhu ~]# hostnamectl --transient
    Linuxidc
    [root@Hunk_zhu ~]# hostnamectl --pretty
    Linuxidc
    [root@Hunk_zhu ~]# hostname

    其实,你不必重启机器以激活永久主机名修改。上面的命令会立即修改内核主机名。注销并重新登入后在命令行提示来观察新的静态主机名
    ---------------------
    作者:翟海飞
    来源:CSDN
    原文:https://blog.csdn.net/zhaihaifei/article/details/79231931
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    iOS加载HTML, CSS代码
    iOS搜索指定字符在字符串中的位置
    【解决方法】You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)
    刷新指定行或区 cell
    支付宝获取私钥和公钥
    什么是Git?
    第三方库AFNetworking 3.1.0的简单使用
    转:KVC与KVO机制
    转:常用的iOS开源库和第三方组件
    转:setValue和setObject的区别
  • 原文地址:https://www.cnblogs.com/xuefy/p/11229788.html
Copyright © 2020-2023  润新知