salt 根据ip修改主机名

Posted lfdblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了salt 根据ip修改主机名相关的知识,希望对你有一定的参考价值。

首先定义pillar

[[email protected] pillar]# cat hostname.sls 
ip_hostname:
  10.1.1.1: web1
  10.1.1.2: web2
  10.1.1.3: mysql1
  10.1.1.4: redis1
  10.1.1.5: tomcat1
  10.1.1.6: dubbo1
  10.1.1.7: zabbix1

在top.sls中调用

[[email protected] pillar]# cat top.sls 
base:
  *:
    - hostname

编写状态模块,根据ip通过pillar判断对应的主机名。

[[email protected] base]# cat set-hostname.sls 
{% set ip = salt[network.interface_ip](eth1) %}
alter_hostname:
  cmd.run:
    - name: hostnamectl  set-hostname {{ pillar[ip_hostname][ip] }}

测试执行

技术分享图片
[[email protected] base]# salt-ssh  * state.sls set-hostname  test=True
tomcat1:
----------
          ID: alter_hostname
    Function: cmd.run
        Name: hostnamectl  set-hostname tomcat1
      Result: None
     Comment: Command "hostnamectl  set-hostname tomcat1" would have been executed
     Started: 10:40:50.085925
    Duration: 0.949 ms
     Changes:   

Summary for tomcat1
------------
Succeeded: 1 (unchanged=1)
Failed:    0
------------
Total states run:     1
Total run time:   0.949 ms
web1:
----------
          ID: alter_hostname
    Function: cmd.run
        Name: hostnamectl  set-hostname web1
      Result: None
     Comment: Command "hostnamectl  set-hostname web1" would have been executed
     Started: 10:40:53.455021
    Duration: 0.814 ms
     Changes:   

Summary for web1
------------
Succeeded: 1 (unchanged=1)
Failed:    0
------------
Total states run:     1
Total run time:   0.814 ms
dubbo1:
----------
          ID: alter_hostname
    Function: cmd.run
        Name: hostnamectl  set-hostname dubbo1
      Result: None
     Comment: Command "hostnamectl  set-hostname dubbo1" would have been executed
     Started: 10:40:51.212502
    Duration: 0.817 ms
     Changes:   

Summary for dubbo1
------------
Succeeded: 1 (unchanged=1)
Failed:    0
------------
Total states run:     1
Total run time:   0.817 ms
mysql1:
----------
          ID: alter_hostname
    Function: cmd.run
        Name: hostnamectl  set-hostname mysql1
      Result: None
     Comment: Command "hostnamectl  set-hostname mysql1" would have been executed
     Started: 10:40:50.058353
    Duration: 7.89 ms
     Changes:   

Summary for mysql1
------------
Succeeded: 1 (unchanged=1)
Failed:    0
------------
Total states run:     1
Total run time:   7.890 ms
web2:
----------
          ID: alter_hostname
    Function: cmd.run
        Name: hostnamectl  set-hostname web2
      Result: None
     Comment: Command "hostnamectl  set-hostname web2" would have been executed
     Started: 10:40:51.869016
    Duration: 0.85 ms
     Changes:   

Summary for web2
------------
Succeeded: 1 (unchanged=1)
Failed:    0
------------
Total states run:     1
Total run time:   0.850 ms
zabbix:
----------
          ID: alter_hostname
    Function: cmd.run
        Name: hostnamectl  set-hostname zabbix1
      Result: None
     Comment: Command "hostnamectl  set-hostname zabbix1" would have been executed
     Started: 10:40:53.615229
    Duration: 0.856 ms
     Changes:   

Summary for zabbix
------------
Succeeded: 1 (unchanged=1)
Failed:    0
------------
Total states run:     1
Total run time:   0.856 ms
redis1:
----------
          ID: alter_hostname
    Function: cmd.run
        Name: hostnamectl  set-hostname redis1
      Result: None
     Comment: Command "hostnamectl  set-hostname redis1" would have been executed
     Started: 10:40:53.801096
    Duration: 0.857 ms
     Changes:   

Summary for redis1
------------
Succeeded: 1 (unchanged=1)
Failed:    0
------------
Total states run:     1
Total run time:   0.857 ms
View Code

 

以上是关于salt 根据ip修改主机名的主要内容,如果未能解决你的问题,请参考以下文章

salt 执行shell 脚本 修改名字

AIX如何获取主机名

SaltStack之修改salt-minion id

saltstack中salt-key收集的主机名与实际主机名不一致

linux 批量修改主机名脚本

修改Linux主机名与IP之间的映射关系