自动化运维——saltstack基础部署(三)

本文介绍了SaltStack的自动化运维基础,包括Grains的用途、信息查询和自定义,阐述了Pillar作为动态数据系统的特点,以及在配置管理中的应用。同时,讲解了Jinja模板的基本用法和在SaltStack中的作用,展示了如何使用控制结构和引用变量。
摘要由CSDN通过智能技术生成

一 grains

Grains是SaltStack的一个组件,存放在SaltStack的minion端。
当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当
minion重启时才会进行数据的更新。
由于grains是静态数据,因此不推荐经常去修改它。
应用场景:
信息查询,可用作CMDB。
在target中使用,匹配minion。
在state系统中使用,配置管理模块。

1 信息查询

[root@server1 ~]# salt server2 grains.ls
server2:
    - SSDs
    - biosreleasedate
    - biosversion
    - cpu_flags
    - cpu_model
    - cpuarch
    - cwd
    - disks
    - dns
    - domain
    - fqdn
    - fqdn_ip4
    - fqdn_ip6
    - fqdns
    - gid
    - gpus
    - groupname
    - host
    - hwaddr_interfaces
    - id
    - init
    - ip4_gw
    - ip4_interfaces
    - ip6_gw
    - ip6_interfaces
    - ip_gw
    - ip_interfaces
    - ipv4
    - ipv6
    - kernel
    - kernelrelease
    - kernelversion
    - locale_info
    - localhost
    - lsb_distrib_codename
    - lsb_distrib_id
    - lsb_distrib_release
    - machine_id
    - manufacturer
    - master
    - mdadm
    - mem_total
    - nodename
    - num_cpus
    - num_gpus
    - os
    - os_family
    - osarch
    - oscodename
    - osfinger
    - osfullname
    - osmajorrelease
    - osrelease
    - osrelease_info
    - path
    - pid
    - productname
    - ps
    - pythonexecutable
    - pythonpath
    - pythonversion
    - saltpath
    - saltversion
    - saltversioninfo
    - selinux
    - serialnumber
    - server_id
    - shell
    - swap_total
    - systemd
    - uid
    - username
    - uuid
    - virtual
    - zfs_feature_flags
    - zfs_support
    - zmqversion
[root@server1 ~]# salt server2 grains.item ipv4
server2:
    ----------
    ipv4:
        - 127.0.0.1
        - 172.25.7.2
[root@server1 ~]# salt server2 grains.item roles
server2:
    ----------
    roles:
        apache
[root@server1 ~]# salt server3 grains.item roles
server3:
    ----------
    roles:
        nginx
root@server1 ~]# salt server? grains.item roles
server3:
    ----------
    roles:
        nginx
server2:
    ----------
    roles:
        apache

 

 

2 自定义grains项

在server2上


[root@server2 mnt]# cd /etc/salt/
[root@server2 salt]# ls
cloud           cloud.maps.d       master    minion.d   proxy
cloud.conf.d    cloud.profiles.d   master.d  minion_id  proxy.d
cloud.deploy.d  cloud.providers.d  minion    pki        roster
[root@server2 salt]# vim minion            #在/etc/salt/minion中定义
grains:
  roles: apache
[root@server2 salt]# systemctl restart salt-minion.service   #重启salt-minion,否则数据不会更新

 在server3上

在/etc/salt/grains中定义
[root@server3 conf]# cd /etc/salt/
[root@server3 salt]# ls
cloud           cloud.maps.d       master    minion.d   proxy
cloud.conf.d    cloud.profiles.d   master.d  minion_id  proxy.d
cloud.deploy.d  cloud.providers.d  minion    pki        roster
[root@server3 salt]# vim grains
[root@server3 salt]# cat grains 
roles: nginx

3 编写grains模块

在salt-master端创建_grains目录

同步数据:
root@server1 ~]# cd /srv/salt/
[root@server1 salt]# mkdir _grains
[root@server1 salt]# cd _grains/
[root@server1 _grains]# vim grains.py
[root@server1 _grains]# cat grains.py 
#!/usr/bin/env python
def grains():
     # initialize a grains dictionary
     grains = {}
     # Some code for logic that sets grains like
     grains['hello'] = 'world'
     grains['salt'] = 'stack'
     return grains
[root@server1 _grains]# salt '*' saltutil.sync_grains
server2:
    - grains.grains
server3:
    - grains.grains

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值