zoukankan      html  css  js  c++  java
  • saltstack基础知识

    saltstack简介

    saltstack基于python开发的C/S架构的配置管理工具,分为服务器端salt-master和客户端salt-minion。并且支持浩称最快的ZeroMQ消息队列机制,服务器和客户端以daemon守护进程方式工作,监听端口号为4505和4506。
    saltstack官网 saltstack帮助文档

    saltstack安装

    • 添加saltstack的官方yum源:
      yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
    • 重建yum缓存:
      yum clean expire-cache
    • 服务器端安装:
      yum install -y salt-master --disablerepo base
    • 客户端安装:
      yum install -y salt-minion --disablerepo base
      由于原先base源里我配置的是阿里的源,其中也有salt包版本是2015.5.10-2,所以要安装最新的包就要从第一步中下载的salt-latest源中安装。

    saltstack开机自启动及服务启动

    • 服务端:
      systemctl enable salt-master
      systemctl start salt-master
    • 客户端:
      systemctl enable salt-minion
      systemctl start salt-minion

    saltstack基本命令

    • 命令语法格式:
      salt [options] '<target>' <function> [arguments]
      • salt:所有命令都以salt开头
      • option:参数,通常有:
        • -E,使用正则表达式匹配target
        • -L,使用列表方式匹配target
        • -N,使用分组方式匹配target
        • -I,使用pillar方式匹配target
        • -S,使用子网掩码方式匹配target
        • -G,使用grains方式匹配target
      • target:目标主机,所有主机用'*'
      • function:要自执行的python 模块.方法,如:cmd.run,test.ping
      • arguments:传递给function的参数.
    • 使用帮助信息
      • 列出所有可用模块
        salt '*' sys.list_modules
      • 查看模块所有功能
        salt '*' sys.list_functions
      • 查看模块用法
        salt '*' sys.doc function

    服务端配置

    • pillar配置:
      默认情况下服务器端不需配置直接启动服务即可投入使用。一般情况下我们用到pillar的时候配置一下,因为pillar的信息存储在master上,pillar和grains都是saltstack的重要组件,作用是提供不同的维度来管理客户端。默认情况下,pillar需要一个pillar_roots来维护pillar的配置,默认pillar_roots的工作目录为:/srv/pillar,也可以自定义:

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

    以上配置表明:pillar的工作目录为/srv/salt/pillar,在这个目录下可以创建一系列的sls文件,用以对客户端进逻辑分类或标识。pillar执行时需要一个top.sls的入口文件。

    • 同步pillar数据
      salt '*' saltutil.refresh_pillar
    • 获取全部数据
      salt '*' pillar.items
    • 获取指定数据
      salt '*' pillar.items 标识名
    • 配置文件管理配置
      主要用于配置文件分发。一般分为三个环境,基础环境,开发环境,生产环境,对应于master配置文件中配置如下:
    	file_roots: 
          base: 
    	    - /srv/salt/base
    	  dev: 
            - /srv/salt/dev
    	  prod: 
    	    - /srv/salt/prod
    
    • nodegroups配置
      nodegroups用来对minion端进行分类成组,将具有相似特征的minion端划到一个组里去,方便实施策略和统一管理。
      cat /etc/salt/master找到nodegroups并编写信息。
       nodegroups:
         group1: 'L@ha1,ha2'
         group2: 'G@os:Debian and foo.domain.com'
    

    客户端配置

    • 修改服务器端和客户端ID
      cat /etc/salt/minion分别找到如下行,修改相应信息。
    master:<master主机名或IP地址>
    id:<客户端主机名或IP地址>
    
    • grains配置
      grains的信息存储在minion端,主要用来标识minion端的信息,如这是一台httpd server或mysql等信息。master端可以用-G来检索出符合特定信息的minion端,方便实施不同的策略。
      cat /etc/salt/minion
       grains:
         roles:
           - httpd_1
    

    saltstack常用模块函数介绍

    • test.ping用于测试连通性
    • cmd.run用于运行命令
    • cmd.script用于执行脚本
    • cp.get_file用于复制文件
    • cp.get_dir用于复制目录
    • pkg.install用于安装软件包
    • pkg.remove用于卸载软件包
    • file.append用于向文件追加内容
  • 相关阅读:
    SQLITE3在php中的运用
    C# DllImport用法和路径问题
    ExtJs2.0学习系列(9)Ext.TabPanel之第一式
    ExtJs2.0学习系列(11)Ext.XTemplate
    ExtJs2.0学习系列(12)Ext.TreePanel之第一式
    ExtJs2.0学习系列(10)Ext.TabPanel之第二式
    ExtJs2.0学习系列(6)Ext.FormPanel之第三式(ComboBox篇)
    ExtJs2.0学习系列(15)extjs换肤
    ExtJs2.0学习系列(8)Ext.FormPanel之第五式(综合篇)
    ExtJs2.0学习系列(5)Ext.FormPanel之第二式
  • 原文地址:https://www.cnblogs.com/mfyang/p/8330824.html
Copyright © 2011-2022 走看看