当前位置: 首页 > 工具软件 > Saltstack > 使用案例 >

自动化运维工具-saltstack-saltstack使用

何飞翰
2023-12-01

单个命令执行(查看分区等信息:)

salt 'testfor241' cmd.run 'df -h'

组件一、saltstack之grains介绍

GRAINS组件是saltstack中非常重要的一个组件,
其主要用于记录Minion的一些静态信息,如比:CPU、内存、磁盘、网络等。
grains信息是每次客户端 启动后自动上报给master的,一旦这些静态信息发生改变需要重启minion 或者重新同步下 grains。

grains 是在minion启动收集到的一些信息,比如操作系统的类型,网卡IP,内 存版本,CPU信息等

  1. 列出所有的grains项目名称

    salt 'testfor241' grains.ls
    	testfor241:
    	    - SSDs
    	    - biosreleasedate
    	    - biosversion
    	    - cpu_flags
    	    - cpu_model
    	- cpuarch
    	等等
    
  2. 列出所有的grains项和对应的值

    salt 'testfor241' grains.items
    	testfor241:
    	    ----------
    	    SSDs:
    	    biosreleasedate:
    	        05/20/2014
    	    biosversion:
    	        6.00
    	    cpu_flags:
    	        - fpu
    	        - vme
    	       - de
    

    单独查看

    salt 'testfor241' grains.item biosversion
    
  3. 自定义grains

    在被监控端testfor241上 添加grains:

    vim /etc/salt/grains
    role: zabbix_server
    env: test
    myname: xuegodlinux
    myhostname: testfor241
    

    重启minion服务

    systemctl restart salt-minion
    

组件二、saltstack之pillar介绍

grains用于存储静态不易变更的数据,而pillar一般用来存储动态的、敏感的数据;通过minion端和master端都可以配置设置或获取grains信息,而pillar信息只能在master端配置,再到minion端执行。

pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些 信息,可以自定义变量等

  1. 自定义配置pillar过程:

    vim /etc/salt/master
    pillar_roots:
      base:
        - /srv/pillar
    

    创建pillar文件的存放目录:

    mkdir -p /srv/pillar
    cd /srv/pillar
    

    创建配置文件,编辑如下内容:

    vim test.sls
    conf: /etc/123.conf
    myname: saltstack-server
    

    创建编写入口配置文件

    vim /srv/pillar/top.sls
    base:
      'testfor241':
        - test
    

    重启服务:

    systemctl restart salt-master
    
  2. 刷新来获取新的状态

    salt '*' saltutil.refresh_pillar
    

    查看:

    salt '*' pillar.items
    

Saltstack 配置管理服务

  1. 开启配置管理服务

    vim /etc/salt/master
    file_roots:
        base:
          - /srv/salt/
    
  2. 创建配置文件存储目录

    mkdir /srv/salt
    cd /srv/salt

  3. 配置安装apache

    创建入口配置文件

    vim top.sls
    base:
      'testfor241':
        - apache
    

    意思是指定客户端上执行apache的模块

    重启服务

    systemctl restart salt-master
    

    创建编写apache模块的配置文件

    vim /srv/salt/apache.sls
    #自定义的ID名称
    apache-service:
      #包安装函数
      pkg.installed:
        - names:
          #安装包名
          - httpd
          - httpd-devel
      #服务启动函数
      service.running:
        #服务名
        - name: httpd
        #开机启动
    - enable: True
    

    执行 :

    salt 'testfor241' state.highstate
    
  4. 配置远程文件管理

    创建一个文件管理的模块

    vim /srv/salt/filetest.sls
    #自定的名字
    file_test:
      file.managed:
        #远程客户端要生成的文件
        - name: /tmp/xuegodlinux.txt
        #文件从哪里拷贝
        - source: salt://test/ck.php
        - user: root
        - group: root
        - mode: 644
    

    test 目录相当于是 /srv/salt/test 目录

    在入口文件里添加模块

    vim /srv/salt/top.sls 
    base:
      'testfor241':
        - apache
    - filetest
    

    执行:

    salt 'testfor241' state.highstate
    
  5. 配置文件夹管理:

    创建一个文件夹管理的模块

    vim /srv/salt/filedir.sls 
    #自定的名字
    file_dir:
      file.recurse:
        #远程客户端要生成的文件夹
        - name: /tmp/testdir
    #文件夹从哪里拷贝
        - source: salt://test
        - user: root
        - file_mode: 644
        - dir_mode: 755
        - mkdir: True
        - clean: True
    

    在入口文件里添加模块

    vim /srv/salt/top.sls 
    base:
      'testfor241':
    - filedir
    

    执行:

    salt 'testfor241' state.highstate
    
  6. saltstack远程执行命令

    创建执行命令的配置文件

    vim /srv/salt/cmd.sls
    cmd_test:
     cmd.run:
      #若/tmp/xuegodtext.txt文件不存在,也就是结果为True则执行-name后面的命令,为false则不执行
      - unless: test -f /tmp/xuegodtext.txt
      - names:
        - touch /tmp/11.txt
        - mkdir /tmp/1233
      - user: root
    

    在入口文件里添加模块

    vim /srv/salt/top.sls 
    base:
      'testfor241':
    - cmd
    

    执行:

    salt 'testfor241' state.highstate
    
  7. saltstack远程执行shell脚本

    创建执行脚本的配置文件

    vim /srv/salt/shell.sls 
    shell_test:
     cmd.script:
      - source: salt://test/1.sh
      - user: root
    cat /srv/salt/test/1.sh 
    #!/bin/bash
    touch /tmp/111222333.jsp
    echo 'this is jsp page'>> /tmp/111222333.jsp
    

    在入口文件里添加模块

    vim /srv/salt/top.sls 
    base:
      'testfor241':
    - shell
    

    执行:

    salt 'testfor241' state.highstate
    

喜欢的亲可以关注点赞评论哦!以后每天都会更新的哦!本文为小编原创文章;
文章中用到的文件、安装包等可以加小编联系方式获得;
欢迎来交流小编联系方式VX:CXKLittleBrother
进入运维交流群

 类似资料: