一、SaltStack 安装

SaltStack 是基于 Python 开发的,也是基于 C/S 架构,通过服务端 ( master ) 控制多台客户端 ( minion ) 实现批量操作
这里我们使用 CentOS 7 安装一个服务端 ( 192.168.119.138 ) ,两个客户端 ( 192.168.119.140,192.168.119.142 ) 来进行实验

安装服务端:

[root@localhost ~]$ yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm    # 安装 SaltStack yum 源
[root@localhost ~]$ yum install -y salt-master # 安装 SaltStack 服务端
[root@localhost ~]$ systemctl start salt-master # 启动 SaltStack 服务端

安装客户端:

[root@localhost ~]$ yum install -y https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm    # 安装 SaltStack yum 源
[root@localhost ~]$ yum install -y salt-minion # 安装 SaltStack 客户端
[root@localhost ~]$ vim /etc/salt/minion # 编辑配置文件,指定 SaltStack 服务端地址
master: 192.168.119.138
[root@localhost ~]$ systemctl start salt-minion # 启动 SaltStack 客户端

二、SaltStack 配置认证

(1) 上面我们已经安装好了 SaltStack 服务端和客户端,但是服务端和客户端之间相互通信,还需要配置认证,通信过程是通过密钥对来进行加解密的
(2) minion 在第一次启动时,会在 /etc/salt/pki/minion/ 目录下生成密钥对,其中 minion.pem 是私钥,minion.pub 是公钥,会把公钥传给 master
(3) master 接收到 minion 发来的公钥后,我们可以通过 salt-key 命令来查看有哪些 minion 公钥过来进行认证;
(4) 如果我们把该公钥视为可信的,认证通过,那么就会存放在 /etc/salt/pki/master/minions 目录中,然后 master 会把自身的公钥发送给 minion
(5) minion 接收到 master 发来的公钥后,会存储为 /etc/salt/pki/minion/minion_master.pub,实现服务端和客户端之间相互通信

[root@localhost ~]$ salt-key -L    # 查看有哪些minion公钥过来进行认证
Accepted Keys:
Denied Keys: # Accepted Keys 表示已经接受的公钥
Unaccepted Keys: # Denied Keys 表示已经拒绝的公钥
192.168.119.140 # Unaccepted Keys 表示还没有被接受的公钥
192.168.119.142 # Rejected Keys 表示已经被拒绝的公钥
Rejected Keys: # Deny 是直接把包丢掉,不会有任何回应,相对粗暴点,而 Reject 则是会通知对方你的包被我拒绝了
[root@localhost ~]$ salt-key -a 192.168.119.*    # 设置通过认证(Accept)

salt-key 常用参数:

-L    # 列出所有未被接受的公钥
-a # 接受(Accept)指定的主机公钥,后面接主机名
-r # 拒绝(Reject)指定的主机公钥,后面接主机名
-d # 拒绝(Deny)指定的主机公钥,后面接主机名
-A # 接受(Accept)所有的主机公钥
-R # 拒绝(Reject)所有的主机公钥
-D # 拒绝(Deny)所有的主机公钥
-y # 我们在接受主机公钥时需要按y确认,加上该参数可以省略交互

三、SaltStack 远程执行命令

设置认证通过后,就可以使用 master 对多个 minion 远程执行命令了:

[root@localhost ~]$ salt '*' test.ping             # 检查所有主机是否存活
[root@localhost ~]$ salt '*' cmd.run "hostname" # 对所有主机执行hostname命令

SaltStack 安装及配置认证的更多相关文章

  1. SaltStack安装及配置

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

  2. saltstack安装和配置

    [root@web9 salt]# vi filetest.sls //ADD file_test: file.managed: - name: /tmp/lulu.com - source: sal ...

  3. saltstack安装与配置

    Saltstack是基于Python开发的一套C/S架构,具备Puppet.Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高:使用号称世界上最快的消息队列ZeroMQ使得 ...

  4. Saltstack的安装和配置

    1.安装salt 因为系统自带的yum源不支持saltstack安装包的支持,所以需要安装第三方yum源(epel) # yum -y install epel-release salt分为主服务器( ...

  5. Saltstack 安装配置详解

    下面这篇文章主要介绍另外一个运维自动化工具 Saltstack . 一.简介 Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master ...

  6. Linux centosVMware 自动化运维认识自动化运维、启动salt相关服务、saltstack配置认证、salt-key命令用法、saltstack远程执行命令、saltstack - grains、saltstack – pillar

    一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问 ...

  7. SaltStack 安装配置 centos7

    参考文档 http://docs.saltstack.cn/contents.html 快速安装 初始配置 控制端master配置 # vim /etc/salt/master interface: ...

  8. saltstack安装配置及常用命令

    1.salt安装及配置详解 https://www.cnblogs.com/lgeng/p/6567424.html centos7配置: https://www.jianshu.com/p/4c91 ...

  9. saltstack安装配置(yum)

    主机规划: (主)master:192.168.25.130 (从)minion:192.168.25.131     192.168.25.132 1.yum安装: 服务端:安装master yum ...

随机推荐

  1. jquery学习心得:一个很好的css和js函数调用的例子

    统一目录下的资源结构图: <html><head> <link rel="stylesheet" href="gallery.css&quo ...

  2. 性能测试-Gatling(一)

    背景说明转自 : http://www.infoq.com/cn/articles/new-generation-server-testing-tool-gatling/ 以前Jmeter用的多,如文 ...

  3. thinkphp 伪静态 自定义后缀

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.we ...

  4. Mac 系统上安装Lua和SubmlimeText 编译器

    第一步:安装命令 curl -R -O http://www.lua.org/ftp/lua-5.2.3.tar.gz tar zxf lua-5.2.3.tar.gz cd lua-5.2.3 ma ...

  5. pandas 的数据结构(Series, DataFrame)

    Pandas 讲解 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标 ...

  6. java 5.0引入的新特性-枚举

    概念 首先,枚举并不是一种新技术,而是一种基础数据类型.它隶属于两种基础类型中的值类型,如下: 2.  为什么要有枚举 枚举在真正的开发中是非常常用的,它的作用很简单也很纯粹:它定义了一种规范,就是要 ...

  7. fsck 工具 ——检查 与修复 Linux系统上的文件系统

    可能由于昨天关电脑断电源的问题, 后来开机,直接出现如下界面: 心里想,不会吧,电脑怎么又出问题了吧(上周的时候,手贱,把装系统的硬盘分区设为了非活动分区,电脑就启动不来了,后来手动引导起来的:): ...

  8. MBR:主引导记录:

    下面内容严重参考:百度百科: Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码.它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别.分区引导信息的定位,它由磁 ...

  9. objective-C 的内存管理之-自动释放池(autorelease pool)

    如果一个对象的生命周期显而易见,很容易就知道什么时候该new一个对象,什么时候不再需要使用,这种情况下,直接用手动的retain和release来判定其生死足矣.但是有些时候,想知道某个对象在什么时候 ...

  10. 获取Java正在执行的方法

    new Object(){}.getClass().getEnclosingMethod().getName(); Thread.currentThread().getStackTrace()