广告
返回顶部
首页 > 资讯 > 后端开发 > Python >saltstack (3) grains
  • 302
分享到

saltstack (3) grains

saltstackgrains 2023-01-31 02:01:15 302人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

1、使用自定义grains     grans的一些基本用法:    salt object grains.ls   查看某台设备当前可用grains的key    salt object  grains.items   查看某台设备当前可

1、使用自定义grains 

    grans的一些基本用法:

    salt object grains.ls   查看某台设备当前可用grains的key

    salt object  grains.items   查看某台设备当前可用 grains 的值 

    salt -G 'os:Centos' test.ping   &&  salt -G 'os:Amazon' test.ping

    salt -G 'cpuarch:x86_64' grains.item num_cpus

    salt -G 'mem_total:32232'  test.ping  

    salt 'linux-node1*' grains.get fqdn   查询某个的信息

    salt -G os:CentOS cmd.run 'uptime'   使用granis来匹配主机 -G 参数

[root@Redis01-jp base]# pwd
/srv/salt/base
[root@redis01-jp base]# ls
apache  dns.sls  files  Nginx.sls  top.sls
[root@redis01-jp base]# cat dns.sls
local_resolv:
  file.managed:
    - source: salt://files/resolv.conf
    - name: /etc/resolv.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    - defaults:
      DNS_SERVER: 8.8.8.8       # 为变量传值 
[root@redis01-jp base]# cat files/resolv.conf
options timeout:2 attempts:5
search ap-northeast-1.compute.internal
nameserver 172.31.0.2
nameserver {{ DNS_SERVER }}     # 调用变量
[root@redis01-jp base]# salt 'redis02-jp' state.sls dns  #手工调用dns模块(首先加载dns.sls文件,如果没有此文件加载base/dns/init.sls 文件)
redis02-jp:
----------
          ID: local_resolv
    Function: file.managed
        Name: /etc/resolv.conf
      Result: True
     Comment: File /etc/resolv.conf updated
     Started: 06:08:55.301324
    Duration: 59.928 ms
     Changes:
              ----------
              diff:
                  ---
                  +++
                  @@ -1,4 +1,4 @@
                   options timeout:2 attempts:5
                  -; generated by /sbin/dhclient-script
                   search ap-northeast-1.compute.internal
                   nameserver 172.31.0.2
                  +nameserver 8.8.8.8
Summary for redis02-jp
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1
Total run time:  59.928 ms
[root@redis01-jp base]# salt -G 'roles:cacheserver' cmd.run 'w'
redis02-jp:
     06:43:19 up  3:24,  1 user,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    ec2-user pts/0    static-ip-218-20 03:25    1:42m  0.01s  0.00s sshd: ec2-user
[root@redis01-jp base]#
[root@redis01-jp base]# vim /etc/salt/master
[root@redis01-jp base]# sed -n '680,682p' /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
[root@redis01-jp base]#

  

2、使用pillar 调用变量

[root@redis01-jp ~]# vim /etc/salt/master
[root@redis01-jp ~]# sed -n '527,529p' /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
[root@redis01-jp ~]# mkdir /srv/pillar
[root@redis01-jp ~]# service salt-master restart
Stopping salt-master daemon:                               [  OK  ]
Starting salt-master daemon:                               [  OK  ]
[root@redis01-jp pillar]# tree /srv/pillar/
/srv/pillar/
|-- pkg
|   `-- init.sls
`-- top.sls
1 directory, 2 files
[root@redis01-jp pillar]# cat /srv/pillar/pkg/init.sls
pkgs:
  {% if grains['os_family'] == 'RedHat' %}
  apache: Httpd
  vim: vim-enhanced
  {% elif grains['os_family'] == 'Debian' %}
  apache: apache2
  vim: vim
  {% elif grains['os'] == 'Arch' %}
  apache: apache
  vim: vim
  {% endif %}
[root@redis01-jp pillar]# cat /srv/pillar/top.sls
base:
  '*':
    - pkg        #调用pkg目录(模块),系统会自动到该目录(模块)下加载init.sls
[root@redis01-jp pillar]# salt '*' pillar.items   #查看各miNIOn获得到的 pillar变量值 
redis02-jp:
    ----------
    pkgs:
        ----------
        apache:
            httpd
        vim:
            vim-enhanced

[root@redis01-jp base]# pwd
/srv/salt/base
[root@redis01-jp base]# tree apache/
apache/
`-- init.sls
0 directories, 1 file
[root@redis01-jp base]# cat apache/init.sls
apache:
  pkg.installed:
    - name: {{ pillar['pkgs']['apache'] }}    #调用pillar变量
[root@redis01-jp base]# cat top.sls
base:
  '*':
    - apache                   #调用apache模块,自动加载apache/init.sls
[root@redis01-jp ~]# salt 'redis02-jp' state.highstate
[root@redis01-jp ~]# salt '*' saltutil.refresh_pillar     刷新pillar,grains是需要重启minion端,pillar是需要刷新
redis02-jp:
    True
[root@redis01-jp ~]# salt -I 'apache:httpd' test.ping
redis02-jp:
    True
[root@redis01-jp ~]#


3、Grains与pillar 的区别总结:

    Grains        静态         minion启动时收集      目标选择、配置管理、数据查询              minion

    pillar           动态         master定义                   目标选择、配置管理、敏感数据              maste


--结束END--

本文标题: saltstack (3) grains

本文链接: https://www.lsjlt.com/news/186683.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • saltstack (3) grains
    1、使用自定义grains     grans的一些基本用法:    salt object grains.ls   查看某台设备当前可用grains的key    salt object  grains.items   查看某台设备当前可...
    99+
    2023-01-31
    saltstack grains
  • Saltstack系列4:Saltstack之Grains组件
    grains说明grains是Saltstack最重要的组件之一,grains的作用是手机被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU、内核、操作系统、虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些...
    99+
    2023-06-05
  • Saltstack远程执行命令(3)
        Saltstack的一个比较突出的优势是具备执行远程命令的功能,可以帮助运维人员完成集中化的操作平台(批量执行服务器命令)命令格式:salt '<操作目标>' <方法>[参数]实例:查看minion主机的内存...
    99+
    2023-01-31
    命令 Saltstack
  • SaltStack (一)
    SaltStack介绍saltstack是一个开源的批量分发管理工具,具有非常强大的管理功能,能同时管理上万台服务器。由python语言编写,并提供API.saltstack有四种运行方式:Local, M...
    99+
    2022-10-18
  • Saltstack系列5:Saltstack之pillar组件
    pillar组件pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板、state、API等。在pillar中定义的数据与不同业务特性的被控主机相关联,这样不同被控主...
    99+
    2023-06-05
  • saltstack python api
    一、Python安装saltstackpip install salt二、接口调用实例1、test.pingimport salt.clientclient = salt.client.LocalClient()ret = client.c...
    99+
    2023-01-31
    saltstack python api
  • SaltStack-job管理
    一、salt执行结果默认返回给master端1、job cache存放位置# Directory to store job and cache&n...
    99+
    2022-10-18
  • Saltstack 报错 python-
    执行saltstack 报错一下信息根据报错信息修改python文件#若遇报错1#Starting salt-master daemon: /usr/lib64/python2.6/site-packages/Crypto/Util/num...
    99+
    2023-01-31
    报错 Saltstack python
  • CentOS-6.5-saltstack-安装
     官方网站:https://www.saltstack.com/官方文档   https://docs.saltstack.cn/contents.htmlGitHub:  h...
    99+
    2022-10-18
  • SaltStack之Job管理和Runner
    配置文件/etc/salt/mastercachedir: /var/cache/salt/master  # cache路径keep_jobs: 24  ...
    99+
    2022-10-18
  • saltstack的深入-管理pytho
    saltstack的深入-管理python-pip操作内容: 一、基础环境 1、使用tvm-saltmaster操作 2、网络: eth0:host-only(用于虚拟内网,手动固定IP,这样从宿主机可以直接连接到这个vm) eth1:NA...
    99+
    2023-01-31
    saltstack pytho
  • 如何快速上手SaltStack
    这篇文章给大家分享的是有关如何快速上手SaltStack的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言...
    99+
    2023-06-27
  • saltstack第三波《远程执行》
    第3章 SaltStack远程执行3.1 目标(Targeting)指定目标,用来匹配minion,默认是以minion ID作为目标来匹配minion的。匹配目标,非常重要,因为匹配错了,执行命令错了,后...
    99+
    2022-10-18
  • saltstack之Return data to a mysql server
    本文章是参照官网和网上一些资料。多数以官网为主。首先是需要安装mysql数据库,我这里已经安装好了一个mysql数据库的分支叫MariaDB数据库,我就使用现成的。听说操作和mysql的操作一样。其实我就是...
    99+
    2022-10-18
  • Saltstack快速入门简单汇总
    saltstack是使用python编写的开源自动化部署与管理工具,拥有良好的扩展性以及优秀的执行效率,配置简单,可以工作在多平台上,经常被描述为 Func加强版+Puppet精简版。 saltsatck...
    99+
    2022-06-04
    入门 快速 简单
  • saltstack 执行结果返回到mysql
    系统:ubuntu 17.04 官方文档https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html m...
    99+
    2022-10-18
  • SaltStack实战之远程执行-Returners
    SaltStack实战之远程执行-Returners学习 SaltStackSaltStack实战之远程执行-Returners1. Returners列表2. 介绍mysql returner的...
    99+
    2022-10-18
  • Saltstack远程执行命令怎么用
    这篇文章给大家分享的是有关Saltstack远程执行命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。命令命令格式:salt '<操作目标>' <方法&...
    99+
    2023-06-05
  • SaltStack源码分析之使用MongoDB模块
    MongoDB模块/usr/lib/python2.6/site-packages/salt/modules/mongodb.pyMongoDB模块会先去检查是否安装有PyMongo模块# -*-...
    99+
    2022-10-18
  • SaltStack实战之配置管理-Jinja2模板
    SaltStack实战之配置管理-Jinja2模板学习 SaltStackSaltStack实战之配置管理-Jinja2模板1. Salt yaml配置文件使用Jinja2模板介绍1.1 File...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作