zoukankan      html  css  js  c++  java
  • 1、Saltstack简介及安装配置

    1、Saltstack简介
      Saltstack是基于Python开发的一套C/S架构,具备Puppet、Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高;使用号称世界上最快的消息队列ZeroMQ使得Saltstack能够秒级在数万台服务器上进行各种操作,而且使用RAS Key方式确认身份,传输采用AES加密,安全性能更高;
      Saltstack不仅仅是一款配置管理工具,还是一款做云计算和数据中心架构编排利器。目前Salt-cloud项目也已经合并到Saltstack主项目里,Saltstack已经支持Docker相关模块,在友好地支持各大云平台之后,配合Saltstack的Mine实现各云平台业务自动扩展。
      saltstack通信端口
    • master端:4505      
    • minion端:4506
      saltstack的三种运行方式:
    • Local
    • Master/minion
    • Salt ssh
      saltstack三大功能:
    • 远程执行
    • 配置管理
    • 云管理
    2、saltstack安装及配置
    • 添加epel源
     
     #yum install epel-release
    • 服务端安装:
       #yum install salt-master  -y
       #/etc/init.d/salt-master start
    • 客户端安装及配置:
    #yum install salt-minion  -y
    修改minion配置文件,指定master
    #sed -i.bak '16s/#master: salt/master: {master ip}/' /etc/salt/minion  #master ip请根据环境指定
    更改minion端的id,id必须唯一,不修改的情况下默认使用minion端的主机名
    启动minion端:
    #/etc/init.d/salt-minion start
    如saltstack客户端配置设置域名的话,与服务端通信必须做host解析。
    使用salt-key查看建立连接情况
    [root@master /etc/salt/pki/master]#salt-key
    Accepted Keys:
    Denied Keys:
    Unaccepted Keys:
    master
    minion
    Rejected Keys:
    使用salt-key -A接收所有客户端的通信请求
    [root@master /etc/salt/pki/master]#salt-key -A
    Accepted Keys:
    master
    minion
    Denied Keys:
    Unaccepted Keys:
    Rejected Keys:
      saltstack通过/etc/salt/pki/目录下面的配置文件的密钥进行通信,master端接受minion端后,会在/etc/salt/pki/minion/保存minion端的pub key,同时master端会将自己的公钥传输到minion端的目录/etc/salt/pki/minion/中。
    master端:
    [root@master salt]# ll /etc/salt/pki/minion/
    total 12
    -rw-r--r--. 1 root root 451 Apr 25 09:22 minion_master.pub
    -r--------. 1 root root 1679 Apr 25 09:22 minion.pem
    -rw-r--r--. 1 root root 451 Apr 25 09:22 minion.pub 
    minion端:
    [root@minion salt]# ll /etc/salt/pki/minion/
    total 12
    -rw-r--r--. 1 root root 451 Apr 25 09:22 minion_master.pub
    -r--------. 1 root root 1675 Apr 25 09:22 minion.pem
    -rw-r--r--. 1 root root 451 Apr 25 09:22 minion.pub 
      如果配置文件被更改,客户端minion会自动停止服务终止与master端端通信;解决办法:在master端删除该主机,并在minion端将pki配置目录删除后重启服务即可。
     
    3、SaltStack语法:
    salt <clients> module.method 'cmd'
    例: 在所有客户端上执行uptime命令
    # salt '*' cmd.run uptime
    minion:
    10:02:22 up 16:11, 2 users, load average: 0.27, 0.51, 0.85
    master:
    10:02:22 up 16:02, 1 user, load average: 1.23, 0.68, 0.55
    

    4、salt命令使用帮助:

    [root@salt ~]# salt -h
     Options:
         --version 查看 SaltStack 程序的版本号
         --versions-report 查看 SaltStack 程序以及依赖包的版本号
         -h, --help 查看帮助信息
         -c CONFIG_DIR, --config-dir=CONFIG_DIR 指定配置文件目录
         -t TIMEOUT, --timeout=TIMEOUT  指定 Timeout 时间 ( 默认是 5s)
         --hard-crash 捕捉到 original 异常不退出 ( 默认关闭
         -s, --static 以组的形式返回所有 Minion 的数据
         --async 异步执行
         -v, --verbose verbose 模式
         --show-timeout 显示 minion timeout 状态
         --show-jid 显示任务 jid
         -b BATCH, --batch=BATCH 按照百分比执行任务
         -a EAUTH, --auth=EAUTH, --eauth=EAUTH, --external-auth=EAUTH
         指定外部认证方式
         -T, --make-token 生成 Master token
         --return=RETURNER 指定 SaltStack return
         -d, --doc 查看指定模块或者所有模块文档
         --args-separator=ARGS_SEPARATOR 设置多个传参直接分隔符
         --summary 显示汇总信息
         --username=USERNAME 指定外部认证用户名
         --password=PASSWORD 指定外部认证密码
      Target Options:
         -E, --pcre 正则匹配
         -L, --list 列表匹配
         -G, --grain grains 匹配
         --grain-pcre grains 加正则匹配
         -N, --nodegroup 组匹配
         -R, --range 范围匹配
         -C, --compound 综合匹配 ( 指定多个匹配 )
         -I, --pillar pillar 值匹配
         -S, --ipcidr minions 网段地址匹配
     
    5、salt minion配置常用选项说明:
    master:指定master主机(默认salt)
    master_port:指定认证和执行结果发送到master的哪个端口,与master配置文件中的ret_port对应,默认为4506
    id:指定minion的表示,salt内部使用id作为表示(默认为主机名)
    user:指定运行minion的用户,推荐使用root(默认root)
    cache_job:minion是否缓存执行结果(默认false)
    backup_mode:在文件操作(file.managed或file.recurse)时,如果文件发送改变,指定备份目标,备份在cachedir/file_backups目录下,以原始文件名+时间戳命名(默认disable)
    providers:指定模块对应的providers
    renderer:指定配置管理系统中的渲染器(默认yaml_jinja)
    file_client:指定file client默认去哪里寻找文件(默认remote)
    loglevel:指定日志级别(默认为warning)
    tcp_keepalive:minion是否与master报错keepalive检查,zeromq3以下版本存在bug,建议升级到3以上版本(默认为true)
    
    6、分组管理minioin端
    编辑master主配置文件添加分组
    #vim  /etc/salt/master
    nodegroups:
    #  group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
    #  group2: 'G@os:Debian and foo.domain.com'
      dbsrv: 'db*’
    [root@salt-server /etc/salt]#salt -N dbsrv test.ping
    master:
        True
    minion:
        True
     
    7、实例:为minion端安装apache软件
    打开master端的配置文件将file_roots的base环境配置打开,保存重启master
    #vim /etc/salt/master 
    file_roots:
      base:
        - /srv/salt 
    创建 /srv/salt目录
    #mkdir /srv/salt -p
    创建安装apache的sls文件
    #cat apache.sls
    apache-install:
      pkg.installed:
        - names:
        - httpd
        - httpd-devel
    apache-service:
      service.running:
        - name: httpd
        - enable: True
        - reload: True 
    使用salt的state模块的sls方法为minion端安装apache并启动服务
    # salt '*' state.sls apache
    结果如下:

  • 相关阅读:
    Sqlite数据库的加密
    利用Cache缓存数据DataTable数据提高大数据量访问性能
    MYSQL数据库主主同步实战
    【误人子弟】《ASP.NET常用语句120条,(很实用的)
    Debian 添加 FreeBSD 内核支持
    FIREBIRD的基本数据类型
    扩大Portable Ubuntu的系统可用空间
    SQL语句 按年龄段分组统计人数问题
    aspx 页面,master页面与ascx用户控件传值的问题
    MonoDevelop 2.0 Released 发布
  • 原文地址:https://www.cnblogs.com/xhyan/p/6762425.html
Copyright © 2011-2022 走看看