美文网首页
salt-jinja变量使用grains

salt-jinja变量使用grains

作者: 老夫刘某 | 来源:发表于2017-08-24 08:56 被阅读0次

    salt '' saltutil.sync_grains
    salt '
    ' saltutil.sync_modules

    语法如下:{{ grains.['ip_interfaces'] }}
    如下是通过grains获得的minion服务器的信息:

    ...
        cpu_model:
            Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
        cpuarch:
            x86_64
        defaultencoding:
            None
        defaultlanguage:
            None
        domain:
        fqdn:
            ubuntu
        fqdn_ip4:
            - 127.0.1.1
        fqdn_ip6:
        gpus:
            |_
              ----------
              model:
                  SVGA II Adapter
              vendor:
                  unknown
        host:
            ubuntu
        id:
            ubuntu
        ip_interfaces:
            ----------
            eth0:
                - 192.168.220.133
            lo:
                - 127.0.0.1
        ipv4:
            - 127.0.0.1
            - 192.168.220.133
        ipv6:
            - ::1
            - fe80::20c:29ff:fe34:c4cb
        kernel:
            Linux
        kernelrelease:
            4.4.0-31-generic
        localhost:
            ubuntu
        lsb_distrib_codename:
            trusty
        lsb_distrib_description:
            Ubuntu 14.04.5 LTS
        lsb_distrib_id:
            Ubuntu
        lsb_distrib_release:
            14.04
        manufacturer:
    ...
    

    依然使用上一篇salt部署zabbix来举例,部署完成后,额希望吧配置文件中的Hostname= “ ”
    的值改成各自机器的ip地址,这样动态获取比一台一台去改快很多,

    # Mandatory: no
    # Default:
    # Hostname=
    
    Hostname={{ grains['ip_interfaces']['eth0'][0] }}
    
    ### Option: HostnameItem
    #       Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
    #       Does not support UserParameters or aliases.
    #
    # Mandatory: no
    # Default:
    

    替换完成后,我们执行下:

    [root@centos2 conf]# salt  ubuntu  state.sls  cp  saltenv=base  test=true
    ubuntu:
    ----------
              ID: send zabbix.tar.gz
        Function: file.managed
            Name: /usr/local/services/zabbix-3.0.0.tar.gz
          Result: None
         Comment: The following values are set to be changed:
                  newfile: /usr/local/services/zabbix-3.0.0.tar.gz
         Started: 
        Duration: 
         Changes:   
    ----------
              ID: send configuration file
        Function: file.managed
            Name: /etc/zabbix_agentd.conf
          Result: None
         Comment: The following values are set to be changed:
                  diff: --- 
                  +++ 
                  @@ -140,7 +140,7 @@
                   # Default:
                   # Hostname=
                   
                  -Hostname=Zabbix server
                  +Hostname=192.168.220.133
                   
                   ### Option: HostnameItem
                   #    Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
         Started: 
        Duration: 
         Changes:   
    
    Summary
    ------------
    Succeeded: 2 (unchanged=2)
    Failed:    0
    ------------
    Total states run:     2
    

    从执行结果上看到:

                  +Hostname=192.168.220.133
    

    我们通过测试运行 ,这里已经将zabbixagent中Hostname=Zabbix server动态改成了对应agent的ip地址

    相关文章

      网友评论

          本文标题:salt-jinja变量使用grains

          本文链接:https://www.haomeiwen.com/subject/jtwddxtx.html