salt 根据ip修改主机名

首先定义pillar

[root@web1 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中调用

[root@web1 pillar]# cat top.sls 
base:
  '*':
    - hostname

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

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

测试执行

[root@web1 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

 

posted @ 2018-09-28 10:42  流年有爱,岁月静好  阅读(689)  评论(0编辑  收藏  举报