centos 6.5

saltstack 2015.5.10 (Lithium)

tips:上个版本2015.5.3或者5.5有个bug,Python调用salt的unzip模块报错;

安装

在配置了163和epel的源后使用yum安装即可;

# yum update python*
# yum -y install salt-master #主控端
# yum -y install salt-minion #被控端

配置主控端

主控端的基本配置

# vi /etc/salt/master
  interface [local ip]  #绑定本机IP
  auto_accept: False  #自动接受连接,默认就是False
  file_roots:
    base:
      - /srv/salt  #salt的文件根目录,默认就是这个

配置开机自动启动,并启动:

# chkconfig salt-master on
# service salt-master start

日志文件:/var/log/salt/master

默认使用端口4505和4506,注意防火墙的情况;

配置被控端

被控端的基本配置

# vi /etc/salt/minion
master: [主控端IP]
id: [被控端名称]  #考虑用主机名或根据业务起名,不可重复

配置开机自动启动,并启动:

# chkconfig salt-minion on
# service salt-minion start

日志文件:/var/log/salt/minion

主控端接受连接

# salt-key -A  #接受所有连接
# salt-key -L  #查看接受或拒绝的情况

测试连接情况(这里假设有两台被控端:DEV-APP-001,DEV-APP-002)

# salt '*' test.ping
DEV-APP-:
True
DEV-APP-:
True

使用salt批量远程执行命令

这是salt的基本功能之一,可以很大程度减少批量机器的运维工作量;

查看下有没有安装telnet,或者直接yum安装:

# salt '*' cmd.run 'which telnet'
# salt '*' cmd.run 'yum -y install telnet'

可以传输文件或文件夹到被控端,目标文件必须放到salt的文件根目录,默认为/srv/salt;

假设在主控端有这个文件:/srv/salt/myfile/test.log

# salt '*' cp.get_file salt://myfile/test.log /root/test.log  #传输文件
# salt '*' cp.get_dir salt://myfile /root  #传输文件夹

环境变量的问题

注意环境变量的问题,很多时候一些奇怪的问题都是这个引起的;

比如用环境变量配置的Java,需要首先加载profile:

# salt '*' cmd.run 'source /etc/profile; java -version'

tips:遇到过一个特别的坑,使用salt远程启动的Java程序日志都为乱码,后来执行locale发现了问题:

# salt '*' cmd.run 'locale'
DEV-APP-:
LANG=zh_CN.UTF-
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

LC_ALL被置为了C,覆盖了LANG的配置,所以可以这样解决:

# salt '*' cmd.run 'export LC_ALL=""; locale'
DEV-APP-001:
LANG=zh_CN.UTF-
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

启动Java程序时就是这样了:

# salt '*' cmd.run 'source /etc/profile; export LC_ALL=""; java -version'

over

saltstack 安装的更多相关文章

  1. SaltStack安装篇

    一.基础介绍1.简介 salt 是一个基础平台管理工具 salt是一个配置管理系统,能够维护预定于状态的远程节点 salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 2.salt的核 ...

  2. Saltstack 安装使用

    Saltstack是一个具备puppet与func功能为一身的集中化,轻量级的自动化运维管理工具,使用python编写,功能非常强大,可以使用EPEL快速安装.相比较puppet,安装和配置更加容易和 ...

  3. SaltStack 安装及配置认证

    一.SaltStack 安装 SaltStack 是基于 Python 开发的,也是基于 C/S 架构,通过服务端 ( master ) 控制多台客户端 ( minion ) 实现批量操作这里我们使用 ...

  4. SaltStack安装及配置

    1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...

  5. SaltStack安装配置

    一.环境准备:操作系统CentOS Linux release 7.3.1611master ip:192.168.1.180minion ip:192.168.1.183设置server(maste ...

  6. saltstack安装配置(syndic)

    syndic是saltstack用来做集群部署的,一般结构如图: syndic是一个特殊的minion,syndic类继承于minion类,syndic可以看作一个代理,只做数据传递. CentOS上 ...

  7. SaltStack安装部署

    SaltStack安装部署 安装: 一. master: 1. 配置yum源安装 # rpm --import https://repo.saltstack.com/yum/redhat/6/x86_ ...

  8. 01_3大配置管理工具、SaltStack安装、修改minion_id

    1.配置管理 1.1 puppet /'pʌpɪt/  木偶:傀儡:受他人操纵的人 使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等. 问题: 学习曲线非常陡峭 ...

  9. saltstack安装配置(halite)

    saltstack官方提供了一个简单的web UI--halite.但是给出的安装配置方法实在没法实现,在网上找了几篇博客,见文章末尾的参考链接,可以用起来了.但是功能有点简单.这篇文章记录安装配置h ...

  10. SaltStack安装(CentOS7.x)

    安装基础: 参考文档:https://docs.saltstack.com/en/latest/topics/installation/rhel.html 1.导入SaltStack仓库key: wg ...

随机推荐

  1. C# 服务端篇之实现RestFul Service开发(简单实用)

    一.RestFul简介 REST(Representational State Transfer 通常被翻译为“表述性状态传输”或者“表述性状态转移”)是RoyFielding提出的一个描述互联系统架 ...

  2. 以太坊: ETH 发送交易 sendRawTransaction 方法数据的签名 和 验证过程

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  3. Excel反序排列

    实际工作中有这样一个需求,将Excel列表中所有的条目进行反序排列,有人说这还不简单直接选中某一列按照这列排序(升序或降序)就可以了. 但问题是这里没有可以参考的列,进行排序. 比如: 想转换为: 那 ...

  4. memcached解压报错gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now的解决方法

    最近在部署环境,在安装memcached的过程中解压时, 解压命令:tar -zvxf memcached-1.4.34.tar.gz 遇到了一个问题, gzip: stdin: not in gzi ...

  5. 三种不同类型的ssh隧道

    何谓SSH隧道 隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术.这里我们研究ssh隧道,所以所有的网络通讯都是加密的.又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个 ...

  6. input 设置 width:100% 和padding后宽度超出父节点

    input 设置 width:100% 和padding后宽度超出父节点 添加如下css即可: box-sizing: border-box; -webkit-box-sizing: border-b ...

  7. ML.NET 0.9特性简介

    ML.NET 0.9已于上周发布,距离上次0.8版本的发布只有一个多月,此次增加的新特性主要包括特征贡献计算,模型可解释性增强,ONNX转换对GPU的支持,Visual Studio ML.NET项目 ...

  8. 线程同步-使用ReaderWriterLockSlim类

    使用ReaderWriterLockSlim创建一个线程安全的机制,在多线程中对一个集合进行读写操作.ReaderWriterLockSlim代表了一个管理资源访问的锁,允许多个线程同时读取,以及独占 ...

  9. Windows 10 家庭版/专业版 彻底关闭windows update自动更新

    转载: https://blog.csdn.net/u014162133/article/details/84973426# https://blog.csdn.net/qq_40820862/art ...

  10. PTA天梯地图

    本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线:一条是最短距离的路线.题目保证对任意的查询请求,地图上都至少存在一条可达路线. 输 ...