色胃康胶囊 发表于 2018-7-31 09:02:04

saltstack安装部署与入门使用

  一、saltstack简介
  SaltStack 一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion。SaltStack 具备配置管理、远程执行、监控等功能,一般可以理解为是简化版的 Puppet 和加强版的 Func。SaltStack 本身是基于 Python 语言开发实现,结合了轻量级的消息队列软件 ZeroMQ 与 Python 第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack 和 PyYAML 等)构建.
  本文不以最新版安装部署,以CentOS6.8_x64 python2.6.6 环境中 在epel源中稳定的版本进行yum安装 。如需要安装最新版本下载地址(readhat/CentOS系)https://repo.saltstack.com/index.html#rhel,
  采用两台安装搭建基本的环境。一台做master/minion一台minion
  两台防火墙要么关闭 要么加上允许本地网段白名单类似 :-A INPUT -s 172.16.3.0/24 -j ACCEPT
  关闭selinux.
  二、安装
  1,安装epel扩展源
  #yum install epel-release -y
  2、安装saltstack master
  # yum install salt-master sat-minion -y
  修改主配置文件/etc/salt/master 内容如下:
# cat master |egrep -v '(^$|^#)'  
interface: 0.0.0.0                #侦听地址
  
file_roots:                     #文件根目录
  
base:
  
    - /srv/salt
  

  
# cat minion |egrep -v '(^$|^#)'
  
default_include: minion.d/*.conf
  
master: 127.0.0.1               #和master在同一台
  
id: minion_local                #标识
  #service salt-master start
  #service salt-minion start
  2、安装minion(非master上)
  #yum install epel-release -y
  #yum install salt-minion -y
  修改配置文件cat /etc/salt/minion
# cat minion |egrep -v '(^$|^#)'  
default_include: minion.d/*.conf
  
master: 172.16.3.147            #和master在同一台
  
id: minion_local                  #标识
  #service salt-minion start
  三、master上添加minion
  如里在master配置文件中打开
  auto_accept: True
  则所有的minon 将会自动被认证加入。自行考量。本次是手工添加
  #salt-key -L
  如图:Unaccepted Keys:中出现两个等待授权认证的minon

  #salt-key -A
  输入y
  接受所有minion认证
  再次salt-key -L 查看已授权的minion会就看到
  #salt "*" test.ping   #查看所有的活动在线的minion
  如图:

  到此基本的saltstackmaster /minion 环境部署完成
  四、saltstack常用操作
  除了上面的添加minon和测试minion在线情况外,还有一些其他的模拟提供一些常用操作;
  1、salt语法
  salt [客户端id,即目标,支持正规表达式] [模块名,如state,cmd。其实都是salt的模块] [动作]
  如: salt "*" test.ping       这里的"*"就是匹配的目标,表示 所有minion   test是模块 ping是动作
  目标有以下常用的五种形式:
  指定目标主要有五种方式
  a)、Global,即salt默认的匹配方式,能识别终端常用的通配符,如*代表所有
  如,salt '*' test.ping
  b)、List,列表,需-L指定。
  如,salt -L 'minion_local,minion_152' test.ping 其中minion_local,minion_152
  是完整的minion_id
  c)、-E 正则表达式匹配
  如,salt -E 'pre' test.ping 会匹配pre1,pre2..pre7,并且匹配到左右minion_id
  里面含有1-7的,如pre-11,pre7也会匹配到,如果只匹配1-7可使用参照下面
  如,salt -E ^pre$ test.ping或者 salt pre test.ping
  d)、-C 混合模式,里面可以既有正则表达式也有列表等

  salt -C "minion_* or test_minion" test.ping 匹配所有minion开头,或者test_minion>  e)、分组,需要-N指定,其中组名就是上面/etc/salt/master.d/groups.conf文件里面配置的
  配置信息。如,salt -N apache test.ping
  2、常用模块
  然后是模块,主要介绍state,cmd,cp模块
  注:想了解某个模块的功能或者具体参数可以
  salt \* sys.doc [模块名,如cmd]
  a)、cmd模块
  salt '*' cmd.run "echo $HOSTNAME"      这里可以远程执行shell命令,执行结果会返回

  b)、文件上传与下载
  salt "minion_152"cp.get_filesalt://files/test.txt /tmp/test.txt
  将/srv/salt/files/test.txt推送到minion_152 /tmp/下也叫test.txt

  到minion_152 tmp目录下查看

  同理可以通过 cp.push从minion上下载文件
  需要修改master中的   file_recv: True
  salt "minion_152" cp.push/etc/fstab       #默认下到本地
  /var/cache/salt/master/minions/minion-id/files目录

  其他的模块主参考官方文档。这里不再多说。
页: [1]
查看完整版本: saltstack安装部署与入门使用